ヘルプ 管理 監視の追加 APMインサイト(.NETエージェント版)

APMインサイト(.NETエージェント版)

APMインサイトでは、ユーザー満足度の認識・分析を比類なきレベルで可能とし、.NET Webトランザクションのすばやいトラブルシュートを支援します。この包括ソリューションでは、複雑な.NETアプリケーションのパフォーマンスを、エンドユーザーからデータベースにわたり、あらゆる視座で監視できます。

.NET Webトランザクションの監視

.NETトランザクションにAPMインサイトを設定するには、APMインサイトのエージェントを、アプリケーション サーバーに展開する必要があります。.NETアプリケーションに組み込まれたエージェントは、データ(メトリック、トレース)を収集し、APMインサイト サーバーに送出、パフォーマンス グラフがそこで作成されます。

インストールの要件
  1. アプリケーションがMicrosoft .NET Frameworkバージョン3.0以上で動作すること。
  2. IIS 6.0以上。

APMエージェントのインストール(.NETエージェント版)

  1. APM > APMインサイト と選択してださい。
  2. .NETタブをクリックし、説明にしたがってエージェントをダウンロードします。
  3. ダウンロードをクリックし、.msiファイルを入手してください。
  4. .msiファイルを実行します。 これにより、インストール フォルダーの選択画面が開きます。
  5. 検索をクリックし、フォルダー パスを選択し、.NETエージェントをインストール。次へをクリックします。
  6. エージェントを起動する場合、次のウィンドウのスタートアップ オプションの下で、インストール後にエージェントを開始するのチェックボックスを選択してください。次へをクリックすると、エージェントのインストールが始まります。
  7. インストール終了前に、.NETエージェント設定画面が表示されます。
  8. ログイン後、ライセンス キーを、Site24x7 APMインサイトのホームページから、コピー・ペーストしてください。
  9. 保存ボタンのクリックで、インストールが完了します。
  10. これによって、.NETエージェントの準備が整い、サーバーで実行するASP.NETアプリケーションがすべて、監視できるようになります。収集データが、Site24x7 APMインサイトのページに表示されるまで、数分かかります。IIS上のすべての.NET Webアプリケーションが監視対象です。

エージェントの管理

インストール後に可能な作業は、.NETエージェントの開始、停止、編集です。

.NETエージェントの開始
  1. インストール時に、インストール後にエージェントを開始する チェックボックスを選択しなかった場合は、Windowsサービス マネージャーから、エージェントのサービスを手動で起動してください。サービス名は、APM Insight .NET Agentです。
  2. エージェント サービスが起動すると、IISがリセットされ、プロファイラーの環境変数がセットされます。
.NETエージェント設定の編集
  1. スタート メニューで、APMインサイト.NETエージェントのフォルダーから、設定の編集をクリックし、エージェント設定の編集を行います。
  2. これによって、.NETエージェントの設定ダイアログ ボックスが開きます。変更を行った際は、保存をクリックして設定ファイルを更新してください。
.NETエージェントへのpingを停止
  1. エージェント サービスは、Windowsサービス マネージャーからマニュアルで停止できます。これによって、アプリケーションとサービスのIPC接続はクローズとなります。プロファイラー変数はシステム環境変数から削除され、プロファイラーは無効となります。IISのリセットも行います。
  2. .NETエージェントの開始で上述した通り、エージェントはマニュアルで再起動できます。
  3. エージェントのアンインストールは、スタート メニューから行います。.NETエージェントのアンインストールを、スタート メニューのAPM Insight .NET Agentフォルダーからクリックし、エージェントをアンインストールしてください。

APMインサイト設定

  1. 一部の項目は、クライアントから操作できません。apminsight.confファイルから設定してください。
  2. 詳細は、APMインサイト設定オプションをご覧ください。

アプリ フィルターの設定

アプリケーション フィルターは、IISサーバーから監視対象のアプリケーションを指定するのに役立ちます。

設定ダイアログでのWebアプリケーション フィルター

