だから私は一般的に、NewRelicのようなものが.NETアプリをどのように計測するかを理解しています-CLRプロファイラーAPIは完全に理にかなっています。しかし、私が理解できないのは、AppDynamicsのようなものが、実際には.NETベースではないサーバーと計測器の間の相関関係をどのように理解するかです。
次に、記録されたスクリプトを介してアプリケーションをプロアクティブに実行し、応答時間を監視して問題や速度低下のアラートを受け取るのに役立つ、非侵入型の監視もあります。この分野の多くのAPMツール(Gomezは現在AppDynamics、Catchpoint、SolarWinds APM、Ipswitch APMなど)。
アプリケーションのイメージがクライアントUIに配信されるCitrixまたはMicrosoftがホストする環境がある場合は、実際のクライアント接続UIを使用するイメージ認識機能を備えたスクリプトを探す必要があります。次に、テストスクリプトの開発中に作成されたベースライン応答画像と画面を比較することにより、監視が行われます。見てみたいかもしれません http://www.tevron.com/load-testing-citratest-vu-load-testing-methodology.aspx
APM製品は、言語ごとに異なる方法で計測し、API(プロファイリングAPIなど)の組み合わせを使用し、他の方法を使用してアプリにコードを挿入します。これにより、あらゆる種類のメトリックが提供され、アプリケーションの接続(エントリポイントと出口ポイント)を監視できるため、アプリケーションが別の場所に接続しているかどうかを判断できます。コード内のプロトコルデコードに基づいて、SQLやHTTP呼び出しなどをインターセプトして保存することもできます。
さて、あなたの主な質問ですが、AppDynamicsはどのように機能しますか。各APMツールは、これを行う場合、これを異なる方法で行います。 DynatraceとAppDynamicsには、それぞれ異なるトレースモデルがあります。それぞれに長所と短所があります。 AppDynamicsはトランザクションIDをプロトコルペイロードに挿入します。これは無害な方法で行われますが、エージェントが存在する場合、ダウンストリーム接続はそのデータを取得してトランザクションに関連付けることができます。エージェントがいない場合でも、アプリは壊れません。 Dynatraceは、そのトレースに関するより多くのデータをアップストリームコレクターに送信し、アップストリームコレクターは異なる方法でトランザクションをつなぎ合わせます。 1つは分散型(大規模ですが、プロトコルのリバースエンジニアリングは困難です)で、もう1つはステッチが簡単ですが、多くの処理とネットワーク帯域幅が必要です。
APMモニタリングは、応答時間を測定するために使用しています。私たちは皆、直接の経験から、応答時間が予想外に遅いことほどエンドユーザーを苛立たせるものはないことを知っています。実際、速度の低下は、アプリケーションのダウンタイムや使用不可よりも間違いなく大きな問題です。 eコマースウェブサイトの調査によると、速度低下は停止の10倍の頻度で発生し、それらの累積的な速度低下は、オンラインストアの純利益に最大2倍の影響を及ぼします。つまり、アプリケーションが稼働していることを確認することは重要ですが、それだけでは不十分です。自動化されたソフトウェアを使用したIPプロトコルやネットワークサービスのテストなど、機能が故障したり、確立されたしきい値を下回ったりするとすぐにリアルタイムのアラートを発行できる基本的な可用性の監視に加えて、APMへの包括的なアプローチにはいくつかの追加要素が必要です。前のセクションで説明したように、アプリケーションの全体的な信頼性と速度を向上させるために、考慮に入れてください。私は、Seleniumを使用してこの応答時間をチェックし、トランザクションが正しくないときに情報を取得するアプリケーションを知っていました。