Microsoft .NET Agent

.NET エージェントは、.NET アプリケーションを対象とするアプリケーション管理ソリューションです。 .NET エージェントは、Microsoft Common Language Runtime (CLR)環境で実行されるミッションクリティカルな .NET アプリケーションを監視します。 エージェントは、コンポーネント レベルの可視性を提供します。
apmdevops106
.NET エージェントは、.NET アプリケーションを対象とするアプリケーション管理ソリューションです。 .NET エージェントは、Microsoft Common Language Runtime (CLR)環境で実行されるミッションクリティカルな .NET アプリケーションを監視します。 エージェントは、コンポーネント レベルの可視性を提供します。
2
2
.NET エージェントの概要
CA APM がデプロイされたシステムでは、エージェントがアプリケーションおよび環境のメトリックを収集し、それらを Enterprise Manager に渡します。 エージェントにメトリックをレポートするアプリケーションを、インスツルメントされたアプリケーションと呼びます。
.NET エージェントをインストールして構成すると、システムで実行されるアプリケーションは起動時にインスツルメントされます。
以下の図では、.NET アプリケーションが SQL サーバ データベースに接続するシンプルな CA APM デプロイを示します。 各アプリケーション サーバが .NET および SQL エージェントをホストしています。 エージェントは、アプリケーションのアクティビティを監視し、メトリックを Enterprise Manager にレポートします。 より大規模で複雑なデプロイ環境では、エージェントの数が増え、複数の Enterprise Manager が使用される場合があります。 Team Center、WebView、および Workstation を使用してメトリックを表示します。
Introscope 内の NET エージェント
Introscope 内の NET エージェント
デフォルトでは、Microsoft インターネット インフォメーション サービス(IIS)を使用してデプロイされ、システム上でアクティブになっている ASP.NET アプリケーションのみがインスツルメントされます。 また、スタンドアロンの .NET 実行可能ファイルをインスツルメントしたり、アプリケーションの一部のみをインスツルメントしたりすることもできます。
トレーサによって実行されるインスツルメンテーション プロセスは、ProbeBuilder ディレクティブ(PBD)ファイルに定義されています。 PBD ファイル内のディレクティブは、監視対象のアプリケーション コンポーネントを識別します。 トレーサは、それらのコンポーネントが CLR で実行される際にエージェントが収集するメトリックを識別します。 その後、.NET エージェントから Enterprise Manager にこのメトリック情報が送信されます。
Enterprise Manager は、複数のエージェントからレポートされたメトリックを保存します。 Team Center、WebView、または Workstation を使用して、アプリケーション アクティビティを監視し、パフォーマンスの問題のソースを調査し、問題を診断することができます。
モデル ビュー コントローラ(MVC)のサポート
.NET エージェントは、MVC フレームワーク アプリケーションの監視をサポートし、以下のタスクを実行できるようにします。
  • 標準の URL グループおよびビジネス トランザクション記録およびデコード機能の使用
  • 個々の MVC コントローラおよびアクションのパフォーマンスの監視
  • Team Center、WebView、および Workstation で、MVC コントローラを汎用フロント エンドとして表示
    メトリックが、WebView および Workstation の MVC | Controllers | <
    controller_name
    > の下に表示
  • 各コントローラの下に集約されたメトリックに設定されたアラートの受信メトリック グループおよびアラートは以下のとおりです。
    • MVC コントローラ エラー
    • MVC コントローラの応答時間
  • MVC\|Controllers\|[^|]+:Average Response Time \(ms\) 差異分析メトリックの表示
  • MVC のビジネス トランザクション マッチング
ASP.NET MVC では以下のコンポーネントが提供されます。
  • さまざまな Web アプリケーション presentation-layer 構文の使用のためのテンプレートであるエンジンを表示します。 .NET エージェントは、Razor ビュー エンジンのパフォーマンス メトリックでは、さまざまな ASP.NET Razor view-engine テンプレートを監視します。
    注:
  • MVC アプリケーション領域は、作業可能なセクションを作成することで Web プロジェクトを整理します。 .NET エージェントは、MVC 領域のパフォーマンスを監視します。
  • 注:
    MVC 領域のパフォーマンス メトリックのレポートは、デフォルトでは無効です。 メトリックのレポートは、有効にすることができます
MVC フレームワーク アプリケーションのメトリックは、図に示すように、Team Center に表示されます。
Team Center マップ内の MVC コントローラ メトリック。
Web API サポート
.NET エージェントは、問題のあるトランザクションのボトルネックになっている階層を特定するための Web API ベースのアプリケーション トランザクションの監視をサポートします。
サポートされている Web API バージョン
Microsoft ASP.NET Web API の以下のバージョンがサポートされています。
バージョン 4
  • Microsoft ASP.NET Web API 4.0.30506
バージョン 5
  • Microsoft ASP.NET Web API 5.0.0
  • Microsoft ASP.NET Web API 5.2.3
.NET エージェントは、Web API フレームワーク アプリケーションの監視をサポートし、以下のタスクを実行できるようにします。
  • 標準の URL グループおよびビジネス トランザクション記録およびデコード機能の使用
  • 個々の Web API コントローラおよびアクションのパフォーマンスの監視
  • Team Center、WebView、および Workstation で、Web API コントローラを汎用フロント エンドとして表示 メトリックが、WebView および Workstation の WebAPI | Controllers | <
    controller_name
    > の下に表示されます。
  • 各コントローラの下に集約されたメトリックに設定されたアラートの受信新しいメトリック グループおよびアラートは以下のとおりです。
    • WebAPI コントローラ エラー
    • WebAPI コントローラの応答時間
  • WebAPI\|Controllers\|[^|]+:Average Response Time \(ms\) 差異分析メトリックの表示
  • Web API のビジネス トランザクション マッチング サポート
