当前位置: 首页 > news >正文

基于 RocketMQ Prometheus Exporter 打造定制化 DevOps 平台

tar -xzf prometheus-2.7.0-rc.1.linux-amd64.tar.gzcd prometheus-2.7.0-rc.1.linux-amd64/./prometheus --config.file=prometheus.yml --web.listen-address=:5555

Prometheus 默认监听端口号为 9090,为了不与系统上的其它进程监听端口冲突,我们在启动参数里面重新设置了监听端口号为 5555。然后通过浏览器访问 http://<服务器 IP 地址>:5555,就可以验证 Prometheus 是否已成功安装,显示界面如下:

7.png

由于 RocketMQ-Exporter 进程已启动,这个时候可以通过 Prometheus 来抓取 RocketMQ-Exporter 的数据,这个时候只需要更改 Prometheus 启动的配置文件即可。

整体配置文件如下:

my global config

global:

scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.

evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.

scrape_timeout is set to the global default (10s).

Load rules once and periodically evaluate them according to the global ‘evaluation_interval’.

rule_files:

- “first_rules.yml”

- “second_rules.yml”

scrape_configs:

  • job_name: ‘prometheus’

static_configs:

  • targets: [‘localhost:5555’]

  • job_name: ‘exporter’

static_configs:

  • targets: [‘localhost:5557’]

更改配置文件后,重启服务即可。重启后就可以在 Prometheus 界面查询 RocketMQ-Exporter 上报的指标,例如查询 rocketmq_broker_tps 指标,其结果如下:

8.png

5. 告警规则添加


在 Prometheus 可以展示 RocketMQ-Exporter 的指标后,就可以在 Prometheus 中配置 RocketMQ 的告警指标了。在 Prometheus 的配置文件中添加如下的告警配置项,*.rules 表示可以匹配多个后缀为 rules 的文件。

rule_files:

- “first_rules.yml”

