Skip to content

使用 OpenTelemetry Java Agent 暴露 JVM 监控指标

在 Opentelemetry Agent v1.20.0 及以上版本中,Opentelemetry Agent 新增了 JMX Metric Insight 模块,如果你的应用已经集成了 Opentelemetry Agent 去采集应用链路,那么你不再需要另外引入其他 Agent 去为我们的应用暴露 JMX 指标。Opentelemetry Agent 也是通过检测应用程序中本地可用的 MBean 公开的指标,对其进行收集并暴露指标。

Opentelemetry Agent 也针对常见的 Java Server 或框架内置了一些监控的样例,请参考预定义的指标

使用 OpenTelemetry Java Agent 同样需要考虑如何将 JAR 挂载进容器,除了可以参考上面 JMX Exporter 挂载 JAR 文件的方式外,我们还可以借助 Opentelemetry 提供的 Operator 的能力来实现自动为我们的应用开启 JVM 指标暴露:

如果你的应用已经集成了 Opentelemetry Agent 去采集应用链路,那么你不再需要另外引入其他 Agent 去为我们的应用暴露 JMX 指标。Opentelemetry Agent 通过检测应用程序中本地可用的 MBean 公开的指标,现在可以本地收集并暴露指标接口。

但是,截至目前版本,你仍然需要手动为应用加上相应注解之后,JVM 数据才会被 Insight 采集到,具体注解内容请参考 已有 JVM 指标的 Java 应用对接可观测性

为 Java 中间件暴露指标

Opentelemetry Agent 也内置了一些中间件监控的样例,请参考 预定义指标

默认没有指定任何类型,需要通过 -Dotel.jmx.target.system JVM Options 指定,比如 -Dotel.jmx.target.system=jetty,kafka-broker

参考