【Prometheus + Grafana】 使用 topk 在 grafana 绘制 前 n 个时间序列
文章目錄
- 項目場景:
- 問題描述:
- 原因分析:
- 解決方案:
- 設(shè)置bps,在模板中使用變量,即 Variables
- 使用 bps 變量和prometheus 的正則表達(dá)式查詢
- 優(yōu)化界面
項目場景:
獲取流量 bps 前10位的 時間序列
問題描述:
在grafana 中使用 topk(10, bps) 語句,結(jié)果得到如圖信息,并且可以看到曲線有斷層,不連貫。
期望是僅展示前10條,并且曲線是連貫的。
原因分析:
從Grafana 5.3.0開始,有一個功能允許在一段時間內(nèi)正確繪制前N個序列的圖形。
query_range Prometheus中用于制圖的API端點獨立評估每個步驟,因此類似的圖 topk(10, bps)可以顯示10個以上的時間序列。
要顯示圖形范圍內(nèi)的前10個,您需要先執(zhí)行查詢以確定其中10個label,然后再對其進行圖形化。
解決方案:
設(shè)置bps,在模板中使用變量,即 Variables
如圖所示,query_result(topk(10, bps)) 可以獲取10個ipaddr
您可以query_result(topk(10, avg_over_time(bps[${_range_s}s]))) 獲取bps在一定時間范圍內(nèi)平均值最高的10個
語句是關(guān)鍵,多值,包括所有和刷新時間段的變化也被設(shè)置。
還需要選擇 ALL,即 圖中的 Selection Options 部分
使用 bps 變量和prometheus 的正則表達(dá)式查詢
bps{ipaddr=~"$bps"}
優(yōu)化界面
在Variables 中 選擇了All,那么可以返回到變量定義并將“Hide”設(shè)置為“Variable”,以使變量選擇不會雜亂您的儀表板頂部。
根據(jù)實際情況,還可以使用諸如 min_over_time或 max_over_time 而不是的功能avg_over_time,拓展鏈接:https://prometheus.io/docs/prometheus/latest/querying/functions/#aggregation_over_time
總結(jié)
以上是生活随笔為你收集整理的【Prometheus + Grafana】 使用 topk 在 grafana 绘制 前 n 个时间序列的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Vue】 Error with Vue
- 下一篇: 【Ping】unix - ping命令的