查看原文
其他

RocketMQ如何添加JVM监控

weihubeats 小奏技术
2024-09-06

JVM监控选型

本次JVM监控我们采用prometheus官方提供的jmx_exporter来实现

RocketMQJVM开发

整体目录

1. 新增agent目录

我们在distribution目录新增一个agent模块,然后添加两个文件

  1. jmx_prometheus_javaagent-1.0.1.jar
  2. 新增config.yaml文件

config.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

2. 修改release.xml打包脚本

release.xml中新增agent模块的打包配置

            <includes>
                <include>conf/**</include>
                <include>benchmark/*</include>
                <include>agent/*</include>
            </includes>

3. 修改启动脚本mqbroker

export ROCKETMQ_HOME下面新增如下代码

JMX_PROMETHEUS_AGENT="-javaagent:$ROCKETMQ_HOME/agent/jmx_prometheus_javaagent-1.0.1.jar=9100:$ROCKETMQ_HOME/agent/config.yaml"

sh ${ROCKETMQ_HOME}/bin/runbroker.sh后面新增如下代码

${JMX_PROMETHEUS_AGENT}

自此我们的JVM监控agent就开发完成了。

4.部署

  1. 重新编译RocketMQ源码
mvn -Prelease-all -DskipTests -Dspotbugs.skip=true clean install
  1. 执行启动脚本
  2. 通过ps -ef|grep java查看agent是否在启动脚本中
  3. 访问http://localhost:9100/metrics 查看监控数据。服务器记得开通9100端口

5. 效果

效果和之前说的类似

总结

总的来说java应用都支持使用prometheus官方提供的jmx_exporter这个agent来实现JVM的监控。我们只需要修改一下脚本把agent挂载上去即可


继续滑动看下一个
小奏技术
向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存