目录
JMX Exporter 的两种用法
启动独立进程 jmx_prometheus_httpserver-0.18.0.jar 方式
下载 jmx_exporter
找地方随便一放
创建配置文件 config_jmx_exporter.yaml
增加 启动 jvm 配置 一定要是jvm参数 可别意外写成程序参数
启动jmx_exporter
Prometheus yml 配置
启动就出来了metrics
随便配个指标看下效果
Grafana 使用模板是 8563
进程内启动 jmx_prometheus_javaagent-0.18.0.jar 方式 -推荐方式
先把jar下载下来
创建个配置文件 config_jmx_exporter.yaml
Prometheus.yml 配置一下心的job
启动自己的项目命令
linux 带上如下内容即可
Grafana 导入 8563 模板 or 8878 模板也可以 配完就出来了
JMX Exporter 的两种用法
JMX-Exporter 提供了两种用法:
- 启动独立进程。JVM 启动时指定参数,暴露 JMX 的 RMI 接口,JMX-Exporter 调用 RMI 获取 JVM 运行时状态数据,转换为 Prometheus metrics 格式,并暴露端口让 Prometheus 采集。
- JVM 进程内启动(in-process)。JVM 启动时指定参数,通过 javaagent 的形式运行 JMX-Exporter 的 jar 包,进程内读取 JVM 运行时状态数据,转换为 Prometheus metrics 格式,并暴露端口让 Prometheus 采集。
官方不推荐使用第一种方式,一方面配置复杂,另一方面因为它需要一个单独的进程,而这个进程本身的监控又成了新的问题,所以本文重点围绕第二种用法讲如何使用 JMX Exporter 暴露 JVM 监控指标给Prometheus并展示在Grafana上。
启动独立进程 jmx_prometheus_httpserver-0.18.0.jar 方式
下载 jmx_exporter
Releases · prometheus/jmx_exporter · GitHub
找地方随便一放
创建配置文件 config_jmx_exporter.yaml
hostPort: localhost:8084
rules:
- pattern: ".*"
增加 启动 jvm 配置 一定要是jvm参数 可别意外写成程序参数
-Dcom.sun.management.jmxremote.port=8084
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false
启动jmx_exporter
>java -jar jmx_prometheus_httpserver-0.18.0.jar 12345 config_jmx_exporter.yaml
Prometheus yml 配置
- job_name: "jmx-exporter"
static_configs:
- targets: ["localhost:12345"]
启动就出来了metrics
随便配个指标看下效果
Grafana 使用模板是 8563
JVM dashboard | Grafana Labs
进程内启动 jmx_prometheus_javaagent-0.18.0.jar 方式 -推荐方式
先把jar下载下来
地址一样 点击下载即可
https://github.com/prometheus/jmx_exporter/releases
创建个配置文件 config_jmx_exporter.yaml
lowercaseOutputLabelNames: 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
Prometheus.yml 配置一下心的job
- job_name: "jmx-exporter"
static_configs:
- targets: ["localhost:12345"]
启动自己的项目命令
#-javaagent:D:\kf\prometheus\jmx_prometheus_javaagent-0.18.0.jar=12345:d:\kf\prometheus\config_jmx_exporter.yaml
java -javaagent:D:\kf\prometheus\jmx_prometheus_javaagent-0.18.0.jar=12345:d:\kf\prometheus\config_jmx_exporter.yaml -jar .\demo-provider-0.0.1-SNAPSHOT.jar
linux 带上如下内容即可
nuhup … &
我是为方便放到prometheus 下边了大家根据需要随便放没限制
Jmx_exporter 开启需要的端口 如12345=12345
Grafana 导入 8563 模板 or 8878 模板也可以 配完就出来了
很方便内存线程啥的都可以快速看 切换节点就可以看其他机器的了
ok
持续更新