默认情况下,Application Insights Java 3.x 会收集一些 Java 管理扩展 (JMX) 指标,但在许多情况下,这是不够的。 本文档详细介绍了 JMX 配置选项。
可以向 applicationinsights.json 文件中添加 "jmxMetrics"
部分,以配置 JMX 指标收集。 输入要在 Application Insights 资源的 Azure 门户中显示的指标的名称。 要收集的每个指标都需要对象名称和特性。 可以将对象名称中的 *
用于 glob 样式通配符(详细信息)。
说得对 - 必须知道对象名称和属性,对于不同的库、框架和应用程序服务器,这些属性各有区别,并且通常得不到良好记录。 幸运的是,很容易找到你的特定环境支持的 JMX 指标。
若要查看可用的指标,请在 applicationinsights.json
配置文件中将自我诊断级别设置为 DEBUG
,例如:
{
"selfDiagnostics": {
"level": "DEBUG"
}
}
具有对象名称和属性名称的可用 JMX 指标会显示在 Application Insights 日志文件中。
日志文件输出的外观类似于这些示例。 在某些情况下,指标可能非常广泛。
还可以使用命令行工具来检查可用的 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"
}
],
可以通过导航到 Azure 门户中的 application insights 资源来查看在应用程序运行时收集的 JMX 指标。 在“指标”选项卡下,按所示选择下拉菜单以查看指标。