java - Prometheus 通过 JMX 监控 Apache Ignite

标签 java prometheus jmx ignite

我正在尝试使用 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 指标。 jconsole

尝试了不同的 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 +“线程池”。 你能指出这里出了什么问题吗?

最佳答案

  1. 创建一个空的 prometheus_config.yml 文件。确保文件被正确读取。 在此处跟踪:https://github.com/prometheus/jmx_exporter/blob/ce04b7dca8615d724d8f447fa25c44ae1c29238b/collector/src/main/java/io/prometheus/jmx/JmxCollector.java#L75 以确保您使用的是正确的文件。

  2. 删除 metricExporterSpi 属性

  3. 连接到指定的端口,在您的示例中为 8080,以查看所有结果。

您的模式匹配规则不允许 Apache Ignite 结果正确显示。

您可以在此处使用调试/跟踪指令:https://github.com/prometheus/jmx_exporter 看看发生了什么。

模式规则处理在这里:https://github.com/prometheus/jmx_exporter/blob/ce04b7dca8615d724d8f447fa25c44ae1c29238b/collector/src/main/java/io/prometheus/jmx/JmxCollector.java#L357

关于java - Prometheus 通过 JMX 监控 Apache Ignite,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63033626/

相关文章:

java - 将 java.util.Properties 转换为 HashMap<String,String>

java - "No match Found"使用 matcher 的 group 方法时

prometheus - 如何在 Prometheus 查询中组合单独的时间序列标签?

http - 配置 Prometheus 使用非默认端口

java - Playframework2.6 + sbt + java如何与jmx配合使用?

ubuntu - 如何在nagios中使用JMX监控tomcat客户端?

java - 第一次单击 X 时 JDialog 未关闭

prometheus - 无法启动 Prometheus 服务器

java - 用于云应用程序的 JMX

java - Spring 嵌套事务不适用于 jOOQ