エージェントのバージョン2.0以上
  1. .NETエージェントのWindowsサービスを停止します。
  2. 設定の編集を開きます(スタート メニュー > 設定の編集)。このダイアログは、インストール中に自動的に起動します。
    エージェントのバージョン2.3未満では、スタート メニュー> 設定の編集(x64かx86)で起動します。
  3. apminsight.appnameキーがIIS内部のWebアプリケーションいずれかにあれば、ダイアログには、削除のオプションが表示されます。なお、バージョン2.0より、この、キーの有無に依存した挙動の違いは、削除されています。
  4. アプリ フィルタータブへ移動します。
  5. アプリ フィルターを利用するを選択。
  6. 監視するアプリケーションを選択してください。デフォルトでは、すべてのアプリケーションが監視対象となります。
  7. APMインサイト キーのコラムで、テキストボックスに、アプリケーションの一意の名前を指定してください。これによる、IISへの影響はありません。
  8. 保存をクリックしてください。
  9. .NETエージェントのWindowsサービスを開始します。
エージェントのバージョン2.0未満
  1. 設定の編集ウィンドウを、スタート メニュー > 設定の編集(x64かx86)で起動します。このダイアログは、インストール中に自動的に起動します。
  2. アプリ フィルター タブへ移動してください。
  3. アプリ フィルターを利用するを選択。
  4. APMインサイト キーの利用を選択してください。これにより、キーapminsight.appnameが、アプリ設定で、選択したアプリケーションの、それぞれのweb.configファイルに追加されます。
  5. 監視するアプリケーションを選択してください。デフォルトでは、すべてのアプリケーションが監視対象となります。
  6. APMインサイト キーのコラムで、テキストボックスに、アプリケーションの一意の名前を指定してください。APMインサイト キーを使うを手順4で選択しなかった場合、このコラムは表示されせん。
  7. 保存をクリックしてください。
  8. .NETエージェントWindowsサービスの再起動で、変更が有効となります。

Webアプリケーションをマニュアルでフィルターする

.NETエージェント v2.0以上での、エージェント設定変更
  1. APMインサイト(.NETエージェント)インストール フォルダーに移動します。
  2. DotNetAgentフォルダーを開きます。
  3. appfilter.confファイルを開き、以下のキーを編集してください。
    use.app.filters=true (default)
    use.apminsight.appnames=true (default is false)
    include.app.names={json formatted appnames}
    例:
    include.app.names = { "Default Web Site/" : "ServerRoot", "Default Web Site/Services/wcf1" : "Service1", ... }
  4. このappfilter.confファイルをコピーし、次の場所にペーストします。
    • エージェントのバージョン2.3以上
      • エージェント データのパス
        %WINDIR%\ProgramData\DotnetAgent
      • Windows Server 2003でのエージェント データのパス
        %WINDIR%\Documents and Settings\All Users\Application Data\DotNetAgent
    • エージェントのバージョン2.3未満

      • 64ビット版エージェントの場合
        %WINDIR%\ProgramData\DotnetAgent\x64 
      • Windows Server 2003では、対応するパスは、%WINDIR%\Documents and Settings\All Users\Application Data\DotNetAgent\x64です。
        %WINDIR%\Documents and Settings\All Users\Application Data\DotNetAgent\x64
      • 32ビット版エージェントの場合
        %WINDIR%\ProgramData\DotnetAgent\x86
      • Windows Server 2003では、対応するパスは、%WINDIR%\Documents and Settings\All Users\Application Data\DotNetAgent\x64です。
        %WINDIR%\Documents and Settings\All Users\Application Data\DotNetAgent\x86
  5. 監視が複数ある場合、上記の場所に、すべてのサブフォルダーを加えてください。
  6. .NETエージェントのWindowsサービスを再起動すると、変更が有効になります。
エージェント バージョン2.0以上で、IISマネージャーに変更を行う
  1. IISマネージャーを起動。
  2. Webアプリケーションを選択してください。
  3. IIS 7.0以上では、アプリケーションの設定セクションへ移動し、次のキー・バリュー ペアを追加します。この手順は、複数アプリケーション名の中での衝突を回避するために必須です。
    key = apminsight.appname
    value = <custom application name>(この名前を設定ファイルで使用)
  4. IISバージョン6.0では、web.Configファイルを開き、<appSettings> セクションを次の通り編集します。
    <appSettings>
    <add key="apminsight.appname" value="<custom application name>"/>
    ...
    </appSettings>
  5. web.Configを保存
  6. この手順を、すべての監視するアプリケーションについて繰り返してください。
