一命速通Prometheus+Grafana+Consul+VictoriaMetrics

Prometheus业务

搭建及使用

注意:优先看完提供的博客链接,可以快速了解该工具的功能及其搭建和使用。

  1. prometheus+grafana

一、Prometheus+Grafana普罗米修斯,搭建和使用_普罗米修斯 grafana-CSDN博客

./prometheus --config.file=prometheus.yml --storage.tsdb.path=/data/prometheus
systemctl status node_exporter  #  查看node_export的状态  启动:start、停止:stop、重启:enableps -elf|grep node_exporter      # 查看node_export的进程状态,node_export可以进行替换
kill -9 1288   # 杀死某个进程 1288可以进行替换#grafana安装
sudo yum install -y https://dl.grafana.com/enterprise/release/grafana-enterprise-12.0.1-1.x86_64.rpm  
systemctl status grafana-server.service # 查看grafan的启动状态
systemctl status prometheus # 查看prometheus的启动状态

  1. Consul

consul学习与常用命令和使用教程_consul使用教程-CSDN博客

sudo systemctl status consul

Consul是一个服务注册和发现工具,在此处扮演的是代替Prometheus的yaml配置文件,由于原生yaml配置文件拉取node_export时候需要进行编写,实例过多的时候,不方便进行维护。因此统一使用consul进行注册,只需要yaml中配置一项即可。

// 添加服务注册 8.84是安装了node_exporter要注册的机器,157.17则是Consul安装的机器
curl -X PUT -d '{  "id": "B05-192.168.8.84",  "name": "federate-zpftest",  "address": "192.168.8.84",  "port": 6881,  "tags": [],  "meta": {  "group": "SA",  "mainName": "基础服务-运维",  "subName": "基础服务",  "appName": "Prometheus边缘节点",  "rule": "default"  },  "checks": [{"http": "http://192.168.8.84:6881/metrics","interval": "15s"}]  
}' http://192.168.157.17:8500/v1/agent/service/register// 删除服务 B05-192.168.8.84可替换
curl --request PUT http://192.168.157.17:8500/v1/agent/service/deregister/B05-192.168.8.84

  1. VictoriaMetrics

Victoriametrics单机版本地安装搭配Prometheus和grafana使用教程_victoriametrics安装-CSDN博客

sudo systemctl status victoriametrics # 查看vm的状态
victoria-metrics-prod -storageDataPath /var/lib/victoriametrics    # 临时启动命令
/usr/local/bin/victoria-metrics-prod -httpListenAddr=0.0.0.0:8428 -storageDataPath=/data/victoria -retentionPeriod=30d & # 永久启动命令

上手指南

熟悉工具

第一步需要学会4个工具:Prometheus、Granfan、Consul、VictoriaMetrics,先从搭建与使用部分所提供的链接,在两台机器上完成单独的搭建与使用,自己模拟一下基本的常见操作。

要求:

Prometheus会拉取到node_exporter所提供的数据。

Granfan会将Prometheus的数据进行同步并正常展示+用户权限分配和添加删除。

Consul进行添加和删除服务注册。

VictoriaMetrics的 vmui界面能正常显示到Prometheus所上报的数据。

日常任务处理

这里业务主要问道那边一般问题可能Granfan没有数据我们进行排查经验就是可能那个没有数据Promethrus边缘节点服务可能挂掉重新启动一下那个服务如果多次挂掉说明负载有问题需要升级

最后需要掌握Prometheus以及VM查询数据的方法,PromQL,短时间内可以让AI帮忙生成,但是依然建议个人进行学习并掌握。掌握可以更加快速进行排查问题所在

创建用户权限

进入Grafana用户管理页面

PromQL语法

一、筛选时间序列

PromQL 的核心是通过「指标名称 + 标签匹配」定位时间序列,支持 瞬时向量(当前时间点数据)范围向量(一段时间的数据)

1. 瞬时向量查询(Instant Vector)

查询当前时间点的指标数据,结果是一组带标签的时间序列(每个序列对应一个最新样本)。

语法

[指标名称]{[标签筛选条件]}

示例

简单查询指标:

http_requests_total  # 查询所有 http_requests_total 指标的当前值

带标签筛选(精确匹配):

http_requests_total{method="GET", status="200"}  # 筛选 method=GET 且 status=200 的请求

正则匹配标签(=~ 包含,!~ 排除):

