Webクライアントを使用したカスタムインストゥルメンテーション

デフォルトでは、APMインサイトエージェントは、すべてのアプリケーショントランザクション、既知のクラスとメソッド、およびWebフレームワークをキャプチャします。
お客様の環境によっては、アプリケーションに対するエージェントの負荷を最小限に抑えるために、デフォルトのメソッドやフレームワーク以外のメソッドやフレームワークをキャプチャしないといった環境もございます。

すべてのメソッドとフレームワークを表示し、デバッグプロセスの粒度を高めるために、カスタムメソッドまたはフレームワークをインストルメントテーションすることができます。
このプロセスは、カスタムインストルメンテーションと呼ばれます。

カスタムインストルメンテーションの用途

以下のシチュエーションで、カスタムインストルメンテーションは活躍します。
  • すべてのアプリケーション メソッドとフレームワークを 100% 可視化したい。
  • トランザクショントレースをチェックしている際、「インストルメントされていないコードブロック」が表示された場合。
    エージェントによって選択されなかったメソッドまたはクラスをインストルメントして、そのパフォーマンスをチェックできます。
  • フレームワークがデフォルトでサポートされていないか、インストルメント化されていない場合。
本ページでご案内するカスタム方法は、Javaおよび .NET Coreエージェントでのみサポートされています。
※エージェントAPIを介することで、RubyおよびNode.jsアプリケーションをカスタムインストルメンテーションすることも可能です。

また、これらのカスタマイズはAPMインサイトアプリケーションに固有のものであり、すべてのインスタンスに適用されます。インスタンス固有のカスタムインストルメンテーションの場合、アプリケーションプラットフォームに応じて、JavaエージェントAPIまたは.NETエージェントAPIを使用できます。

メソッド、クラス、フレームワークをカスタムする方法

カスタムインスツルメンテーションを行うには、以下の手順に従ってください。

  1. Applications Managerのウェブクライアントにログインしてください。
  2. APMタブ→該当のアプリケーションをクリック→編集画面に遷移してください。
  3. テキストボックスに以下のコードを入力します。
    テキストまたはJSON形式で入力できます。 両方の形式を以下に示します。
  4. JSONフォーマットタイプ

    フォーマット:
    {"Fully qualified ClassName":{"MethodName1" : "ComponentName", "MethodName2" : "ComponentName" }}
     
    例:
    {
     "com.sample.web.tasks.ModelUpdateHandler":
      {
       "doHandle": "MODEL_UPDATE",
       "update": "MODEL_UPDATE"
      }
    }

    テキストフォーマットタイプ:

    フォーマット:
    Fully qualified ClassName : methodNames separated by comma(,) : Component Name
     
    例:
    com.sample.web.tasks.ModelUpdateHandler : doHandle,update : MODEL_UPDATE
    com.sample.web.services.SystemCheck : doCheck, isHealthy :
    com.sample.web.store.DataModifier : : MODIFIER
    com.sample.web.utils.FileUtils : :


    JSON型とText型の両方で、完全修飾クラス名を指定するには以下の形式を使用します。
    Javaクラスのフォーマット - com/appmanager/apminsight/agent/JavaAgent
    .NET Coreクラスのフォーマット - Com.Appmanager.Apminsight.Agent.DotAgent
  5. 上記の行を入力したら、[保存]をクリックします。

カスタムインストゥルメンテーションの前後

Javaエージェント

Before:

After:

.NET Coreエージェント

Before:

After: