Prometheus jmx

wget https://v.vimll.com:9999/download/jmx_prometheus_javaagent-0.17.0.jar

/usr/local/jdk1.8.0_211/bin/java -javaagent:/data/jmx_exporter/jmx_prometheus_javaagent-0.17.0.jar=9998:/data/jmx_exporter/jmx-config.yaml -jar safe-pt-0.0.1-SNAPSHOT.jar --spring.profiles.active=prod ;

supervisor配置
[program: safept-prod]
directory = /data/safe ; 程序的启动目录
command = /usr/local/jdk1.8.0_211/bin/java -javaagent:/data/jmx_exporter/jmx_prometheus_javaagent-0.17.0.jar=9998:/data/jmx_exporter/jmx-config.yaml -jar safe-pt-0.0.1-SNAPSHOT.jar --spring.profiles.active=prod ; 启动命令,与命令行启动的命令是一样的
autostart = true     ; 在 supervisord 启动的时候也自动启动
startsecs = 15       ; 启动 5 秒后没有异常退出,就当作已经正常启动了
autorestart = true   ; 程序异常退出后自动重启
startretries = 5     ; 启动失败自动重试次数,默认是 3
user = safe          ; 用哪个用户启动
redirect_stderr = true  ; 把 stderr 重定向到 stdout,默认 false
stdout_logfile_maxbytes = 20MB  ; stdout 日志文件大小,默认 50MB
stdout_logfile_backups = 5     ; stdout 日志文件备份数
; stdout 日志文件,需要注意当指定目录不存在时无法正常启动,所以需要手动创建目录(supervisord 会自动创建日志文件)
stdout_logfile = /data/safe/logs/safept_stdout.log ;日志统一放在log目录下
stopasgroup = true
killasgroup = true
; stop时,仅仅干掉supervisord的子进程的话,子进程的子进程可能会变成孤儿进程。所以可以设置这个选项,把整个该子进程的整个进程组干掉。默认false

cat jmx-config.yaml
lowercaseOutputLabelNames: true
lowercaseOutputName: true
whitelistObjectNames: ["java.lang:type=OperatingSystem"]
rules:
  - pattern: 'java.lang<type=OperatingSystem><>((?!process_cpu_time)\w+):'
    name: os_$1
    type: GAUGE
    attrNameSnakeCase: true