- “second_rules.yml”

  • /home/prometheus/prometheus-2.7.0-rc.1.linux-amd64/rules/*.rules

当前设置的告警配置文件为 warn.rules,其文件具体内容如下所示。其中的阈值只起一个示例的作用,具体的阈值还需用户根据实际使用情况来自行设定。

Sample prometheus rules/alerts for rocketmq.

Galera Alerts

groups:

  • name: GaleraAlerts

rules:

  • alert: RocketMQClusterProduceHigh

expr: sum(rocketmq_producer_tps) by (cluster) >= 10

for: 3m

labels:

severity: warning

annotations:

description: ‘{{$labels.cluster}} Sending tps too high.’

summary: cluster send tps too high

  • alert: RocketMQClusterProduceLow

expr: sum(rocketmq_producer_tps) by (cluster) < 1

for: 3m

labels:

severity: warning

annotations:

description: ‘{{$labels.cluster}} Sending tps too low.’

summary: cluster send tps too low

  • alert: RocketMQClusterConsumeHigh

expr: sum(rocketmq_consumer_tps) by (cluster) >= 10

for: 3m

labels:

severity: warning

annotations:

description: ‘{{$labels.cluster}} consuming tps too high.’

summary: cluster consume tps too high

  • alert: RocketMQClusterConsumeLow

expr: sum(rocketmq_consumer_tps) by (cluster) < 1

for: 3m

labels:

severity: warning

annotations:

description: ‘{{$labels.cluster}} consuming tps too low.’

summary: cluster consume tps too low

  • alert: ConsumerFallingBehind

expr: (sum(rocketmq_producer_offset) by (topic) - on(topic) group_right sum(rocketmq_consumer_offset) by (group,topic)) - ignoring(group) group_left sum (avg_over_time(rocketmq_producer_tps[5m])) by (topic)560 > 0

for: 3m

labels:

severity: warning

annotations:

description: 'consumer {{KaTeX parse error: Expected 'EOF', got '}' at position 13: labels.group}̲} on {{labels.topic}} lag behind

and is falling behind (behind value {{$value}}).’

summary: consumer lag behind

  • alert: GroupGetLatencyByStoretime

expr: rocketmq_group_get_latency_by_storetime > 1000

for: 3m

labels:

severity: warning

annotations:

description: 'consumer {{KaTeX parse error: Expected 'EOF', got '}' at position 13: labels.group}̲} on {{labels.broker}}, {{$labels.topic}} consume time lag behind message store time

and (behind value is {{$value}}).’

summary: message consumes time lag behind message store time too much

最终,可以在 Prometheus 的看一下告警展示效果,红色表示当前处于告警状态的项,绿色表示正常状态。

9.png

6. Grafana dashboard for RocketMQ


Prometheus 自身的指标展示平台没有当前流行的展示平台 Grafana 好, 为了更好的展示 RocketMQ 的指标,可以使用 Grafana 来展示 Prometheus 获取的指标。

首先到官网去下载:https://grafana.com/grafana/download,这里仍以二进制文件安装为例进行介绍。

wget https://dl.grafana.com/oss/release/grafana-6.2.5.linux-amd64.tar.gz

tar -zxvf grafana-6.2.5.linux-amd64.tar.gz

cd grafana-5.4.3/

同样为了不与其它进程的使用端口冲突,可以修改 conf 目录下的 defaults.ini 文件的监听端口,当前将 grafana 的监听端口改为 55555,然后使用如下的命令启动即可:

./bin/grafana-server web

然后通过浏览器访问 http://<服务器 IP 地址>:55555,就可以验证 grafana 是否已成功安装。系统默认用户名和密码为 admin/admin,第一次登陆系统会要求修改密码,修改密码后登陆,界面显示如下:

10.png

点击 Add data source 按钮,会要求选择数据源。

11.png

选择数据源为 Prometheus,设置数据源的地址为前面步骤启动的 Prometheus 的地址。

12.png

回到主界面会要求创建新的 Dashboard。

13.png

点击创建 dashboard,创建 dashboard 可以自己手动创建,也可以以配置文件导入的方式创建,当前已将 RocketMQ 的 dashboard 配置文件上传到 Grafana 的官网,这里以配置文件导入的方式进行创建。

14.png

小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级Java工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Java开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img
img

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频

如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注Java)
img

最后

在面试前我整理归纳了一些面试学习资料,文中结合我的朋友同学面试美团滴滴这类大厂的资料及案例

MyBatis答案解析
由于篇幅限制,文档的详解资料太全面,细节内容太多,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!

大家看完有什么不懂的可以在下方留言讨论也可以关注。

觉得文章对你有帮助的话记得关注我点个赞支持一下!

如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注Java)
[外链图片转存中…(img-bSVFI3Pl-1710415641744)]

最后

在面试前我整理归纳了一些面试学习资料,文中结合我的朋友同学面试美团滴滴这类大厂的资料及案例
[外链图片转存中…(img-d2zGEdNq-1710415641745)]

[外链图片转存中…(img-hJYZrF0n-1710415641745)]
由于篇幅限制,文档的详解资料太全面,细节内容太多,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!

大家看完有什么不懂的可以在下方留言讨论也可以关注。

觉得文章对你有帮助的话记得关注我点个赞支持一下!

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

相关文章:

基于 RocketMQ Prometheus Exporter 打造定制化 DevOps 平台

tar -xzf prometheus-2.7.0-rc.1.linux-amd64.tar.gzcd prometheus-2.7.0-rc.1.linux-amd64/./prometheus --config.fileprometheus.yml --web.listen-address:5555 Prometheus 默认监听端口号为 9090&#xff0c;为了不与系统上的其它进程监听端口冲突&#xff0c;我们在启动…...

(delphi11最新学习资料) Object Pascal 学习笔记---第7章第1节(创建对象 )

7.1.4 创建对象 ​ 与其他流行的编程语言比较之后&#xff0c;让我们回到 Pascal&#xff0c;看看如何使用类。 ​ 一旦定义了类&#xff0c;我们就可以创建一个该类型的对象&#xff0c;代码片段如下&#xff08;本节所有代码提取自 Dates1 示例&#xff09;那样&#xff1a…...

unity学习笔记 Restsharp 使用心得

Restsharp Restsharp安装使用注意事项api方式的流式调用--子线程中执行代码无响应的问题问题描述问题解决其他问题 Restsharp 安装 可以在github上下载dll文件然后导入到unity中 https://github.com/adrenak/RestSharp.Unity 也可以百度直接搜Restsharp然后下载相关的文件导入…...

YOLOV5 部署:QT的可视化界面推理(创建UI,并编译成py文件)

1、前言 之前用YOLOV5 做了一个猫和老鼠的实战检测项目,本章将根据之前训练好的权重进行部署,搭建一个基于QT的可视化推理界面,可以检测图片和视频 本章使用的数据集和权重参照:YOLOV5 初体验:简单猫和老鼠数据集模型训练-CSDN博客 可视化界面如下: 2、安装Pyside6 本…...

Python:自动化处理PDF文档集合,提取文献标题、合并文献PDF并生成目录和页码

Python&#xff1a;自动化处理PDF文档集合&#xff0c;提取文献标题、合并文献PDF并生成目录和页码 引言&#xff1a;功能概述步骤一&#xff1a;提取PDF标题步骤二&#xff1a;生成目录和页码&#xff0c;合并PDF技术亮点 代码步骤一&#xff1a;提取PDF标题&#xff08;Step_…...

vue 基于elementUI/antd-vue, h函数实现message中嵌套链接跳转到指定路由 (h函数点击事件的写法)

效果如图&#xff1a; 点击message 组件中的 工单管理&#xff0c; 跳转到工单管理页面。 以下是基于vue3 antd-vue 代码如下&#xff1a; import { message } from ant-design-vue; import { h, reactive, ref, watch } from vue; import { useRouter } from vue-router; c…...

数字排列 - 华为OD统一考试(C卷)

OD统一考试&#xff08;C卷&#xff09; 分值&#xff1a; 200分 题解&#xff1a; Java / Python / C 题目描述 小明负责公司年会&#xff0c;想出一个趣味游戏: 屏幕给出 1−9 中任意 4 个不重复的数字,大家以最快时间给出这几个数字可拼成的数字从小到大排列位于第 n 位置…...

yocto 编译raspberrypi 4B并启动

yocto 编译raspberrypi 4B并启动 环境准备 最近到手一个树莓派4B&#xff0c;准备拿来玩一玩&#xff0c;下面记录下使用yocto构建RaspberryPi的镜像并刷写启动的过程。 首先准备主机编译环境&#xff0c;必要组件安装&#xff1a; sudo apt install gawk wget git diffstat…...

Nginx、LVS、HAProxy工作原理和负载均衡架构

当前大多数的互联网系统都使用了服务器集群技术&#xff0c;集群是将相同服务部署在多台服务器上构成一个集群整体对外提供服务&#xff0c;这些集群可以是 Web 应用服务器集群&#xff0c;也可以是数据库服务器集群&#xff0c;还可以是分布式缓存服务器集群等等。 在实际应用…...

C语言标准库函数qsort( )——数据排序

大家好&#xff01;我是保护小周ღ&#xff0c;本期为大家带来的是深度解剖C语言标准库函数 qsort()&#xff0c;qsort()函数他可以对任意类型的数据排序&#xff0c;博主会详细解释函数使用方法&#xff0c;以及使用快速排序的左右指针法模拟实现函数功能&#xff0c;这样的排…...

基础---nginx 启动不了,跟 Apache2 服务冲突

文章目录 查看 nginx 服务状态nginx 启动后 访问页面 127.0.0.1停止 nginx 服务&#xff0c;访问不了页面停止/启动 Apache2 服务&#xff0c;启动 Apache2 页面访问显示正确nginx 莫名启动不了卸载 Apache2 服务器 启动 nginx &#xff0c;但是总是不能实现反向代理&#xff0…...

如何利用百度SEO优化技巧将排到首页

拥有一个成功的网站对于企业和个人来说是至关重要的&#xff0c;在当今数字化的时代。在互联网上获得高流量和优质的访问者可能并不是一件容易的事情&#xff0c;然而。一个成功的SEO战略可以帮助你实现这一目标。需要一些特定的技巧和策略、但要在百度搜索引擎中获得较高排名。…...

CSS隐藏元素的方法 ( 5 种)

还是大剑师兰特&#xff1a;曾是美国某知名大学计算机专业研究生&#xff0c;现为航空航海领域高级前端工程师&#xff1b;CSDN知名博主&#xff0c;GIS领域优质创作者&#xff0c;深耕openlayers、leaflet、mapbox、cesium&#xff0c;canvas&#xff0c;webgl&#xff0c;ech…...

微信小程序(五十九)使用鉴权组件时原页面js自动加载解决方法(24/3/14)

注释很详细&#xff0c;直接上代码 上一篇 新增内容&#xff1a; 1.使用覆盖函数的方法阻止原页面的自动执行方法 2.使用判断实现只有当未登录时才进行方法覆盖 源码&#xff1a; app.json {"pages": ["pages/index/index","pages/logs/logs"],…...

Git 学习笔记 三个区域、文件状态、分支、常用命令

Git 学习 GitGit概念VS Code中使用仓库&#xff08;repository&#xff09;示例 Git 使用时的三个区域示例 Git 文件状态示例 Git 暂存区示例 Git 回退版本删除文件忽略文件示例 分支分支的使用分支的合并与删除分支的合并冲突 Git常用命令Git远程仓库 (HTTP)步骤远程仓库 克隆…...

OrangePiLinux连接小米手机使用adb显示“List of devices attached”的问题解决

参考文章adb连接不上手机&#xff0c;提示“List of devices attached” - 简书 (jianshu.com) adb解决报错error: no devices/emulators found error: cannot connect to daemon_adb.exe: no devices/emulators found-CSDN博客 error: no devices/emulators found解决办法-C…...

【Jenkins】data stream error|Error cloning remote repo ‘origin‘ 错误解决【亲测有效】

错误构建日志 17:39:09 ERROR: Error cloning remote repo origin 17:39:09 hudson.plugins.git.GitException: Command "git fetch --tags --progress http://domain/xxx.git refs/heads/*:refs/remotes/origin/*" returned status code 128: 17:39:09 stdout: 17…...

3.1_9 基本分段存储管理

文章目录 3.1_9 基本分段存储管理&#xff08;一&#xff09;分段&#xff08;二&#xff09;段表&#xff08;三&#xff09;地址变换&#xff08;四&#xff09;分段、分页管理的对比 总结 3.1_9 基本分段存储管理 &#xff08;一&#xff09;分段 进程的地址空间&#xff1a…...

基于SpringBoot+Druid实现多数据源:baomidou多数据源

前言 本博客姊妹篇 基于SpringBootDruid实现多数据源&#xff1a;原生注解式基于SpringBootDruid实现多数据源&#xff1a;注解编程式基于SpringBootDruid实现多数据源&#xff1a;baomidou多数据源 一、功能描述 支持 数据源分组 &#xff0c;适用于多种场景 纯粹多库 读写…...

Redis开发规范与性能优化(二)

开发规范与性能优化 3.客户端使用 1.【推荐】避免多个应用使用一个Redis示例 正例:不相干的业务拆分&#xff0c;公共数据库做服务化 2.【推荐】使用带有连接池的数据库&#xff0c;可以有效控制链接&#xff0c;同时提高效率&#xff0c;标准使用方式如代码所示 public c…...

多层PCB内部结构与HDI技术深度解析

1. 多层PCB内部结构全解析作为一名硬件工程师&#xff0c;第一次拆解十层PCB板时&#xff0c;那种震撼感至今难忘。密密麻麻的过孔像微型城市的地下管网&#xff0c;精密排布的走线如同错综复杂的立体交通网。今天我就用最直观的立体解剖图&#xff0c;带你看透各种叠层结构的P…...

VBA数据库解决方案第二十九讲 如何批量修改数据库中的数据

《VBA数据库解决方案》教程&#xff08;版权10090845&#xff09;是我推出的第二套教程&#xff0c;目前已经是第二版修订了。这套教程定位于中级&#xff0c;是学完字典后的另一个专题讲解。数据库是数据处理的利器&#xff0c;教程中详细介绍了利用ADO连接ACCDB和EXCEL的方法…...

Qwen3.5-9B生产环境实测:7x24小时稳定运行+自动恢复+错误率<0.3%运维报告

Qwen3.5-9B生产环境实测&#xff1a;7x24小时稳定运行自动恢复错误率<0.3%运维报告 1. 项目概述 Qwen3.5-9B是一款拥有90亿参数的开源大语言模型&#xff0c;在实际生产环境中展现出卓越的稳定性和可靠性。经过长达一个月的7x24小时不间断运行测试&#xff0c;该系统实现了…...

L1-064 估值一亿的ai核心代码 (分数20)字符串处理

•无论用户说什么&#xff0c;首先把对方说的话在一行中原样打印出来&#xff1b;•消除原文中多余空格&#xff1a;把相邻单词间的多个空格换成 1 个空格&#xff0c;把行首尾的空格全部删掉&#xff0c;把标点符号前面的空格删掉&#xff1b; •把原文中所有大写英文字母变成…...

Qwen3-14B日志分析教程:ELK栈收集推理请求、响应、错误全链路追踪

Qwen3-14B日志分析教程&#xff1a;ELK栈收集推理请求、响应、错误全链路追踪 1. 为什么需要日志分析 当你在私有化部署Qwen3-14B模型时&#xff0c;可能会遇到各种问题&#xff1a;为什么推理速度突然变慢了&#xff1f;为什么API返回了错误响应&#xff1f;哪些请求消耗了最…...

Hunyuan-MT-7B多语种能力:Pixel Language Portal在联合国六种官方语言互译中的表现

Hunyuan-MT-7B多语种能力&#xff1a;Pixel Language Portal在联合国六种官方语言互译中的表现 1. 引言&#xff1a;当像素冒险遇见多语言翻译 在全球化交流日益频繁的今天&#xff0c;语言障碍仍然是横亘在不同文化之间的无形壁垒。传统翻译工具往往给人冰冷、机械的使用体验…...

卡尔曼滤波调参实战:如何用MATLAB让MPU6050的加速度数据更‘听话’?

卡尔曼滤波调参实战&#xff1a;如何用MATLAB让MPU6050的加速度数据更‘听话’&#xff1f; 当你在MATLAB中第一次看到MPU6050的原始加速度数据时&#xff0c;那些疯狂跳动的曲线可能会让你怀疑人生。别担心&#xff0c;这不是传感器坏了&#xff0c;而是现实世界本就充满噪声…...

ProfControl V8的介绍 阵列生成

作者&#xff1a;刘凌波链接&#xff1a;环野电子, profcontrolhttp://oa.profcontrol.cn/teaching_V8-7926f783c6.html来源&#xff1a;ProfControl阵列生成ProfControl支持基于仿射变换的阵列快速生成方式&#xff0c;ProfControl支持对各种对象进行阵列生产&#xff08;包括…...

ESP32智能硬件开发实战:基于MCP协议的AI语音助手全栈指南

ESP32智能硬件开发实战&#xff1a;基于MCP协议的AI语音助手全栈指南 【免费下载链接】xiaozhi-esp32 An MCP-based chatbot | 一个基于MCP的聊天机器人 项目地址: https://gitcode.com/GitHub_Trending/xia/xiaozhi-esp32 在AIoT&#xff08;人工智能物联网&#xff09…...

AI 大模型落地系列|Eino ADK体系篇:你对 ChatModelAgent 有了解吗?

声明&#xff1a;本文源于官方文档&#xff0c;重点参考 Eino ADK: ChatModelAgent、Eino ADK: 概述、Eino ADK: Agent 协作 为什么很多人把 ChatModelAgent 想简单了&#xff1f;一文讲透 ReAct、Transfer、AgentAsTool 与 Middleware1. 为什么很多人会把 ChatModelAgent 想简…...