JMX Exporter 使用教程
1. 项目的目录结构及介绍
JMX Exporter 是一个用于通过 HTTP 暴露 JMX Bean 以供 Prometheus 使用的项目。以下是其主要目录结构及介绍:
jmx_exporter/
├── README.md
├── jmx_prometheus_javaagent-0.18.0.jar
├── jmx_prometheus_javaagent-0.18.0_java6.jar
├── jmx_prometheus_httpserver-0.18.0.jar
├── jmx_prometheus_httpserver-0.18.0_java6.jar
├── config/
│ └── simple-config.yml
├── run_sample_httpserver.sh
├── stress-test.sh
└── version-rules.xml
README.md
: 项目说明文档。jmx_prometheus_javaagent-0.18.0.jar
: 适用于 Java 7 及以上版本的 Java 代理。jmx_prometheus_javaagent-0.18.0_java6.jar
: 适用于 Java 6 的 Java 代理。jmx_prometheus_httpserver-0.18.0.jar
: 适用于 Java 7 及以上版本的独立 HTTP 服务器。jmx_prometheus_httpserver-0.18.0_java6.jar
: 适用于 Java 6 的独立 HTTP 服务器。config/
: 配置文件目录,包含示例配置文件simple-config.yml
。run_sample_httpserver.sh
: 运行示例 HTTP 服务器的脚本。stress-test.sh
: 压力测试脚本。version-rules.xml
: 版本规则文件。
2. 项目的启动文件介绍
JMX Exporter 可以通过两种方式启动:作为 Java 代理或作为独立 HTTP 服务器。
作为 Java 代理启动
使用以下命令启动:
java -javaagent:/path/to/jmx_prometheus_javaagent-0.18.0.jar=8080:/path/to/config.yml -jar yourJar.jar
-javaagent:/path/to/jmx_prometheus_javaagent-0.18.0.jar
: 指定 JMX Exporter 代理的路径。8080
: 指定暴露的端口号。/path/to/config.yml
: 指定配置文件的路径。-jar yourJar.jar
: 指定要运行的 Java 应用。
作为独立 HTTP 服务器启动
使用以下命令启动:
java -jar /path/to/jmx_prometheus_httpserver-0.18.0.jar 8080 /path/to/config.yml
-jar /path/to/jmx_prometheus_httpserver-0.18.0.jar
: 指定 JMX Exporter HTTP 服务器的路径。8080
: 指定暴露的端口号。/path/to/config.yml
: 指定配置文件的路径。
3. 项目的配置文件介绍
JMX Exporter 的配置文件使用 YAML 格式,以下是一个示例配置文件 simple-config.yml
的内容:
hostPort: localhost:1234
username:
password:
jmxUrl: service:jmx:rmi:///jndi/rmi://localhost:1234/jmxrmi
ssl: false
lowercaseOutputName: false
lowercaseOutputLabelNames: false
whitelistObjectNames: ["org.apache.cassandra.metrics:type=ColumnFamily"]
blacklistObjectNames: ["org.apache.cassandra.metrics:type=ColumnFamily,name=All"]
rules:
- pattern: 'org.apache.cassandra.metrics<type=ColumnFamily, name=(\w+)><>Value: (\d+)'
name: cassandra_$1_value
value: $2
valueFactor: 0.001
labels: {}
help: "Cassandra metric $1"
type: GAUGE
attrNameSnakeCase: false
hostPort
: JMX 服务的主机和端口。username
和password
: