一命速通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
英文地址,請注明出處:http://en.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;…