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 メトリックを確認することもできます。
構成の例
使用可能なメトリックがわかると、それらを収集するようにエージェントを構成できます。
次の Java 8 の構成例の 1 つ目は、複数のプロパティを持つ入れ子になったメトリック 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"
}
]
Java 17 の他の構成例:
"jmxMetrics": [
{
"name": "Demo - G1 Collection Count Young",
"objectName": "java.lang:name=G1 Young Generation,type=GarbageCollector",
"attribute": "CollectionCount"
},
{
"name": "Demo - G1 Collection Count Old",
"objectName": "java.lang:name=G1 Old Generation,type=GarbageCollector",
"attribute": "CollectionCount"
},
{
"name": "Demo - Thread Count",
"objectName": "java.lang:type=Threading",
"attribute": "ThreadCount"
}
]
Application Insights で JMX メトリックを確認できる場所
Azure portal で Application Insights リソースに移動すると、アプリケーション実行中に収集された JMX メトリックを表示できます。 メトリックを表示するには、[メトリック] タブで、下の画像で示すようにドロップダウンを選びます。