JMX Exporter
https://github.com/prometheus/jmx_exporter
它是Prometheus官方组件,作为一个JAVA Agent来提供本地JVM的metrics,并通过http暴露出来。这也是官方推荐的一种方式,可以获取进程的信息,比如CPU和内存使用情况。
Jmx_exporter是以代理的形式收集目标应用的jmx指标,这样做的好处在于无需对目标应用做任何的改动。
运行JMX exporter的方式:
java XXX -javaagent:/root/jmx_exporter/jmx_prometheus_javaagent-0.12.0.jar=3010:/root/jmx_exporter/config.yaml -jar XXX.jar
下载
目前最新版是0.12.0,下载链接为:
https://repo1.maven.org/maven2/io/prometheus/jmx/jmx_prometheus_javaagent/0.12.0/jmx_prometheus_javaagent-0.12.0.jar
simple-config.yml
我的prometheus安装路径为:/data/prometheus
新建配置文件simple-config.yml
mkdir /data/prometheus/jmx_exporter
cd /data/prometheus/jmx_exporter
wget https://repo1.maven.org/maven2/io/prometheus/jmx/jmx_prometheus_javaagent/0.12.0/jmx_prometheus_javaagent-0.12.0.jar
vim simple-config.yml
内容如下:
---
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
比如我有一个rms的java应用,启动方式为:
java -jar /data/rms/RMS.jar
使用JMX Exporter插件收集数据,需要改成这样:
java -javaagent:/data/prometheus/jmx_exporter/jmx_prometheus_javaagent-0.12.0.jar=3010:/data/prometheus/jmx_exporter/simple-config.yml -jar /data/rms/RMS.jar
注意:3010是代理端口,可以随意指定。
prometheus.yml
修改配置文件,增加一个job_name
vim /data/prometheus/prometheus.yml
最后一行增加
- job_name: 'java'
scrape_interval: 30s
static_configs:
- targets: ['localhost:3010']
重启prometheus
/etc/init.d/prometheus-server restart
导入Dashboard
模板链接为:
https://grafana.com/grafana/dashboards/8563/revisions
点击下面的Download,进行下载。
登录Grafana,点击import
上传json
数据源选择 Prometheus
最后打开刚刚导入的Dashboard,如下图
本文参考链接:
https://chanjarster.github.io/post/prom-grafana-jvm/