RocketMQ-(7-1)-可观测-Metrics

news2025/1/15 20:53:34

RocketMQ 以 Prometheus 格式公开以下指标。您可以使用这些指标监视您的集群。

  • 服务端 Metrics 指标
  • 生产者 Metrics 指标
  • 消费者 Metrics 指标

版本支持:以下指标 Metrics 是从 5.1.0 版本开始支持。

Metrics 指标详情​

Metric types​

消息队列 RocketMQ 版定义的 Metrics 完全兼容开源 Prometheus 的标准,提供的 Metrics 的类型为 Counter、Gauge 和 Histogram。更多信息,请参见 METRIC TYPES。

服务端 Metrics 指标​

消息队列 RocketMQ 版服务端相关 Metrics 指标中 Label 的说明如下:

  • cluster: RocketMQ 集群名称。
  • node_type: 服务节点类型。枚举值包含 proxy、broker、nameserver。
  • node_id: 服务节点 ID。
  • topic: 消息队列 RocketMQ 的主题。
  • message_type: 消息类型。有以下类型:
    Normal:普通消息;
    FIFO:顺序消息;
    Transaction:事务消息;
    Delay:定时/延时消息.
  • consumer_group: 消费者 ID。
Metrics 类型Metrics name单位指标说明Label
counterrocketmq_messages_in_totalcount消息生产数量。cluster,node_type,node_id,topic,message_type
counterrocketmq_messages_out_totalcount消息消费数量。cluster,node_type,node_id,topic, consumer_group
counterrocketmq_throughput_in_totalbyte消息生产流入服务端的吞吐量。cluster,node_type,node_id,topic,message_type
counterrocketmq_throughput_out_totalbyte消息消费从服务端流出的吞吐量。cluster,node_type,node_id,topic, consumer_group
histogramrocketmq_message_sizebyte消息大小的分布情况,发送成功时统计。分布区间如下:
le_1_kb: ≤ 1 KB
le_4_kb: ≤ 4 KB
le_512_kb: ≤ 512 KB
le_1_mb: ≤ 1 MB
le_2_mb: ≤ 2 MB
le_4_mb: ≤ 4 MB
le_overflow: > 4 MB
cluster,node_type,node_id,topic,message_type
gaugerocketmq_consumer_ready_messagescount已就绪消息量。cluster,node_type,node_id,topic, consumer_group
gaugerocketmq_consumer_inflight_messagescount处理中消息量。cluster,node_type,node_id,topic, consumer_group
gaugerocketmq_consumer_queueing_latencymillisecond已就绪消息排队延迟时间。cluster,node_type,node_id,topic, consumer_group
gaugerocketmq_consumer_lag_latencymillisecond消费处理延迟时间。cluster,node_type,node_id,topic, consumer_group
counterrocketmq_send_to_dlq_messages_totalcount转为死信状态的消息量。(变成死信状态指的是消息达到最大重投次数后不再投递)cluster,node_type,node_id,topic, consumer_group
histogramrocketmq_rpc_latencymillisecondrpc 调用耗时:
le_1_ms
le_3_ms
le_5_ms
le_10_ms
le_100_ms
le_1_s
le_3_s
le_overflow
cluster,node_typ,node_id,protocol_type,request_code,response_code
gaugerocketmq_storage_message_reserve_timemillisecond储存层消息保存时间(broker 硬盘上最早一条消息储存时间和当前时间作差)cluster,node_type,node_id
gaugerocketmq_storage_dispatch_behind_bytesbytedispatch 落后大小cluster,node_type,node_id
gaugerocketmq_storage_flush_behind_bytesbyte刷盘落后大小。cluster,node_type,node_id
gaugerocketmq_thread_pool_wartermarkcount线程池排队数cluster,node_type,node_id,name

生产者 Metrics 指标​

消息队列 RocketMQ 版生产者相关 Metrics 指标中 Label 的说明如下:

  • cluster: RocketMQ 集群名称。
  • node_type: 服务节点类型。枚举值包含 proxy、broker、nameserver。
  • node_id: 服务节点 ID。
  • topic: 消息队列 RocketMQ 的主题。
  • message_type: 消息类型。有以下类型:
    Normal:普通消息;
    FIFO:顺序消息;
    Transaction:事务消息;
    Delay:定时/延时消息.
  • client_id: 客户端 ID。
  • invocation_status: 消息发送接口调用结果,枚举值包含 success 和 failure。
