【Prometheus + Grafana】 使用 topk 在 grafana 绘制 前 n 个时间序列
文章目錄
- 項(xiàng)目場景:
- 問題描述:
- 原因分析:
- 解決方案:
- 設(shè)置bps,在模板中使用變量,即 Variables
- 使用 bps 變量和prometheus 的正則表達(dá)式查詢
- 優(yōu)化界面
項(xiàng)目場景:
獲取流量 bps 前10位的 時(shí)間序列
問題描述:
在grafana 中使用 topk(10, bps) 語句,結(jié)果得到如圖信息,并且可以看到曲線有斷層,不連貫。
期望是僅展示前10條,并且曲線是連貫的。
原因分析:
從Grafana 5.3.0開始,有一個(gè)功能允許在一段時(shí)間內(nèi)正確繪制前N個(gè)序列的圖形。
query_range Prometheus中用于制圖的API端點(diǎn)獨(dú)立評(píng)估每個(gè)步驟,因此類似的圖 topk(10, bps)可以顯示10個(gè)以上的時(shí)間序列。
要顯示圖形范圍內(nèi)的前10個(gè),您需要先執(zhí)行查詢以確定其中10個(gè)label,然后再對(duì)其進(jìn)行圖形化。
解決方案:
設(shè)置bps,在模板中使用變量,即 Variables
如圖所示,query_result(topk(10, bps)) 可以獲取10個(gè)ipaddr
您可以query_result(topk(10, avg_over_time(bps[${_range_s}s]))) 獲取bps在一定時(shí)間范圍內(nèi)平均值最高的10個(gè)
語句是關(guān)鍵,多值,包括所有和刷新時(shí)間段的變化也被設(shè)置。
還需要選擇 ALL,即 圖中的 Selection Options 部分
使用 bps 變量和prometheus 的正則表達(dá)式查詢
bps{ipaddr=~"$bps"}
優(yōu)化界面
在Variables 中 選擇了All,那么可以返回到變量定義并將“Hide”設(shè)置為“Variable”,以使變量選擇不會(huì)雜亂您的儀表板頂部。
根據(jù)實(shí)際情況,還可以使用諸如 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命令的