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

APMインサイト エージェントは、Webコンポーネントやフレームワークについての事前設定クラスを組み込み、アプリケーションの状況を把握できます。APMインサイトではカスタム インストルメンテーションも可能で、ご希望のクラスも利用できます。これによって、アプリケーションの内部を幅広く理解し、アプリにある特定機能や特定モジュールのパフォーマンスを、容易に追跡可能となります。

Javaエージェントでは、お客さまアプリケーションのカスタム インストルメンテーションを2つの方法でサポートしています。

  • 設定ファイルを利用する:特定インスタンスでクラスやメソッドをインストルメントする際にご利用ください。
  • Javaアノテーションを利用する:アプリケーションに変更を加え、追加の値を抽出する場合に使います。変更は、アプリケーションのインスタンスすべてに反映されます。

設定ファイルを利用する

  1. お客さま希望のクラスをインストルメントするには、下記のフォーマットで、クラス名を「custom_instrumentation.conf(バージョン4.9未満)」か「instrumentation.conf(それ以上)」に記載してください。

    Fully qualified ClassName : methodNames separated by comma(,) : component_Name

  2. クラスやパッケージはそれぞれ、行替え区切りで入力します。

  3. 複数メソッドを指定するには、カンマ(,)区切りにしてください。

  4. メソッド名を指定しない場合は、指定クラスにあるすべてのメソッドを組み込みます。この場合、組み込むべきオーバーロード用メソッドがあれば、オーバーロードされるメソッドもインストルメントされます。クラスは改行区切りで1つずつ指定してください。

  5. コンポーネントの名付けには、英数字とアンダースコアのみを利用可能です(a-zA-Z_0-9)。コンポーネント名が未指定や無効の場合、エージェントはデフォルトで、アプリコードと見なします。

    例:

    a/b/c/CustomClass : methodA, methodB : ComponentA
    a/b/c/CustomClass : methodC : ComponentB
    a/b/c/CustomClass : : Component_A1
    a/b/c/CustomClass : :

  6. パッケージにあるクラスすべてを組み込む場合は、下記の通り、パッケージ名を指定できます。

    package_name/.* :

    例:

    a/b/c/.* : : Component_C
    a/b/c/d/.* : :

  7. パッケージ全体の指定は推奨しません。パッケージにある全クラスの全メソッドを組み込むこととなり、CPUやメモリに余分な負荷がかかります。多くのメソッドはパフォーマンス監視と関係が薄く、トレースが余分に長くなります。ただし、コードの流れを把握するのが目的であれば、パッケージ全体の指定も可能です。
メモ 変更を有効にするには、アプリケーション サーバーの再起動が必要です。