链载Ai

标题: RocketMQ 可观测性最佳实践 [打印本页]

作者: 链载Ai    时间: 3 小时前
标题: RocketMQ 可观测性最佳实践


RocketMQ 概述


Apache RocketMQ 是一个开源的分布式消息传递和流处理平台,由阿里巴巴团队最初开发并捐赠给 Apache 软件基金会。它主要用于处理大规模消息的发送和接收,支持高吞吐量、可扩展性强且具有高可用性的消息服务。


RocketMQ 的优势有以下几点:


RocketMQ 是一个功能强大的消息中间件,适用于需要高可靠性、高性能和高可扩展性的现代互联网、金融和电信等领域的企业级应用。


观测云



部署 DataKit

DataKit 是一个开源的、跨平台的数据收集和监控工具,由观测云开发并维护。它旨在帮助用户收集、处理和分析各种数据源,如日志、指标和事件,以便进行有效的监控和故障排查。DataKit 支持多种数据输入和输出格式,可以轻松集成到现有的监控系统中。


登录观测云控制台,在「集成」 - 「DataKit」选择对应安装方式,当前采用 Linux 主机部署 DataKit。




安装 RocketMQ Exporter

通过 RocketMQ Exporter 可以采集 RocketMQ 的指标信息并对外暴露。



gitclonehttps://github.com/apache/rocketmq-exporter.git


进入安装目录


cdrocketmq-exporter/



1)构建 jar 包方式


mvncleanpackage


构建完成,进入 target 目录


cdtarget


启动 jar 包 (替换命令行中nameserverip地址)


nohupjava-jartarget/rocketmq-exporter-0.0.2-SNAPSHOT.jar--rocketmq.config.namesrvAddr=nameserverip:9876&


2)构建 Docker 镜像方式


mvnpackage-Dmaven.test.skip=truedocker:build


使用镜像启动 Docker (替换命令行中 nameserverip 地址)


dockerrun-d--net="host"--namerocketmq-exporter-p5557:5557docker.io/rocketmq-exporter--rocketmq.config.namesrvAddr=nameserverip:9876



curlhttp://127.0.0.1:5557/metrics



采集 RocketMQ 指标

RocketMQ Exporter 暴露指标端口为:5557,可以直接通过 prom 采集器进行采集。进入 DataKit 安装目录/usr/local/datakit/conf.d ,复制 prom 目录下的配置文件并命名为 rocketmq.conf 。示例如下:


开启 DataKit Prometheus 插件,复制 sample 文件


cd/usr/local/datakit/conf.d/promcpprom.conf.samplerocketmq.conf


修改配置文件rocketmq.conf


[[inputs.prom]]urls=["http://127.0.0.1:5557/metrics"]ignore_req_err=falsesource="rocketmq"#metric_types需要选择空,rocketmq-exporter没有指定数据类型metric_types=[]interval="60s"


重启 DataKit


datakitservicerestart



监控视图

登录观测云控制台,点击「场景」 -「新建仪表板」,输入 “RocketMQ”, 选择“RocketMQ 监控视图”,点击“确定”。





关键指标


rocketmq_broker_tps ( broker 每秒生产消息数量)


rocketmq_broker_qps ( broker 每秒消费消息数量)


rocketmq_producer_tps (某个 topic 每秒生产的消息数量)


rocketmq_consumer_tps (某个消费组每秒消费的消息数量)


rocketmq_group_diff (消费组堆积量指标)


rocketmq_group_get_latency_by_storetime (某个消费组的消费延时时间)



监控器

1)rocketmq_broker_tps ( broker 每秒生产消息数量)


阈值建议:如果您的系统通常运行在每秒1000条消息,可以设置一个上限阈值为1500条,下限阈值为500条。


监控告警:


2)rocketmq_group_diff (消费组堆积量指标)


阈值建议:根据实际业务的吞吐量和消息处理需求设置阈值告警。



3)rocketmq_consumer_tps (某个消费组每秒消费的消息数量)


阈值建议:如果正常消费速度为每秒800条,可以设置一个阈值下限为400条。


监控告警:


4)rocketmq_group_get_latency_by_storetime (某个消费组的消费延时时间)


阈值建议:如果延时通常在5秒以内,可以设置告警阈值为10秒。


监控告警:如果延时超过10秒,发送告警。高延时可能影响业务操作的实时性,需检查并解决问题。







欢迎光临 链载Ai (https://www.lianzai.com/) Powered by Discuz! X3.5