エージェント バージョン2.0未満で、IISマネージャーに変更を行う
  1. APMインサイト(.NETエージェント)インストール フォルダーに移動します。
  2. DotNetAgentフォルダーを開きます。
  3. apminsight.confファイルを開き、以下のキーを編集してください。
    use.app.filters=true (default)
    use.apminsight.appnames=true (default is false)
    include.app.names=<comma seperated appnames>
  4. アプリ設定セクションで示されるアプリケーション名を、正確に入力します。
  5. この、apminsight.confファイルを、次の場所にペーストしてください。
    • 64ビット版エージェントの場合
      %WINDIR%\ProgramData\DotnetAgent\x64
      Windows Server 2003では、対応するパスは、%WINDIR%\Documents and Settings\All Users\Application Data\DotNetAgent\x64です。
      %WINDIR%\Documents and Settings\All Users\Application Data\DotNetAgent\x64\
    • 32ビット版エージェントの場合
      %WINDIR%\ProgramData\DotnetAgent\x86
      Windows Server 2003では、対応するパスは、%WINDIR%\Documents and Settings\All Users\Application Data\DotNetAgent\x64です。
      %WINDIR%\Documents and Settings\All Users\Application Data\DotNetAgent\x86\
      監視が複数ある場合、上記の場所に、すべてのサブフォルダーを加えてください。
  6. .NETエージェントを再起動すると、Windowsサービスが有効となります。

バックッグラウンド通信の追跡

  1. 詳細は、バックグラウンド トランザクションむけ設定を参照ください。

類似トランザクションのグループ化

トランザクション名が動的に決まることは、多くのアプリケーションで、日常化しています。そのため、アプリケーションのパフォーマンス追跡は、困難になりつつあります。動的Webトランザクションの場合、アプリケーションは同一URLを提示するもの、起動のたびに一意の識別子(英数字)を埋め込むため、トランザクション名自体が別物に見えるのです。このようなURLを、それぞれ追跡するのは、手間がかかりすぎます。Site24x7の、類似トランザクション グループ化機能を利用すれば、多くの動的トランザクションを、監視すべき実際のURLへ、まとめることが可能です。

.NETエージェントでの設定手順

  1. 設定の編集ウィンドウを開き、トランザクションのマージタブを選択してください。マージするすべてのトランザクション パターンを追加します。
  2. パターンのサンプルで、トランザクションをグループ化する場合は、.NETエージェントによるAPMインサイト利用をご覧ください。
  3. トランザクションのマージパターンを、マニュアルで設定するには:
  4. エージェントのインストール後、APMインサイト(.NETエージェント)インストール フォルダーへ移動します。
  5. DotNetAgentフォルダーを開きます。
  6. transaction_merge_patterns.confを開き、パターンを、こちらを参照の上、追加。
  7. このtransaction_merge_patterns.confファイルをコピーし、次の場所にコピーしてください。
    • エージェントのバージョン2.3以上
      • エージェント データのパス
        %WINDIR%\ProgramData\DotnetAgent
      • Windows Server 2003でのエージェント データのパス
        %WINDIR%\Documents and Settings\All Users\Application Data\DotNetAgent
    • エージェントのバージョン2.3未満
      • 64ビット版エージェントの場合
        %WINDIR%\ProgramData\DotnetAgent\x64
      • Windows Server 2003では、対応するパスは、%WINDIR%\Documents and Settings\All Users\Application Data\DotNetAgent\x64です。
        %WINDIR%\Documents and Settings\All Users\Application Data\DotNetAgent\x64
      • 32ビット版エージェントの場合
        %WINDIR%\ProgramData\DotnetAgent†\\x86
      • Windows Server 2003では、対応するパスは、%WINDIR%\Documents and Settings\All Users\Application Data\DotNetAgent\x64です。
        %WINDIR%\Documents and Settings\All Users\Application Data\DotNetAgent\x86
  8. 複数監視の場合、上記パスより、アプリケーションごとに、すべてのサブフォルダーを指定。
  9. 設定ファイル内のパターンは、いつでも、追加、削除、コメントが可能です。
