总体架构图
下图展示了各个组件在此过程中的作用
组件1:jmx_prometheus,负责生成JVM的监控信息
- 下载agent的jar包:jmx_prometheus_javaagent-0.12.0.jar,下载地址
- 配置:jmx_prometheus.yaml,更多配置信息请参考 jmx_exporter
wercaseOutputLabelNames: true lowercaseOutputName: true whitelistObjectNames: ["java.lang:type=OperatingSystem"] blacklistObjectNames: [] rules: - pattern: 'java.lang<type=OperatingSystem><>(committed_virtual_memory|free_physical_memory|free_swap_space|total_physical_memory|total_swap_space)_size:' name: os_$1_bytes type: GAUGE attrNameSnakeCase: true - pattern: 'java.lang<type=OperatingSystem><>((?!process_cpu_time)\w+):' name: os_$1 type: GAUGE attrNameSnakeCase: true
- 启动:
java -javaagent:jmx_prometheus_javaagent-0.12.0.jar=6666:./jmx_prometheus.yaml -jar yourJar.jar
组件2:Prometheus,负责收集和存储JVM信息
- 下载Prometheus,下载地址
- 配置yaml文件
scrape_configs:
- job_name: 'java'
scrape_interval: 30s
static_configs:
- targets:
- '127.0.0.1:6666' // 代表先前启动的agent的地址和端口
- 启动prometheus:
./prometheus --config.file=./prom-jmx.yml
- 访问 http://127.0.0.1:9090/ 有界面代表启动成功
- 查看已有的JVM信息
组件3:Grafana,负责展示JVM状态
- 安装Grafana,按照官网操作,很简单,默认启动端口3000
- 新建数据源(选择Prometheus)和新建 JVM dashboard
- 结果图