【发布时间】:2020-07-22 11:56:15
【问题描述】:
我正在尝试使用 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 +“线程池”。 你能建议这里有什么问题吗?
【问题讨论】:
-
由于 JConsole 可以使用导出器的所有指标,听起来问题出在 JMX Prometheus 导出器端。可能是 Prometheus 导出器无法解析 Ignite 导出器 SPI 的消息。你用这个出口商吗? github.com/prometheus/jmx_exporter
-
当我运行 io.prometheus.jmx.JmxScraper 时,我似乎遇到了github.com/prometheus/jmx_exporter/issues/483
Exception in thread "main" java.lang.ClassCastException: javax.management.openmbean.TabularDataSupport cannot be cast to javax.management.Attribute at io.prometheus.jmx.JmxScraper.scrapeBean(JmxScraper.java:160) at io.prometheus.jmx.JmxScraper.doScrape(JmxScraper.java:117) at io.prometheus.jmx.JmxScraper.main(JmxScraper.java:329) -
或者,您可以尝试使用 Prometheus OpenCensus 导出。 Ignite 可以以该格式导出指标:apacheignite.readme.io/docs/new-metrics#opencensus
标签: java prometheus jmx ignite