JMX 配置选项

编辑

capture_jmx_metrics ( [1.11.0] 在 1.11.0 版本中添加。 )

编辑

将 JMX 指标报告到 APM 服务器

可以包含多个以逗号分隔的 JMX 指标定义

object_name[<JMX object name pattern>] attribute[<JMX attribute>:metric_name=<optional metric name>]
  • object_name:

    有关 JMX 对象名称模式语法的更多信息,请参阅 ObjectName Javadoc 文档

  • attribute:

    JMX 属性的名称。JMX 值必须是 Number 类型,或者是一个复合值,其中复合项为数字。此元素可以多次定义。属性可以包含可选属性。其语法与 ObjectName 的语法相同。

    • metric_name:

      attribute 内的属性。这是存储指标的名称。设置此项是可选的,如果未设置,则与 attribute 相同。请注意,探针会为所有 JMX 指标名称添加 jvm.jmx. 前缀。

探针为每个 JMX 键属性(例如 typename)创建 labels

JMX 对象名称模式 支持通配符。属性定义不支持通配符,但接受特殊定义 attribute[*](从 1.44.0 版本开始),表示匹配关联的对象名称模式的所有可能的(数字)属性。定义 object_name[*:type=*,name=*] attribute[*] 将匹配所有可能的 JMX 指标。在下面的示例中,探针将为每个内存池 name(例如 G1 Old GenerationG1 Young Generation)创建一个指标集。

object_name[java.lang:type=GarbageCollector,name=*] attribute[CollectionCount:metric_name=collection_count] attribute[CollectionTime]

Elasticsearch 中的结果文档类似于这些(为简洁起见,省略了元数据)

{
  "@timestamp": "2019-08-20T16:51:07.512Z",
  "jvm": {
    "jmx": {
      "collection_count": 0,
      "CollectionTime":   0
    }
  },
  "labels": {
    "type": "GarbageCollector",
    "name": "G1 Old Generation"
  }
}
{
  "@timestamp": "2019-08-20T16:51:07.512Z",
  "jvm": {
    "jmx": {
      "collection_count": 2,
      "CollectionTime":  11
    }
  },
  "labels": {
    "type": "GarbageCollector",
    "name": "G1 Young Generation"
  }
}

探针还支持属性值的复合值。在此示例中,HeapMemoryUsage 是一个复合值,由 committedinitusedmax 组成。

object_name[java.lang:type=Memory] attribute[HeapMemoryUsage:metric_name=heap]

Elasticsearch 中的结果文档类似于此

{
  "@timestamp": "2019-08-20T16:51:07.512Z",
  "jvm": {
    "jmx": {
      "heap": {
        "max":      4294967296,
        "init":      268435456,
        "committed": 268435456,
        "used":       22404496
      }
    }
  },
  "labels": {
    "type": "Memory"
  }
}

dynamic config

默认值 类型 动态

<无>

列表

true

Java 系统属性 属性文件 环境变量

elastic.apm.capture_jmx_metrics

capture_jmx_metrics

ELASTIC_APM_CAPTURE_JMX_METRICS