次の方法で共有


JMX メトリックの構成

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

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

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

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

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

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

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

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

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

ログ ファイルで使用可能な JMX メトリックのスクリーンショット。

コマンド ライン ツールを使用して、使用可能な 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 メトリックを表示できます。 メトリックを表示するには、[メトリック] タブで、下の画像で示すようにドロップダウンを選びます。

ポータル内のメトリックのスクリーンショット