jmx_export 监控 java 进程(jar ) : 连接
参考: 实战Prometheus监控jmx_export 堆栈内存-阿里云开发者社区 (aliyun.com)
https://gitee.com/wang-huamao/jmx-exporter-demo
用java agent 方式 部署
参考 Dockerfile
FROM openjdk:8-jre-slim
MAINTAINER lhz
ENV PARAMS=""
ENV TZ=PRC
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
ADD jmx1.yaml /jmx.yaml
ADD springboot-demo.jar /app.jar
ADD jmx_prometheus_javaagent-0.20.0.jar /jmx.jar
EXPOSE 7070
EXPOSE 8080
ENTRYPOINT ["sh","-c","java -jar -javaagent:/jmx.jar=7070:/jmx.yaml $JAVA_OPTS /app.jar $PARAMS"]
制作镜像
docker build -t registry.cn-hangzhou.aliyuncs.com/baimeidashu-k8s/springboot-jar-jvm-javaagent:v4 --no-cache .
为了省去 每次都要复制jmx_prometheus_javaagent-0.20.0.jar
这里白眉大叔,单独做了一个镜像:
FROM registry.cn-hangzhou.aliyuncs.com/baimeidashu-k8s/centos79-jdk17:v3
ENTRYPOINT ["/bin/sh","-c","java -Dfile.encoding=utf8 -Djava.security.egd=file:/dev/./urandom -jar -javaagent:/jmx.jar=7070:/jmx.yaml app.jar ${PARAMS}"]
测试7070
2- kubespher 上 配置 promethues
创建应用
prometheus.yml
- job_name: "spring-boot-jar-jmx"
static_configs:
- targets: ["springboot-jvm-test.kattgatt-monitor:7070"]
这里的targets 可以添加多个。
3- grafana 添加
3066
其他的不行,就这个一个好用
2-
一些案例 config
https://github.com/prometheus/jmx_exporter/tree/main/example_configs