http_requests_total{status=~"2.."}  # 匹配状态码以 2 开头(如 200、201)
http_requests_total{method!~"POST|PUT"}  # 排除 POST 和 PUT 方法

2. 范围向量查询(Range Vector)

查询过去一段时间内的指标数据,结果包含时间窗口内的所有样本点(常用于计算速率、增量)。

语法

[指标名称]{[标签筛选条件]}[时间范围] # 时间单位:s(秒)、m(分钟)、h(小时)、d(天)、w(周)、y(年)。 

示例

查询过去 5 分钟的所有样本:

http_requests_total{job="api"}[5m]  # job=api 的请求,过去 5 分钟的所有数据点

结合正则筛选:

http_requests_total{status=~"5.."}[1h]  # 状态码 5xx 的请求,过去 1 小时数据

3. 时间位移(Offset)

查询历史时间点的数据(非当前时间基准),常用于对比不同时段的指标。

语法

[查询表达式] offset [时间范围]

示例

查询 1 小时前的瞬时数据:

http_requests_total offset 1h  # 当前时间 -1 小时的指标值

查询 1 天前的 5 分钟范围数据:

http_requests_total[5m] offset 1d  # 1 天前的 5 分钟内的样本

二、运算符与逻辑处理

1. 数学运算符(+、-、*、/、%、^)

对指标值或查询结果进行数学计算,支持**标量(单个值)与向量(时间序列)** 运算。

示例

转换单位(分 → 元):

bet_amount_total / 100  # 投注金额(分)转成元

多指标求和:

http_requests_total{api="/bet"} + http_requests_total{api="/login"}  # 投注+登录请求总和

2. 布尔运算符(==、!=、>、<、>=、<=)

筛选满足条件的时间序列,或对值进行判断(需结合 bool 修饰符返回 0/1 结果)。

示例 1:过滤时间序列

node_cpu_seconds_total{mode="idle"} > 22000  # 筛选 CPU 空闲时间 >22000 的实例

示例 2:返回布尔结果(0/1)

http_requests_total{method="GET"} >= 1000 bool  # 请求数≥1000 则返回 1,否则 0

3. 逻辑运算符(and、or、unless)

组合多个查询结果,按逻辑关系筛选时间序列。

示例

交集(同时满足两个查询):

up{job="app"} and http_requests_total  # 筛选 job=app 且有请求的实例

并集(满足任意一个查询):

up{job="app"} or up{job="db"}  # job=app 或 job=db 的实例状态

三、核心函数:数据聚合与分析

1. 速率计算(Counter 类型专用)

针对单调递增指标(如请求数、错误数),计算每秒增长率(应对服务重启导致的计数器重置)。

rate(range-vector):平均速率(平滑计算,适合长期趋势)

rate(http_requests_total[5m])  # 过去 5 分钟的平均每秒请求数

irate(range-vector):瞬时速率(基于最后两个样本,对突发变化更敏感)

irate(http_requests_total[1m])  # 过去 1 分钟的瞬时每秒请求数

increase(range-vector):总增量(时间窗口内的累计增长值)

increase(node_network_receive_bytes_total[1h])  # 过去 1 小时网络接收总字节数

2. 聚合函数(sum、avg、max、min、count 等)

将多个时间序列按标签聚合,或计算统计值。

sum(metric) by (label):按标签求和

sum(rate(http_requests_total[5m])) by (job)  # 按 job 分组,求各 job 的 QPS 总和

avg(metric) by (label):按标签求平均

avg(node_cpu_seconds_total{mode="idle"}) by (instance)  # 按实例求 CPU 空闲时间的平均值

count(metric):统计时间序列数量

count(up == 1)  # 统计状态为 up 的实例数量

3. 其他常用函数

delta(range-vector):计算时间窗口内的值变化量(适用于 Gauge 类型指标,如内存、温度)

delta(node_memory_MemFree_bytes[1h])  # 过去 1 小时内存空闲量的变化

topk(k, metric):取前 k 大的时间序列

topk(3, rate(http_requests_total[5m]))  # 按 QPS 取前 3 的实例

四、实战场景示例

1. 监控 HTTP 请求 QPS(按方法分组)

sum(rate(http_requests_total[1m])) by (method)

2. 统计 CPU 使用率(按实例)

100 - (avg(irate(node_cpu_seconds_total{mode="idle"}[1m])) by (instance) * 100)