Metrics 类型Metrics name单位指标说明Label
Histogramrocketmq_send_cost_timemillisecond调用消息发送接口成功的耗时分布情况。分布区间如下::
le_1_ms
le_5_ms
le_10_ms
le_20_ms
le_50_ms
le_200_ms
le_500_ms
le_overflow
topic,client_id,invocation_status

消费者 Metrics 指标​

消息队列 RocketMQ 版消费者相关 Metrics 指标中 Label 的说明如下:

  • topic: 消息队列 RocketMQ 的主题。
  • consumer_group: 消费者分组 ID。
  • client_id: 客户端 ID。
  • invocation_status: 消费结果, 枚举值包含 success 和 failure。
Metrics 类型Metrics name单位指标说明Label
Histogramrocketmq_process_timemillisecondPushConsumer 的消息处理耗时分布情况.分布区间如下:
le_1_ms
le_5_ms  
le_10_ms
le_100_ms
le_10000_ms
le_60000_ms
le_overflow
topic,consumer_group,client_id,invocation_status
gaugerocketmq_consumer_cached_messagesmessagePushConsumer 本地缓冲队列中的消息条数。topic,consumer_group,client_id
gaugerocketmq_consumer_cached_bytesbytePushConsumer 本地缓冲队列中消息的总大小。topic,consumer_group,client_id
Histogramrocketmq_await_timemillisecond消息在 PushConsumer 本地缓冲队列中的排队时间的分布情况:
le_1_ms
le_5_ms
le_20_ms
le_100_ms
le_1000_ms
le_5000_ms
le_10000_ms
le_overflow
topic,consumer_group,client_id

指标业务场景​

消息队列 RocketMQ 版主要基于以下业务场景定义 Metrics 指标.

消息堆积场景​

RocketMQ 队列消息状态


上图表示指定主题的某一队列中各消息的状态,消息队列 RocketMQ 版将处于不同处理阶段的消息数量和耗时进行统计,这些指标可直接反映队列中消息的处理速率和堆积情况,通过观察这些指标可初步判断业务的消费是否异常。具体的指标含义和计算公式如下:

名称描述计算公式
处理中的消息(inflight messages)在消费者客户端正在处理,但客户端还未返回消费结果的消息。最晚一条拉取消息的位点-最晚一条提交消息的位点
已就绪消息(ready messages)消息在消息队列 RocketMQ 版服务端已就绪,对消费者可见可被消费的消息。最大消费位点-最晚一条拉取消息的位点
已就绪消息的就绪时间(ready time)普通消息、顺序消息:消息存储到服务端的时间。 
定时/延时消息:消息定时或延时结束的时间。
  事务消息:事务提交的时间。
--
已就绪消息的排队时间(ready message queue time)该时间反应消费者拉取消息的及时性。当前时间-最早一条就绪消息的就绪时间
消费处理滞后时间(consumer lag time)该时间反应消费者完成消息处理的及时性。当前时间-最早一条未提交消息的就绪时间

PushConsumer 消费场景​

在 PushConsumer 类型中,消息的实时处理能力是基于 SDK 内部的典型 Reactor 线程模型实现的。如下图所示,SDK 内置了一个长轮询线程,先将消息异步拉取到 SDK 内置的缓存队列中,再分别提交到消费线程中,触发监听器执行本地消费逻辑。
 

PushConsumer client


在 PushConsumer 消费场景下,本地缓冲队列相关指标如下:

  • 本地缓冲队列中的消息量:本地缓冲队列中的消息总条数。
  • 本地缓冲队列中的消息大小:本地缓冲队列中所有消息大小的总和。
  • 消息等待处理时间:消息暂存在本地缓冲队列中的时间。

Metrics 指标获取方式​

目前支持 gRPC OTLP 和 Prometheus 两种 exporter

gRPC OTLP exporter​

gRPC OTLP exporter 会周期性地向指定的 OpenTelemetry Collector 上报 metrics

前置条件:需要部署支持 GRPC OpenTelemetry Protocol 的 OpenTelemetry Collector

开启 Broker metrics 的 gRPC OTLP exporter 需要进行以下配置:

  1. 将 metricsExporterType 设置为 OTLP_GRPC
  2. 将 getMetricsGrpcExporterTarget 设置为 OpenTelemetry Collector 提供的 endpoint

