我正在尝试使用 Prometheus 的 JMX 导出器监控 Apache Ignite,但我只看到默认的 JVM 指标以及仅针对“线程池”Bean 的指标。 JMX 导出器作为代理运行:
/usr/bin/java -XX:+AggressiveOpts -javaagent:/etc/prometheus/jmx_prometheus_javaagent-0.13.0.jar=8080:/etc/prometheus/prometheus_config.yml -Xms1g -Xmx1g -server -XX:MaxMetaspaceSize=256m -Dfile.encoding=UTF-8 -Dcom.sun.management.jmxremote.rmi.port=49112 -Djava.rmi.server.hostname=127.0.0.1 -DIGNITE_QUIET=true -DIGNITE_SUCCESS_FILE=/usr/share/apache-ignite/work/ignite_success_ed3b2798-4d48-4188-94ac-1728fa8628dc -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=49112 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -DIGNITE_HOME=/usr/share/apache-ignite -DIGNITE_PROG_NAME=/usr/share/apache-ignite/bin/ignite.sh -cp /usr/share/apache-ignite/libs/*:/usr/share/apache-ignite/libs/ignite-indexing/*:/usr/share/apache-ignite/libs/ignite-spring/*:/usr/share/apache-ignite/libs/licenses/* org.apache.ignite.startup.cmdline.CommandLineStartup /etc/apache-ignite/default-config.xml
Ignite 配置有启用指标:
<property name="metricExporterSpi">
<list>
<bean class="org.apache.ignite.spi.metric.jmx.JmxMetricExporterSpi"/>
</list>
</property>
我可以从连接到 49112 端口的 jconsole 看到很多 ignite 指标。
尝试了不同的 jmx-exporter 选项,没有任何帮助。
---
hostPort: 127.0.0.1:49112
lowercaseOutputLabelNames: true
lowercaseOutputName: true
---
lowercaseOutputLabelNames: true
lowercaseOutputName: true
rules:
- pattern: "^org.apache<clsLdr=(.+), name=sys"
name: ignite_sys_stats
help: Ignite cluster amount of heap memory in bytes
labels:
attr: $3
type: GAUGE
甚至是空配置,这应该意味着“按原样收集所有内容”,仍然只看到标准的 JVM +“线程池”。 你能指出这里出了什么问题吗?
最佳答案
创建一个空的 prometheus_config.yml 文件。确保文件被正确读取。 在此处跟踪:https://github.com/prometheus/jmx_exporter/blob/ce04b7dca8615d724d8f447fa25c44ae1c29238b/collector/src/main/java/io/prometheus/jmx/JmxCollector.java#L75 以确保您使用的是正确的文件。
删除 metricExporterSpi 属性
连接到指定的端口,在您的示例中为 8080,以查看所有结果。
您的模式匹配规则不允许 Apache Ignite 结果正确显示。
您可以在此处使用调试/跟踪指令:https://github.com/prometheus/jmx_exporter 看看发生了什么。
关于java - Prometheus 通过 JMX 监控 Apache Ignite,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63033626/