配置 JMX 指标

默认情况下,Application Insights Java 3.x 会收集一些 Java 管理扩展 (JMX) 指标,但在许多情况下,这是不够的。 本文档详细介绍了 JMX 配置选项。

如何收集额外的 JMX 指标?

可以向 applicationinsights.json 文件中添加 "jmxMetrics" 部分,以配置 JMX 指标收集。 输入要在 Application Insights 资源的 Azure 门户中显示的指标的名称。 要收集的每个指标都需要对象名称和特性。 可以将对象名称中的 * 用于 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 门户中的 application insights 资源来查看在应用程序运行时收集的 JMX 指标。 在“指标”选项卡下,按所示选择下拉菜单以查看指标。

门户中指标的屏幕截图