Application Insights Java 3.x 預設會收集一些 Java 管理延伸模組 (JMX) 計量,但在許多情況下,這並不足夠。 本文件詳細描述 JMX 設定選項。
如何收集其他 JMX 計量?
您可以將 "jmxMetrics" 區段新增至 applicationinsights.json 檔案,以設定 JMX 計量收集。 輸入您想要在 Azure 入口網站的 Application Insights 資源中顯示的計量名稱。 您要收集的每個計量都需要物件名稱和屬性。 您可以在物件名稱中使用 * 作為 Glob 樣式萬用字元 (詳細資料 (英文))。
如何知道有哪些計量可設定?
您能搞定!您必須知道物件名稱和屬性、這些屬性對於各種程式庫、架構和應用程式伺服器而言都不同,而且通常未妥善記載。 幸運的是,您可以輕鬆地找到特定環境支援的 JMX 計量。
若要檢視可用的計量,請將 DEBUG 設定檔中的自我診斷層級設定為 applicationinsights.json,例如:
{
"selfDiagnostics": {
"level": "DEBUG"
}
}
可用的 JMX 計量,物件名稱和屬性名稱會出現在 Application Insights 記錄檔中。
日誌檔案輸出大致如這些範例所示。 在某些情況下,涉及的範圍可能很廣泛。
您也可以使用命令列工具檢查可用的 JMX 計量。
設定範例
了解有哪些計量可供使用,您可以設定代理程式來收集這些計量。
在下列 Java 8 組態範例中,第一個是巢狀計量 , 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 入口網站中瀏覽至 Application Insights 資源,以檢視在應用程式執行時所收集的 JMX 計量。 在 [計量] 索引標籤下,選取下拉式清單以檢視計量。