JMX 配置选项编辑

capture_jmx_metrics ( [1.11.0] 在 1.11.0 中添加。 )编辑

将 JMX 指标报告到 APM Server

可以包含多个以逗号分隔的 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

默认值 类型 动态

<none>

列表

true

Java 系统属性 属性文件 环境

elastic.apm.capture_jmx_metrics

capture_jmx_metrics

ELASTIC_APM_CAPTURE_JMX_METRICS