跳到主要内容

Micrometer JMX

DeepSeek V3 中英对照 JMX Micrometer JMX

Micrometer 提供了一个层次化的映射到 JMX 的功能,主要是作为一种廉价且便携的方式来在本地查看指标。在生产环境中使用 JMX 导出时,通常会将相同的指标导出到另一个更适合的监控系统中。

1. 安装 micrometer-registry-jmx

建议使用由 Micrometer(或您的框架,如果有的话)提供的 BOM,您可以在此处查看如何配置它 here。以下示例假设您正在使用 BOM。

1.1. Gradle

配置 好 BOM 后,添加以下依赖:

implementation 'io.micrometer:micrometer-registry-jmx'
groovy
备注

由于该依赖项的版本由 BOM 定义,因此不需要指定版本。

1.2. Maven

配置 了 BOM 之后,添加以下依赖项:

<dependency>
<groupId>io.micrometer</groupId>
<artifactId>micrometer-registry-jmx</artifactId>
</dependency>
xml
备注

此依赖项的版本不需要指定,因为它由 BOM 定义。

Micrometer 有时也会从 JMX beans 中抓取数据以用于报告指标。对于这些用途,不需要此注册表实现。相反,此模块严格用于将数据导出到 JMX。

2. 层次化名称映射

Micrometer 提供了一个 HierarchicalNameMapper 接口,用于控制如何将维度化的仪表 ID 映射为扁平化的层次结构名称。

默认的 (HierarchicalNameMapper.DEFAULT) 会按字母顺序对标签的键进行排序,并将标签的键值对附加到基础指标名称后,使用 '.' 作为分隔符 —— 例如,http_server_requests.method.GET.response.200。名称和标签键首先会应用注册表的命名约定。

如果你的命名方案有特殊之处需要遵循,你可以提供自己的 HierarchicalNameMapper 实现。自定义映射器最常见的原因是需要为每个指标的前面添加前缀(通常类似于 app.<name>.http_server_requests.method.GET.response.200)。

3. 计数器

JMX 计数器用于测量平均吞吐量以及一分钟、五分钟和十五分钟的指数加权移动平均吞吐量。

JMX 渲染的计数器

图 1. 随机游走计数器的 JMX 渲染值。