本文会通过一个 Java 应用,演示 Prometheus JMX Exporter 在 Kubernetes 里的部署和配置方式。为了更好地理解 JMX Exporter,我们将使用 Spring Boot Java 应用程序并将所有 JMX 指标导出给 Prometheus。在本指南结束时,您将学习:
- 使用 Java 应用镜像启动 JMX Exporter
- 将 JMX 指标导出给 Prometheus
- 使用 Prometheus SD 配置抓取应用程序的 JMX 指标
- 从 Prometheus 仪表板验证和查询 JMX 指标
先决条件
- 具有部署权限的 Kubernetes 集群
- 在 Kubernetes 上运行的 Prometheus
JMX Exporter
首先,让我们了解一下 JMX Exporter 是如何工作的。下图显示了在 Kubernetes 上部署 JMX Exporter 时的工作流。

MBean(Managed Bean)Server 位于 Java 应用程序的 Java 虚拟机 (JVM) 中,充当与应用程序的运行状况和性能相关的数据存储库。MBean 组件公开应用程序指标,例如状态、动作和操作信息。
javaagent 可以访问 Mbean Server 并获取运行状况和性能数据。Prometheus JMX Exporter 也是一个 javaagent,它能够访问 MBean Server 的数据并将该数据转换为 Prometheus 指标格式。然后,Prometheus 从 JMX Exporter 的默认指标路径(即 /metrics)中抓取指标。
在 Kubernetes 中部署 JMX Exporter
步骤 1:使用 JMX agent 构建应用程序 Docker 镜像
JMX Exporter 的 javaagent 要和应用程序一起运行(Java 程序通过 java -javaagent 参数指定 JMX Exporter 的 jar 包路径)。您可以从此处下载 JMX exporter agent jar 文件 -> JMX Exporter Download。构建 Java 程序镜像时,将 JMX Exporter jar 文件一并添加到镜像中。
FROM techiescamp/jre-17:1.0.0
ENV APP_NAME=jmx-java-app
ENV JMX_PORT=5556
WORKDIR /app
COPY /java-agent/*.jar /app/jmx-agent.jar
COPY /java-app/*.jar /app/java.jar
COPY config.yaml /app/
CMD java -javaagent:jmx-agent.jar=${JMX_PORT

最低0.47元/天 解锁文章
691

被折叠的 条评论
为什么被折叠?