3. 筛选 5 分钟内错误率超过 5% 的服务

( sum(rate(http_requests_total{status=~"5.."}[5m])) 
  / 
  sum(rate(http_requests_total[5m])) 
) > 0.05

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

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

相关文章

蚂蚁百宝箱快速创建智能体AI小程序

蚂蚁百宝箱官网https://tbox.alipay.com/community?operationSource1006/ 以下是一篇关于蚂蚁百宝箱快速创建智能体 AI 小程序的图文并茂的博客&#xff1a; 标题&#xff1a;蚂蚁百宝箱快速创建智能体 AI 小程序&#xff0c;开启智能应用新体验 引言 在数字化飞速发展的当…

大模型面试题:RL Scaling Law 中的“过优化”现象及其缓解方法是啥?

更多面试题&#xff0c;请看 大模型面试题总结-CSDN博客 或者 https://gitee.com/lilitom/ai_interview_questions/blob/master/README.md 最好将URL复制到浏览器中打开&#xff0c;不然可能无法直接打开 ---------------------------------------------------------------…

Filecoin系列 - IPLD 技术分析

1. 用途 1.1 存储数据 为了成功地将数据加到 Filecoin 网络, 需要成功完成以下步骤: 客户端导入数据生成CAR文件: 数据必须打包成 CAR file (内容可寻址档案) - CAR是IPLD规范的序列化归档文件.存储交易: 存储供应商和客户之间的存储交易必须由客户发起, 并由存储供应商接受…

Apptrace如何帮我精准追踪移动广告效果?

开发者视角&#xff1a;Apptrace如何帮我精准追踪移动广告效果&#xff1f;​​ 作为独立开发者&#xff0c;我最头疼的就是​“广告投放到底有没有用&#xff1f;”​——钱花出去了&#xff0c;用户是刷量机器人还是真实用户&#xff1f;哪个渠道的ROI最高&#xff1f;Apptr…

【MySQL篇07】:redo log日志与buffer pool详解

文章目录 1. Buffer Pool 缓冲池2. redo log (重做日志)redo log 的作用&#xff1a;为什么需要 redo log buffer&#xff1f;什么时候刷盘呢&#xff1f; 3. 总结一下 redo log 和 Buffer Pool 在更新数据时的协同工作关键组件关系图刷盘完成后 1. Buffer Pool 缓冲池 首先&a…

Qt Library库系列----Serial串口

前言 每次写串口相关的功能时&#xff0c;总是需要重新写或者复制原来写过的文件&#xff0c;容易出错不说&#xff0c;这也不是码农的风格&#xff0c;所以还是得有一套自己得代码库&#xff0c;方便调用&#xff0c;又能保持神秘感。 一、开发需求 1.有个实例类&#xff1b;…

第八节:Vben Admin 最新 v5.0 (vben5) 快速入门 - 用户管理(下)

Vben5 系列文章目录 💻 基础篇 ✅ 第一节:Vben Admin 最新 v5.0 (vben5) 快速入门 ✅ 第二节:Vben Admin 最新 v5.0 (vben5) 快速入门 - Python Flask 后端开发详解(附源码) ✅ 第三节:Vben Admin 最新 v5.0 (vben5) 快速入门 - 对接后端登录接口(上) ✅ 第四节:Vben Ad…

Redis 性能瓶颈时如何处理?

当 Redis 遇到性能瓶颈时&#xff0c;需要从多个维度进行排查和优化。以下是系统化的解决方案&#xff0c;涵盖硬件、配置、数据模型、网络等关键点&#xff1a; 一、硬件资源优化 内存瓶颈 现象&#xff1a;频繁触发 OOM 或 used_memory 接近物理内存。解决&#xff1a; 升级服…

多相机三维人脸扫描仪:超写实数字人模型制作“加速器”

超写实数字人&#xff0c;又称“数字分身”&#xff0c;是以真人形象为原型构建的高仿真虚拟形象&#xff0c;按维度可分为2D数字人与3D数字人。这类数字人已广泛应用于影视制作、游戏交互、品牌直播等场景&#xff0c;其核心价值在于通过技术手段实现真人形象的数字化复刻&…

ceph 自动调整 pg_num

