使用 SkyWalking 监控 RocketMQ Server

SkyWalking 10.0 引入了新的 RocketMQ 监控面板,本文将演示该监控面板的使用。

By 邵一鸣 | Thursday, February 29, 2024

背景介绍

Apache RocketMQ 是一个开源的低延迟、高并发、高可用、高可靠的分布式消息中间件, 从SkyWalking OAP 10.0 版本开始, 新增了 对 RocketMQ Server的监控面板。本文将展示并介绍如何使用 Skywalking来监控RocketMQ

部署

流程

通过RocketMQ官方提供的RocketMQ exporter来采集RocketMQ Server数据,再通过opentelmetry-collector来拉取RocketMQ exporter并传输到skywalking oap服务来处理

DataFlow:

准备

  1. Skywalking oap服务,v10.0 +
  2. RocketMQ v4.3.2 +
  3. RocketMQ exporter v0.0.2+
  4. Opentelmetry-collector v0.87+

启动顺序

  1. 启动 RocketMQ namesrvbroker
  2. 启动 skywalking oapui
  3. 启动 RocketMQ exporter
  4. 启动 opentelmetry-collector

具体如何启动和配置请参考以上链接中官方教程.

需要注意下的是 opentelmetry-collector 的配置文件.

job_name: "rocketmq-monitoring" 请不要修改,否则 skywalking 不会处理这部分数据.

rocketmq-exporter 替换成RocketMQ exporter 的地址.

replacement: rocketmq-cluster 中的rocketmq-cluster如果想要使用下文介绍的服务分层功能,请自行定义为其他服务层级相匹配的名称.

oapskywalking oap 地址,请自行替换.

yaml 复制代码
receivers:
  prometheus:
    config:
      scrape_configs:
        - job_name: "rocketmq-monitoring"
          scrape_interval: 30s
          static_configs:
            - targets: ['rocketmq-exporter:5557']
          relabel_configs:
            - source_labels: [ ]
              target_label: cluster
              replacement: rocketmq-cluster

exporters:
  otlp:
    endpoint: oap:11800
    tls:
      insecure: true

processors:
  batch:
service:
  pipelines:
    metrics:
      receivers:
        - prometheus
      processors:
        - batch
      exporters:
        - otlp

监控指标

指标分为 三个维度, cluster,broker,topic

cluster监控

cluster 主要是站在集群的角度来统计展示,比如

  • Messages Produced Today 今日集群产生的消息数
  • Max CommitLog Disk Ratio 展示集群中磁盘使用率最高的broker
  • Total Producer Tps 集群生产者tps

broker 监控

broker 主要是站在节点的角度来统计展示,比如

Produce Tps 节点生产者tps

Producer Message Size(MB)节点生产消息大小

topic 监控

topic 主要是站在主题的角度来统计展示,比如

Consumer Group Count 消费该主题的消费者组个数

Consumer Latency(s) 消费者组的消费延时时间

Backlogged Messages 消费者组消费消息堆积

注意:topic 维度是整个 topic 来聚合,并不是在一个 broker 上的 topic 聚合,在 dashboard 上你也可以看到 broker 跟 topic 是平级的。

各个指标的含义可以在图标的 tip 上找到解释

更多指标可以参考文档

demo 已经在 skywalking showcase 上线,可以在上面看到展示效果

服务分层

skywalking 10 新增了重要功能Service Hierarchy,接收来自不同层级的服务数据,比如 java agent 上报,k8s 监控数据或者 otel 的监控数据. 根据设置规则如果发现这些服务名称符合匹配规则,则可以将这些不同层级的服务联系起来。

如下图所示:

skywalking 采集部署在 k8s 的 RocketMQ 服务端的k8s 数据,并接收来自 otel 的 RocketMQ 服务端监控数据,根据匹配规则这些服务具有相同的服务名称,则可以在 ui 上观察到它们的联系

相关推荐
小猿姐1 天前
MySQL Top 10 热点问题 AI 运维实战:从内核诊断到云原生运维
mysql·云原生·aiops
kyriewen2 天前
前端错误监控最全指南:捕获 JS 异常、Promise 拒绝、资源加载失败,附上报代码
前端·javascript·监控
阿里云云原生3 天前
深入内核:拆解 OpenTelemetry eBPF 探针如何优雅地“透视”多语言微服务?
云原生
java_cj3 天前
深入kube-apiserver认证机制:从Bearer Token到mTLS的完整认证链解析
linux·运维·服务器·云原生·容器·kubernetes
杨浦老苏3 天前
轻量级Docker仪表板Servedash
运维·docker·监控·群晖·仪表板
互联网推荐官3 天前
上海软件定制开发公司推荐:从PaaS工程化路径看D-coding的技术取舍
云原生·云计算·paas·软件开发·开发经验·上海
sbjdhjd3 天前
从零搭建企业级 CI/CD(下):Jenkins+GitLab+Harbor 全链路实战指南
git·servlet·ci/cd·云原生·云计算·gitlab·jenkins
java_cj3 天前
深入kubectl create源码:从YAML到Pod的完整链路拆解
运维·云原生·容器·kubernetes
步步为营DotNet4 天前
基于.NET Aspire 实现云原生应用的高效监控与可观测性
云原生·.net·wpf
牛奶咖啡134 天前
KVM虚拟化与企业应用实践——给远端主机创建虚拟机
云原生·qemu·kvm·给远端主机创建虚拟机·创建uefi模式的虚拟机·安装openeulersp2·vnc与虚拟机环境搭建