可选配置:

  1. metricsGrpcExporterHeader:为 gRPC OTLP exporter 附加请求头,格式为 key1:value1,key2:value2
  2. metricGrpcExporterTimeOutInMills:设置 gRPC OTLP exporter 的请求超时时间
  3. metricGrpcExporterIntervalInMills:设置 gRPC OTLP exporter 的上报间隔

Prometheus exporter​

Prometheus exporter 仅支持 Pull 模式和 Cumulative 聚合,详见 OpenTelemetry Metrics Exporter - Prometheus

开启 Broker metrics 的 Prometheus exporter 需要进行以下配置:

  1. 将 metricsExporterType 设置为 PROM

访问 http://<broker-ip>:5557/metrics 来查看 metrics,在 Prometheus 中配置服务发现或手动配置拉取任务即可采集 metrics

可选配置:

  1. metricsPromExporterPort:Broker 暴露 metrics 服务的端口号,默认为 5557
  2. metricsPromExporterHost:暴露 metrics 服务的主机名,默认为 Broker 向 NameServer 注册的地址,即 brokerIP1

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/926899.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

微调llama2模型教程:创建自己的Python代码生成器

本文将演示如何使用PEFT、QLoRa和Huggingface对新的lama-2进行微调&#xff0c;生成自己的代码生成器。所以本文将重点展示如何定制自己的llama2&#xff0c;进行快速训练&#xff0c;以完成特定任务。 一些知识点 llama2相比于前一代&#xff0c;令牌数量增加了40%&#xff0…

CentOS7.9安装Java11

文章目录 Java11版本介绍安装步骤查看并卸载已有版本安装Java11最新版本配置生效 openjdk介绍 Java11版本介绍 Java 11是Java编程语言的一个重要版本&#xff0c;于2018年9月发布Java 11在语言特性、性能优化和安全性方面都有一些显著的改进&#xff0c;为Java开发者提供了更多…

.NetCore之log4net的使用

1.首先下载log4ne的包&#xff1a; 2.添加配置文件log4net.config <?xml version"1.0" encoding"utf-8" ?> <configuration><!-- This section contains the log4net configuration settings --><log4net><appender name&q…

初探函数式编程---以Map/Reduce/Filter为例

如函数式编程--酷壳[1] 总结&#xff0c; 函数式编程的三大特性; 数据不可变性 函数作为一等公民(函数可以像变量一样来创建/修改/传递 等) 尾递归优化(重用stack,减轻栈的压力) 函数式编程用到的几个技术&#xff1a; 函数式编程的理念&#xff1a;把函数当成变量来用&#xf…

亚马逊电咖啡壶UL1082测试标准

UL1082标准是适用于额定电压为120V,按照国家电气编码进行使用的便携式电咖啡壶&#xff0c;咖啡渗漏壶及其它酿造类器具&#xff0c;除了咖啡壶外&#xff0c;本标准也适用于荼壶、水煲、玻璃水煲、汤保温壶及其它类似器具。这些器具都具有以下特点&#xff1a; &#xff08;1…

Day06-Vue全家桶项目

Day01-Vue全家桶项目 一 全家桶项目介绍 Vue在使用脚手架创建项目的时候,提供前端工程化项目 目前主要学习了Vue基础:Vue指令、Vue组件开发、Vue样式、组件通信、生命周期 全家桶项目是很多技术结合的一种开发模式: 全家桶项目搭建路由搭建(前端路由)网络请求封装Elem…

【Java从0到1学习】11 Java集合框架

1. Collection 1.1 Java类中集合的关系图 1.2 集合类概述 在程序中可以通过数组来保存多个对象&#xff0c;但在某些情况下开发人员无法预先确定需要保存对象的个数&#xff0c;此时数组将不再适用&#xff0c;因为数组的长度不可变。例如&#xff0c;要保存一个学校的学生信…

华为数通方向HCIP-DataCom H12-821题库(单选题:81-100)

第81题 某公司新购入一台网络设备,作为网络管理员,初次配置该设备通常通过什么方式? A、FTP B、Telnet C、SNMP D、Console 口登录 答案: D 解析&#xff1a; 通常情况下&#xff0c;初次配置网络设备会通过Console口登录的方式进行。Console口是一种串口接口&#xff0c…

网络安全工程师岗位一览-徐庆臣(黑客洗白者)

安全服务工程师 安全运维工程师 渗透测试工程师 Web安全工程师 安全攻防工程师 等保测评工程师 …… 代码审计工程师 威胁分析工程师 无线安全工程师 安全研发工程师 移动安全工程师 云计算安全工程师 ……

