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

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.mzph.cn/news/51868.shtml

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

相关文章

centos 下扩容根目录

大体情况&#xff1a; 在VM虚拟机上安装了移动云的BCLinux镜像&#xff0c;磁盘设定为8G&#xff0c;但是用过一段时间之后根目录下磁盘已满&#xff0c;无法创建文件夹等操作&#xff0c;因此在VM上进行了磁盘扩容&#xff0c;扩容之后需要在系统上自行挂载&#xff0c;使用m…

DOS常见命令

DOS常见命令 DOS是什么如何打开DOScmd常见的命令集合 DOS是什么 DOC命令是我们浏览器中的终端 &#xff0c;但不同的是我们打开软件的方式 使用的是点击文件图标&#xff0c;点击图标的同时 我们也相当于使用一个命令 只是我们看不见而已 在电脑上操作的时候 通常都是使用命令…

Zoho CRM有哪些优势?

CRM能帮助企业管理客户信息、跟进销售机会、提高客户转化&#xff0c;显著提升企业的竞争力&#xff0c;是企业发展的重要工具。市场上有很多CRM品牌&#xff0c;企业该如何选型&#xff1f;这里给大家分享一个不错的CRM品牌 Zoho CRM有哪些优势&#xff1f; 功能全面&#x…

WebGL 缓冲区对象介绍,创建并使用缓冲区,使用缓冲区对象向顶点着色器传入多个顶点数据的所有步骤

目录 使用缓冲区对象 使用缓冲区对象向顶点着色器传入多个顶点的数据&#xff0c;需要遵循以下五个步骤。 创建缓冲区对象&#xff08;gl.createBuffer&#xff08;&#xff09;&#xff09; gl.createBuffer&#xff08;&#xff09;的函数规范 gl.deleteBuffer &#…

Java小项目|拼图小游戏|黑马

项目技术需求 Java基础 基本if、forio流File集合JFrame【看得懂就行】 项目素材以及打包exe&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1rPazJezTwS9O6e8BoYNIYA?pwd6666 项目运行截图 项目来源 哔哩哔哩-黑马程序员上 哔哩哔哩-黑马程序员下 项目介绍&…

线性代数(五) 线性空间

前言 《线性代数(三) 线性方程组&向量空间》我通过解线性方程组的方式去理解线性空间。此章从另一个角度去理解 空间是什么 大家较熟悉的&#xff1a;平面直角坐标系是最常见的二维空间 空间由无穷多个坐标点组成 每个坐标点就是一个向量 反过来&#xff0c;也可说&…

iptables的使用规则

环境中为了安全要限制swagger的访问&#xff0c;最简单的方式是通过iptables防火墙设置规则限制。 在测试服务器中设置访问swagger-ui.html显示如下&#xff0c;区分大小写&#xff1a; iptables设置限制访问9783端口的swagger字段的请求&#xff1a; iptables -A INPUT -p t…

云计算在线实训系统建设方案

一、 人工智能与云计算系统概述 人工智能&#xff08;Artificial Intelligence&#xff0c;简称AI&#xff09;是一种模拟人类智能的科学和工程&#xff0c;通过使用计算机系统来模拟、扩展和增强人类的智能能力。人工智能涉及多个领域&#xff0c;包括机器学习、深度学习、自然…

HarmonyOS开发:超详细了解项目的工程结构

前言 系列文章目录&#xff1a; HarmonyOS开发第一步&#xff0c;熟知开发工具DevEco Studio 当我们熟练的掌握了DevEco Studio之后&#xff0c;就可以创建项目进行练习了&#xff0c;和市场上大多数IDE一样&#xff0c;DevEco Studio也给我们提供了很多的实例模板&#xff0c…

uniapp-form表单

<template><view class"ptb-20 plr-30 bg min100"><view class"bg-white radius-20 pd-30"><view class"bold mt-30 mb-50 size-32">选择方式&#xff1a;</view><u--form labelPosition"left" :mod…

基于PIC单片机篮球计分计时器