トランザクションのマージパターンの例
  1. 下記のパターンは、aspsite/account/で始まるトランザクションすべてにマッチし、名称はaccountに変わります。
    aspsite/account/*=account
  2. 下記のパターンは、aspsite/で始まり、/basicdetailsで終わるトランザクションすべてにマッチします。名称はbasicdetailsに変わります。
    aspsite/*/basicdetails=basicdetails
  3. 下記のパターンは、/educationdetailsで終わるトランザクションすべてにマッチし、名称はeducationdetailsに変わります。
    */educationdetails=educationdetails

.NETエージェントAPIでカスタム インストルメントする

APMインサイト(.NETエージェント)APIは、Webアプリケーションにおける、ユーザー定義のメソッドを追跡するのに役立ちます。Webアプリケーションのパフォーマンスを監視するため、DLLの指定メソッドをインストルメントするのにも有用です。コードの特定箇所追跡にも、利用いただけます。

API追加の手順

  1. DotNetAgent.Api.dllライブラリへの参照を、Webアプリケーション プロジェクトに追加します。
  2. API DLLは、APIマネージャー ツールのインストール先にあります(C:\All Programs (x86)\APM Insight\APM Insight.NET Agent\AgentApi\DotNetAgent.Api.dll)
    エージェントのバージョン2.3未満では、APIのDLLは、C:\All Programs\APM Insight\APM Insight .NET Agent (<x64もしくは x86>)\AgentApi\DotNetAgent.Api.dllで見つかります。
  3. APIには、CustomTrackerという名称のクラスがあり、メソッドのパフォーマンスを追跡できます。

    CustomTrackerクラスと、そのメソッド

    コンストラクター

    CustomTracker(Type thisType)

    • thisType:今のクラスか基底クラスのタイプです。

    例:CustomTracker dotNetAgentCustomTracker = new CustomTracker(this.GetType());>

    CustomTracker(Type thisType, string methodName)

    • thisType:今のクラスか基底クラスのタイプです。
    • methodName:監視するメソッドの名前です。

    例:CustomTracker dotNetAgentCustomTracker = new CustomTracker(this.GetType(),"BasicDetails");

    CustomTracker(Type thisType, string className, string methodName)

    • thisType:今のクラスか基底クラスのタイプです。
    • className:クラスの名前監視する~.
    • methodName:監視するメソッドの名前です。

    例:CustomTracker dotNetAgentCustomTracker = new CustomTracker(this.GetType(), "EmpController", "BasicDetails");

    CustomTracker.StartTracker (Type thisType, string className, string methodName)

    • このメソッドは、カスタム メソッドのメトリック収集を開始するのに用います。
    • これは、コンストラクター自体で呼び出されるため、必要ありません。

    CustomTracker.StopTracker()

    • メトリック収集は、このメソッドの呼び出しで停止します。
    • finallyブロックでは、必ず、これを呼び出してください。
  4. メソッドの最初ではCustomTrackerクラスのインスタンスを作成し、StopTracker()はメソッドの終わりに実行します。
  5. {}ブロックを利用して、CustomTrackerインスタンスを作成することもできます。オブジェクト廃棄の際には自動的に、StopTracker()メソッドが呼び出されます。

次の例では、CustomTrackerの利用法を示します。