Socket通信与WebSocket协议

文章目录 目录 文章目录 前言 一、Socket通信 1.1 BIO 1.2 NIO 1.3 AIO 二、WebSocket协议 总结 前言 一、Socket通信 Socket是一种用于网络通信的编程接口&#xff08;API&#xff09;&#xff0c;它提供了一种机制&#xff0c;使不同主机之间可以通过网络进行数据传输和通信…

算法通关村十三关 | 进制转换问题处理模板

1. 七进制数 题目&#xff1a;LeetCode504&#xff1a;504. 七进制数 - 力扣&#xff08;LeetCode&#xff09; 思路 进制转换&#xff0c;对几转换就是对几求余&#xff0c;最后将所有的余数反过来即可、如果num< 0&#xff0c;先取绝对值&#xff0c;再进行操作。 100转7…

Ceres Solver 入门

1. Ceres Solver 是什么 Ceres 可以解决以下形式的边界约束鲁棒化非线性最小二乘问题&#xff1a; 给定初始值&#xff0c;通过优化算法&#xff0c;得到最优解。 其中&#xff0c; f i f_i fi​是CostFunction&#xff0c;也叫误差函数&#xff0c;或者代价函数。 ρ i \rho…

第十七课:利用 Setup Factory 制作 Qt 软件安装包

功能描述&#xff1a;详细介绍如何利用 Setup Factory 制作 Qt 软件安装包&#xff0c;从 Setup Factory 软件下载、安装&#xff0c;到如何利用 Setup Factory 制作软件安装包&#xff0c;手把手教你将 Qt 应用程序制作成具有安装向导的安装包。 一、Setup Factory 简介 Setu…

C语言程序结构、基本语法与数据类型

文章目录 1. 程序结构1.1 Hello World示例1.2 编译并执行C程序 2. 基本语法2.1 C 标记2.2 分号2.3 注释2.4 标识符2.5 关键字2.6 C中的空格 3. 数据类型3.1 整数类型3.2 浮点类型3.3 void类型 1. 程序结构 1.1 Hello World示例 #include <stdio.h>int main() {/* my fi…

DirectExchange直连交换机

目录 一、简介 二、使用步骤 三、demo 父pom文件 pom文件 配置文件 config 消费者 生产者 测试 一、简介 直连型交换机&#xff0c;根据消息携带的路由键将消息投递给对应队列。 大致流程&#xff0c;有一个队列绑定到一个直连交换机上&#xff0c;同时赋予一个路由…

AMEYA360代理品牌:纳芯微芯片解决方案为光伏市场赋能

近年来&#xff0c;光伏市场进入了一个新的增长维度。SolarPower Europe数据显示&#xff0c;2022年全球光伏新增装机量达239GW&#xff0c;占所有可再生能源新增容量的三分之二。国家能源局也宣称&#xff0c;2022年我国工商业光伏新增装机达25.87GW&#xff0c;同比增长236.7…

淘宝商品数据采集(如何快速获取淘宝商品信息),淘宝API接口申请指南

淘宝作为国内的电商平台&#xff0c;拥有海量的商品信息。对于想要进行淘宝商品数据采集的人来说&#xff0c;如何快速获取淘宝商品信息是一个重要的问题。本文将介绍一些快速获取淘宝商品信息的方法。 1. 使用淘宝开放平台PI 淘宝开放平台提供了多种PI接口&#xff0c;可以通…

如何选择合适的开源许可证?

&#x1f337;&#x1f341; 博主猫头虎 带您 Go to New World.✨&#x1f341; &#x1f984; 博客首页——猫头虎的博客&#x1f390; &#x1f433;《面试题大全专栏》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33a; &a…

java八股文面试[java基础]——异常

自定义异常&#xff1a; 异常Exception 是指程序运行时&#xff0c; 由于输入错误、网络、程序逻辑等原因导致运行时出现的问题。出现异常时&#xff0c;程序会暂时中断执行&#xff0c;并根据产生异常的原因&#xff0c;创建对应异常类型的异常对象&#xff0c;并抛出给JVM捕…

高速收费站的智慧之选,工控机助力顺畅通行!

2020年初取消高速公路省界收费站后&#xff0c;全国高速公路进入“一张网运行、一体化服务”的新阶段。随着ETC用户量快速增长、驾乘人员对收费站高效通行需求不断提升&#xff0c;收费数据在线化运营及精准化、智能化、人性化的收费服务将成为主流。如何提高收费系统集成度、降…