一、系统方案 本设计采用PIC单片机作为主控制器&#xff0c;矩阵键盘控制&#xff0c;比分&#xff0c;计时控制&#xff0c;24秒&#xff0c;液晶12864显示。 二、硬件设计 原理图如下&#xff1a; 三、单片机软件设计 1、首先是系统初始化 2、液晶显示程序 /*************…

系统架构合理性的思考 | 京东云技术团队

最近牵头在梳理部门的系统架构合理性&#xff0c;开始工作之前&#xff0c;我首先想到的是如何定义架构合理性&#xff1f; 从研发的角度来看如果系统上下文清晰、应用架构设计简单、应用拆分合理应该称之为架构合理。 基于以上的定义可以从以下三个方面来梳理评估&#xff1…

怎么检测UI卡顿?(线上及线下)

什么是UI卡顿&#xff1f; 在Android系统中&#xff0c;我们知道UI线程负责我们所有视图的布局&#xff0c;渲染工作&#xff0c;UI在更新期间&#xff0c;如果UI线程的执行时间超过16ms&#xff0c;则会产生丢帧的现象&#xff0c;而大量的丢帧就会造成卡顿&#xff0c;影响用…

Matlab彩色图像转索引图像

索引图像 索引图像是一种把像素值直接作为RGB调色板下标的图像。索引图像包括一个数据矩阵X&#xff0c;一个调色板矩阵map&#xff0c;也称为颜色映像矩阵。其中&#xff0c;数据矩阵X可以是8位无符号整型、16位无符号整型或双精度类型。调色板矩阵map是一个m3的数据阵列&…

亚马逊云科技CEO谈及企业领导力原则的核心:坚持顾客至上

亚马逊云科技首席执行官Adam Selipsky几乎从一开始就在那里&#xff1a;他于2005年加入&#xff0c;在效力亚马逊11年后于2016年离开&#xff0c;转而经营Tableau&#xff0c;并于2021年成为亚马逊云科技首席执行官。当时亚马逊云科技前首席执行官安迪贾西(Andy Jassy)接替杰夫…

大数据(一)定义、特性

大数据&#xff08;一&#xff09;定义、特性 本文目录&#xff1a; 一、写在前面的话 二、大数据定义 三、大数据特性 3.1、大数据的大量 (Volume) 特性 3.2、大数据的高速(Velocity)特性 3.3、大数据的多样化 (Variety) 特性 3.4、大数据的价值 (value) 特性 3.5、大…

废品回收抢单派单小程序开源版开发

废品回收抢单派单小程序开源版开发 用户注册和登录&#xff1a;用户可以通过手机号码注册和登录小程序&#xff0c;以便使用废品回收抢单派单功能。废品回收订单发布&#xff1a;用户可以发布废品回收订单&#xff0c;包括废品种类、数量、回收地点等信息。废品回收抢单&#…

React通过docx-preview预览Word文档

前言 在基于React的Web应用中&#xff0c;我们经常遇到需要预览和展示Word文档的需求。而docx-preview是一个优秀的React组件库&#xff0c;可以帮助我们实现在Web页面上预览Word文档的功能。本文将介绍如何使用docx-preview组件来实现Word文档的预览&#xff0c;并提供一个案例…

JavaScript箭头函数

Arrow Functions&#xff08;箭头函数&#xff09;是 ES6 中引入的一种新的函数表达式语法&#xff0c;它可以更简洁地定义函数&#xff0c;并且不需要像普通函数一样使用 function 关键字。 例如我们上节课的代码&#xff1a; const peopleAge function calcAge1(birthYear)…

vue3+ts+uniapp小程序端自定义日期选择器基于内置组件picker-view + 扩展组件 Popup 实现自定义日期选择及其他选择

vue3ts 基于内置组件picker-view 扩展组件 Popup 实现自定义日期选择及其他选择 vue3tsuniapp小程序端自定义日期选择器 1.先上效果图2.代码展示2.1 组件2.2 公共方法处理日期2.3 使用组件 3.注意事项3.1refSelectDialog3.1 backgroundColor"#fff" 自我记录 1.先上…