例 1:Usingステートメントの利用
public ActionResult BasicDetails(int id = 0)
{
     AdminBL objadmin = new AdminBL();
     using(CustomTracker customTracker = new CustomTracker(base.GetType(),"BasicDetails"))
     {
         ASPSite.BL.MYSQLReference.BasicDetails basicDetails = objadmin.getBasicDetails(id);
         EmpApp.Models.BasicDetails basic = getBasicDetailsModel(basicDetails);
         return View(basic);
     }
}
例 2: StartTrackerとStopTrackerを、try・finallyブロックで利用する
public ActionResult BasicDetails(int id = 0)
{
    CustomTracker customTracker = null;
    AdminBL adminBL = new AdminBL();
    try
     {
        customTracker = new CustomTracker(base.GetType(),"BasicDetails");
        ASPSite.BL.MYSQLReference.BasicDetails basicDetails = adminBL.getBasicDetails(id);
        EmpApp.Models.BasicDetails basicDetailsModel = getBasicDetailsModel(basicDetails);
     }
    finally
    {
         customTracker.StopTracker();
    }
     return View(basicDetailsModel);
}
例 3: CustomTrackerのUsingステートメントで、コードをインストルメント化
public ActionResult BasicDetails(int id = 0)
{
            AdminBL adminBL = new AdminBL();
            using(CustomTracker customTracker = new CustomTracker(base.GetType(),"BasicDetails"))
             {
     // コードのインストルメント化。この関数から、FetchAllEmplpyeesとSQL呼び出しを実行
     using(CustomTracker fetchAllEmpTracker = new CustomTracker(base.GetType(),"FetchAllEmployees"))
                 {
          FetchAllEmployees();
                 }
                  ASPSite.BL.MYSQLReference.BasicDetails basicDetails =   objadmin.getBasicDetails(id);
                  EmpApp.Models.BasicDetails basic = getBasicDetailsModel(basicDetails);
            }
            return View(basicDetailsModel);
  1. メソッド名やクラス名をCustomTrackerに与えない場合、現在のメソッド名やクラス名自体を取得しようとします。
  2. StartTracker() メソッドは、デフォルトで、コンストラクター内で呼び出されます。
  3. エージェントがインストールされていない場合や、エージェントのサービスが停止している場合は、メソッド実行は何の効果も発揮しません。

Azure環境へのエージェントのデプロイ

エージェントのバージョン2.3以上
  1. 次の記載を、Webロール プロジェクトに追加し、「出力にコピー(Copy to Output)」プロパティを「常にコピーする(Copy Always)」にセットします。
    a. .NETエージェントのインストーラー「apminsight­-dotnetagent­.msi」
    b. ライセンス キーやその他の設定を含む「apminsight.conf」ファイル
    c. バッチ ファイル「deploy­-apminsight.cmd」
  2. 下記のとおり、スタートアップ タスクを、サービス定義(.csdef)ファイルに、定義します。
     <ServiceDefinition>
       <WebRole>
          <Startup>
            <Task commandLine="deploy­-apminsight.cmd configfile=apminsight.conf

            appfilterconfigfile=appfilter.conf multimonitor=true/false"
            executionContext="elevated" taskType="background"/>
          </Startup>
       </WebRole>
    </ServiceDefinition>

エージェントのバージョン2.3未満
  1. 次の記載を、Webロール プロジェクトに追加し、「出力にコピー(Copy to Output)」プロパティを「常にコピーする(Copy Always)」にセットします。
    a. .NETエージェントのインストーラー「apminsight­-dotnetagent­.msi」
    b. ライセンス キーやその他の設定を含む「apminsight.conf」ファイル
    c. バッチ ファイル「deploy­-apminsight.cmd」
  2. 下記のとおり、スタートアップ タスクを、サービス定義(.csdef)ファイルに、定義します。
     <ServiceDefinition>
       <WebRole>
          <Startup>
            <Task commandLine="deploy­-apminsight-x64.cmd configfile=apminsight.conf

            appfilterconfigfile=appfilter.conf multimonitor=true/false"
            executionContext="elevated" taskType="background"/>
          </Startup>
       </WebRole>
    </ServiceDefinition>

フィルターで選択したアプリケーションを監視

パラメーターappfilterconfigfile=appfilter.confを追加すると、コマンドライン タスクで説明した通り、選択したアプリケーションのみを監視することができます。これには、アプリ フィルター関連の設定が含まれます(include.app.namesとuse.appfilter)。マニュアルでのアプリ設定の手順にしたがってください。可能な場合は、この設定をUIで同じ手順でおこない、設定ファイルをコピーすることを推奨します。

展開方法:

  1. クラウド サービスに、Visual Studio自体から公開する、もしくは、
  2. パッケージにまとめ、Azureポータルでクラウド サービスからアップロードする

既知の問題と回避策

Azure環境では、W3SVCサービス(World Wide Web Publishing Service)の起動タイプを、デフォルトでは「マニュアル」にしています。これにより、.NETエージェントのインストール後に、「サービスを使用できません」というメッセージが表示されることがあります(インストール時のIISリセットによる)。問題の回避策として、起動タイプを「自動」にセットしてください。それには、それには、sc config w3svc start= autoを、バッチ ファイルのインストール コマンドの前に追記します。

エージェントのバージョン2.3以上

下記スクリプトを新規テキスト ファイルにコピー・ペーストし、ファイル名を、deploy­-apminsight.cmdとしてください。

deploy­-apminsight.cmd

REM APMインサイトのエージェントをWindows Azureにインストールする
SETLOCAL EnableExtensions
REM インストール済みであれば、割愛
IF DEFINED COR_PROFILER GOTO :END
IF NOT EXIST apminsight-dotnetagent.msi GOTO :END
REM w3svc IIS ワーカー プロセスのサービス起動を、自動に設定
sc config w3svc start=auto
REMエージェントをインストール
apminsight-dotnetagent.msi /quiet /log %windir%\ApmInsightInstall.log editconfig=false %*
:END
EXIT /B %ERRORLEVEL%
エージェントのバージョン2.3未満

下記スクリプトを新規テキスト ファイルにコピー・ペーストし、ファイル名をdeploy­-apminsight-x64.cmdとします。x86エージェントでは同様のスクリプトを、x86 msiファイル名で作成してください。

deploy­-apminsight-x64.cmd

REM APMインサイトのエージェントをWindows Azureにインストールする
SETLOCAL EnableExtensions
REM インストール済みであれば、割愛
IF DEFINED COR_PROFILER GOTO :END
IF NOT EXIST apminsight-dotnetagent-x64.msi GOTO :END
REM w3svc IIS ワーカー プロセスのサービス起動を、自動に設定
sc config w3svc start=auto
REMエージェントをインストール
apminsight-dotnetagent-x64.msi /quiet /log %windir%\ApmInsightInstall.log editconfig=false %*
:END
EXIT /B %ERRORLEVEL%

Health Monitorの利用

  1. Health Monitorは、エージェント設定の概要を提供する自己診断ツールです。エージェントでありがちな設定上の問題を特定・解消するのに役立ちます。この機能は、APMインサイト(.NETエージェント)のバージョン1.8以上で利用可能です。
  2. このツールは、「APM Insight .NET Agent」フォルダーのスタート メニューにあります。
  3. Health Monitorより、以下の作業が可能です。
    • 診断ZIPファイルの作成:Health Monitorは、サポート チームが必要とする、すべてのエージェント ログや、その他のシステム情報を取得します。オプションで、イベントログ情報の追加ができます。サポートが必要な場合は、このZIPファイルを提供ください。
    • サービス設定の表示:エージェントのサービス モード(インスタンスが1つか複数か)、エージェントのサービス ステータス(動作中、停止中)、ログ レベルが分かります。
    • ネットワーク接続の確認:通信を行うには、APMインサイトのエージェントは、Site24x7のサーバーに、ポート80と443で接続する必要があります。ポートがファイアウォールやアンチウイルス ソフトでブロックされていないことを、確認ください。
    • アプリケーション フィルターの確認:アプリケーション フィルターを適用すれば、実行中のアプリケーションが監視されているかを確認できます。アプリ フィルターを参照ください。
    • ワーカー プロセスの監視:稼働中と表示されるワーカー プロセスが無ければ、トランザクションを実行したのち、リトライください。
      エージェントのバージョンが2.3未満の場合、ワーカー プロセス数がカウントできなければ、エージェントのビット数が問題である可能性があります。この場合、エージェントとワーカー プロセスで、ビット数をあわせる必要があります(32ビットアプリには32ビットエージェント、64ビットアプリには64ビットエージェント)。
    • 監視ステータスの確認:監視のステータス(管理対象、管理対象外、削除済みなど)が監視名の下に表示されます。インスタンスが1つであれば、監視は1つだけ表示されます。インスタンスが複数の場合、エージェントが作成した監視のすべてが表示されます。
    • プロファイラー ステータスの確認:IISアプリケーションをインストルメントするには、プロファイラーをワーカー プロセスにロードする必要があります。プロファイラー読み込みに失敗した場合、IISのリセットをしてから、プロファイラーをリロードしてください。同時に、他のエージェント プロファイルが同じマシンにインストールされていないことを、確認お願いします(マシンにつき、アクティブなプロファイラーは1つのみです)。
  1. 問題発生の際は、診断ZIPファイルを作成する前に、エージェントのログ レベルを「debug」にして、トランザクションを試してください。この情報がいただければ、問題の絞り込みと、手早い解決に役立ちます。

トップ