Prometheus 监测 RocketMQ 最佳实践

本文介绍了RocketMQ如何接入Prometheus进行监控,包括Metrics、Tracing和Logging的实现,强调了RocketMQ可观测性的核心理念。RocketMQ exporter已被Prometheus官方收录,提供了丰富的监控指标。文章还探讨了Prometheus指标暴露的注意事项,如避免高基数问题,并分享了RocketMQ在解决高基数问题上的优化措施。此外,讨论了RocketMQ如何基于OpenTelemetry进行全链路Tracing和Metrics的处理,以及如何通过ARMS Prometheus监控云产品指标,提供多租户解决方案。
摘要由CSDN通过智能技术生成

本文作者:郭雨杰,阿里云智能技术专家。​

Prometheus 集成的 50 多款云产品中,RocketMQ 在可观测方面实现了非常完善的功能,是一个特别具有代表性的云产品。

01RocketMQ如何接入Prometheus

RocketMQ 诞生于阿里内部的核心电商系统,是业务消息的首选 MQ 平台。上图是 RocketMQ 5.0 的系统全貌,在接入层、核心组件和底层运维方面做了非常大的改进,具有功能多样、高性能、高可靠、可观测、易运维等众多优势。

Metrics、Tracing、Logging 是可观测能力的三大支柱。

1. Metrics:RocketMQ 以 Prometheus+Grafana 这种在开源领域广泛使用的产品组合为用户提供了开箱即用的 Dashboard。指标涵盖了消息量、堆积量、各阶段耗时等,该大盘结合 RocketMQ 团队在消息领域多年的研发和运维经验打磨的最佳实践模板,并提供了持续的迭代更新能力。

2. Tracing:RocketMQ 首次引入了 OpenTelemetry tracing 的开源标准,按照消息的维度,重新组织了抽象的 span 拓扑。

3.  Logging:Logging 方面主要进行了一些客户端日志的标准化处理,能够更简单方便地利用日志定位问题。

RocketMQ 的所有可观测性数据都是围绕一条消息在生产端、服务端处理、消费阶段展开。从消息的生命周期图上,可以看到一条消息从 Producer 开始发送到 MQ server 接收到的耗时;如果是定时消息根据 Ready time 可以知道定时的时间;从 Consumer 的角度上看,可以知道消息从开始拉取到抵达客户端的网络耗时;从抵达客户端的时间到开始处理消息的等待处理资源耗时;从开始处理消息到最后返回的 ACK 的处理耗时。消息在生命周期的任何一个阶段,都可以清晰地被定义并且被观测到,这就是 RocketMQ 可观测的核心理念。

RocketMQ 团队贡献的 RocketMQ exporter 已被 Prometheus 官方的开源 Exporter 生态所收录,提供了 Broker、Producer、Consumer 各个阶段丰富的监控指标。Exporter 基本逻辑是通过在内部启动多个定时任务周期性地从 MQ 的集群上拉取数据,然后将数据规范化后通过端点暴露给Prometheus。MQAdminExt 类封装了 MQAdmin 暴露的各种接口逻辑。从结构上看,RocketMQ 的 Exporter 是站在第三方视角的观察者角色,而所有的指标来自于MQ 集群的内部。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值