JMX メトリックの構成

Application Insights Java 3.x は既定で Java Management Extensions (JMX) メトリックの一部を収集しますが、多くの場合、これでは不十分です。 このドキュメントでは、JMX 構成オプションについて詳しく 説明します。

追加の JMX メトリックを収集する方法

JMX メトリック コレクションを構成するには、applicationinsights.json ファイルに "jmxMetrics" セクションを追加します。 メトリックの名前を、Azure portal の Application Insights リソースに表示したい様式で入力します。 収集するメトリックごとに、オブジェクト名と属性が必要です。

構成できるメトリックを確認する方法

オブジェクト名と属性は、必ず把握する必要があります。これらのプロパティは、ライブラリ、フレームワーク、アプリケーション サーバーによって異なり、多くの場合、十分に文書化されていません。 幸いなことに、特定の環境でどのような JMX メトリックがサポートされているかを正確かつ簡単に見つけることができます。

使用可能なメトリックを表示するには、applicationinsights.json 構成ファイル内で、自己診断レベルを DEBUG に設定します。

{
  "selfDiagnostics": {
    "level": "DEBUG"
  }
}

使用可能な JMX メトリック (オブジェクト名と属性名) が、Application Insights ログ ファイルに表示されます。

ログ ファイルの出力は、次の例のようになります。 大量に出力される場合もあります。

Screenshot of available JMX metrics in the log file.

コマンド ライン ツールを使用して、使用可能な JMX メトリックを確認することもできます。

構成の例

使用可能なメトリックがわかると、それらを収集するようにエージェントを構成できます。 最初のものは、入れ子になったメトリック LastGcInfo の例です。これにはいくつかのプロパティがあり、GcThreadCount を取得する必要があります。

"jmxMetrics": [
      {
        "name": "Demo - GC Thread Count",
        "objectName": "java.lang:type=GarbageCollector,name=PS MarkSweep",
        "attribute": "LastGcInfo.GcThreadCount"
      },
      {
        "name": "Demo - GC Collection Count",
        "objectName": "java.lang:type=GarbageCollector,name=PS MarkSweep",
        "attribute": "CollectionCount"
      },
      {
        "name": "Demo - Thread Count",
        "objectName": "java.lang:type=Threading",
        "attribute": "ThreadCount"
      }
],

Application Insights で JMX メトリックを確認できる場所

Azure portal で Application Insights リソースに移動すると、アプリケーション実行中に収集された JMX メトリックを表示できます。 メトリックを表示するには、[メトリック] タブで、下の画像で示すようにドロップダウンを選びます。

Screenshot of metrics in portal