要让 Ceph 的 pool 自动调整 pg_num(PG 数量),你需要启用 PG autoscaler。这是从 Ceph Octopus(15.x) 开始引入的功能,能根据池的容量和对象数量自动建议或调整 pg_num,以实现负载均衡。 ✅ 一步步开启 Pool 的 pg_num 自动调整 1. 启用 PG autoscaler 模块(通常默认启…

Python Beautiful Soup 4【HTML/XML解析库】 简介

全面剖析大模型 图解大模型&#xff1a;生成式AI原理与实战 大语言模型大模型应用开发Transformer DeepSeek模型原理开发深度学习 图灵出品 大模型强化学习详解 大模型算法&#xff1a;强化学习、微调与对齐&#xff08;全彩&#xff09;详解强化学习 RLHF GRPO DPO SFT CoT D…

AI Agent开发与安全

AI Agent的核心演进 Level 1&#xff1a;LLM Agent&#xff08;聊天机器人&#xff09; 特点&#xff1a;靠提示词工程赋予人设&#xff08;如星座占卜、角色扮演&#xff09;&#xff0c;但存在幻觉问题&#xff0c;输出不可控。局限&#xff1a;娱乐性强&#xff0c;难胜任严…

NumPy玩转数据科学

本文在创作过程中借助 AI 工具辅助资料整理与内容优化。图片来源网络。 文章目录 一、引言二、NumPy 概述2.1 NumPy 的定义与发展2.2 NumPy 的重要性 三、NumPy 的多维数组支持3.1 多维数组的概念3.2 多维数组的创建与操作3.2.1 数组的创建3.2.2 数组的索引和切片3.2.3 数组的运…

【uniapp小程序开发】图表组件ucharts的使用(入门)

一、插件的安装 安装非常简单&#xff0c;打开uniapp的插件市场&#xff0c;导入到项目中即可 下载地址&#xff1a;https://ext.dcloud.net.cn/plugin?id271 二、开始实践 先看页面的效果 页面中实现了三个基本图形的展示&#xff1a;折线图、饼图和柱状图。 上图左一&a…

APISIX+etcd高可用集群部署方案详解

#作者&#xff1a;任少近 文章目录 一、背景二、部署etcd1、etcd的svc部署yaml2、Etcd 服务定义说明3、etcd的statefulset部署yaml4、Etcd 状态集&#xff08;StatefulSet&#xff09;配置说明5、查看集群状态 三、部署apisix的deployment部署1、apisix部署yaml文件2、APISIX …

Excel常用公式大全

资源宝整理分享&#xff1a;https://www.httple.net Excel常用公式大全可以帮助用户提高工作效率&#xff0c;掌握常用的Excel公式&#xff0c;让数据处理和计算工作更加便捷高效。了解公式学习方法、用途&#xff0c;不再死记硬背&#xff0c;拒绝漫无目的。 命令用途注释说…

什么是Seata?

深入解析Seata&#xff1a;分布式事务的终极解决方案 什么是Seata&#xff1f; Seata&#xff08;Simple Extensible Autonomous Transaction Architecture&#xff09;是一款开源的分布式事务解决方案&#xff0c;由阿里巴巴中间件团队于2019年1月发起并开源&#xff08;最初…

【系统规划与管理师第二版】1.3 新一代信息技术及发展

一、物联网 物联网&#xff08;IoT&#xff09;是指通过信息传感设备&#xff0c;按约定的协议将任何物品与互联网相连接&#xff0c;进行信息交换和通信&#xff0c;以实现智能化识别、定位、跟踪、监控和管理的网络。物联网主要解决物品与物品&#xff08;T2T&#xff09;、人…

在Spring Boot中自定义JSON返回日期格式的指南

在开发Spring Boot应用时&#xff0c;很多时候需要在返回的JSON数据中以特定格式显示日期和时间。例如&#xff0c;使用LocalDateTime、Date等类型的字段时&#xff0c;默认的序列化格式可能不是你期望的路径。本文将介绍如何在Spring Boot中实现控制返回JSON数据的日期格式&am…

【大数据高并发核心场景实战】 - 数据持久化之冷热分离

大数据高并发核心场景实战 - 数据持久化之冷热分离 当云计算平台的业务后台处理工单突然接入客服系统的请求洪流&#xff0c;每日新增10万工单&#xff0c;3000万主表1.5亿明细表的数据库开始呻吟——是时候请出「冷热分离」这剂退烧药了&#xff01; 一、业务场景&#xff1a;…