Web API のメトリックは、図に示すように、Team Center に表示されます。
Team Center の Web API コントローラノード
アプリケーション環境での .NET エージェントの監視
デプロイで、監視対象のアプリケーションを実行する各コンピュータに .NET エージェントをインストールします。 インストール後、.NET エージェントは Microsoft インターネットインフォメーション サービス(IIS)によって制御されます。 IIS がユーザからアプリケーションへのリクエストを受信するまで、.NET エージェントはアクティブではありません。 アプリケーション コード(.aspx、.asmx など)が実行されると、.NET エージェントが起動し、NativeProfiler がコードをインスツルメントします。
IIS による .NET エージェントの制御方法
デフォルトでは、.NET エージェントは、IIS が管理するアプリケーションおよび IIS ワーカ プロセス下で実行しているアプリケーションのみを監視します。 .NET アプリケーションの開始時に、IIS が .NET エージェントおよびインスツルメント処理をどのように制御するかを以下の手順で示します。
  1. IIS がアプリケーションへのユーザ要求を受け取ります。
  2. IIS が .NET ワーカ プロセスを開始します。
  3. リクエストされた.NET アプリケーションが開始します。
  4. 共通言語ランタイム(CLR)が NativeProfiler を開始します。
  5. NativeProfiler がグローバル アセンブリ キャッシュ(GAC)から .NET エージェントをロードします。
  6. .NET エージェントが IntroscopeAgent.profile を読み込み、インスツルメントに使用する PBL および PBD ファイルを決定します。
  7. NativeProfiler は、PBL および PBD ファイル内の情報を使用してプローブをバイトコードに挿入します。 プローブは、アプリケーション コンポーネントから適切なメトリックを収集します。 アプリケーションがインスツルメントされます。
  8. インスツルメントされたアプリケーションが、.NET エージェントへのメトリックのレポートを開始します。
    IIS ワーカ プロセスが実行されている限り、エージェントはメトリックを収集し、それを Enterprise Manager にレポートします。 インスツルメントされたアプリケーションが、ユーザのアクティビティをタイムフレームの間感知しない場合、IIS ワーカ プロセスはアプリケーション プロセスを停止します。 IIS がアプリケーション プロセスを停止すると、ユーザ アクティビティが再開するまでは .NET エージェントは停止状態になります。
ASP.NET を使用しないスタンドアロン アプリケーションでも、インスツルメントを行うように .NET エージェントで設定されている場合は、インスツルメントすることができます。 .NET エージェントを制御するための IIS プロセスは、スタンドアロン アプリケーションでも同様です。 ただし、スタンドアロン アプリケーションは Windows オペレーティング システムによってブートできるため、手順 1 および 2 はスキップされます。
.NET エージェントのインスタンス化および IIS ワーカ プロセス
.NET エージェントは、監視したい管理対象 .NET アプリケーションをホストしている各システムにインストールします。 .NET エージェントの起動時点で、CLR のデフォルト ドメインに対してエージェント インスタンスが 1 つ作成されます。 さらに、CLR で実行されるアプリケーションごとに .NET エージェント インスタンスが作成されます。
以下の図は、管理対象 ASP.NET アプリケーションを示しています。 アプリケーションには、1 つの .NET エージェントが起動された各ドメイン内に IIS ワーカ プロセスが 1 つあります。
管理対象 ASP .NET アプリケーションの例
管理対象 ASP .NET アプリケーションの例
以下の図は、複数の .NET アプリケーションが IIS アプリケーション プールでグループ化されている状況を示しています。 アプリケーション プールは、単一のワーカ プロセスを共有します。 デフォルト ドメインには、1 つの .NET エージェントがあります。 アプリケーション プール内の各アプリケーションには、NET エージェントもあります。
IIS アプリケーション プールでグループ化されている複数の .NET アプリケーション
IIS アプリケーション プールでグループ化されている複数の .NET アプリケーション
スケーラビリティ上の理由から、組織によっては、1 つのアプリケーションに複数のワーカ プロセスを割り当てることができます。 そのため、デフォルト ドメインに対して .NET エージェント インスタンスが 1 つ作成されます。 アプリケーションに関連付けられているワーカ プロセスごとに、より多くのドメインが作成されます。 以下の図は、最も一般的な構成を示しています。
1 つのアプリケーションに複数のワーカ プロセスが割り当てられている NET エージェント
1 つのアプリケーションに複数のワーカ プロセスが割り当てられている NET エージェント
ワーカ プロセスが複数ある場合、複数の .NET エージェントが 1 つの管理対象アプリケーションに関連付けられます。 この状況では、これらのエージェントを仮想エージェントとして設定します。 この設定によって、複数の物理 .NET エージェントからのメトリックを集約できます。
デフォルト ドメインの .NET エージェント インスタンス
CLR のデフォルト ドメインには常に 1 つの .NET エージェントが作成されます。 デフォルトでは、デフォルト ドメインの .NET エージェントは Enterprise Manager に接続しません。 そのため、.NET エージェントは、Workstation や WebView の Investigator ツリーにノードとして表示されません。 ただし、必要な場合は、デフォルト ドメインの .NET エージェントが Enterprise Manager に接続するように構成できます。 詳細については、「デフォルトのドメイン設定」のエージェント プロパティを参照してください。