天天看點

Prometheus 與 Grafana 內建

文章首發于公衆号《程式員果果》

位址 :

https://mp.weixin.qq.com/s/GImvM_F2XlMjO0a5xnJuFg

簡介

Grafana 是一個可視化儀表盤,它擁有美觀的圖示和布局展示,功能齊全的儀表盤和圖形編輯器,預設支援 CloudWatch、Graphite、Elasticsearch、InfluxDB、Mysql、PostgreSQL、Prometheus、OpenTSDB 等作為資料源。上一篇我們通過Prometheus 自帶的 Web UI 展示 Prometheus 抓取的資料,本篇将利用 Grafana 更加直覺展示的出來。

安裝 Grafana

通過docker容器安裝Grafana

docker run -d --name=grafana -p 3000:3000 grafana/grafana           

通路

http://localhost:3000/

賬号 admin 密碼 admin ,登入後界面如下:

Prometheus 與 Grafana 內建

添加Prometheus資料源

點選 “Add data soure” 選擇 “Prometheus” 出現添加界面:

Prometheus 與 Grafana 內建

然後填寫 Name : prometheus-datasources , URL : prometheus server 位址 , 其他配置預設即可,然後儲存。

配置

建立一個Dashboard

點選 “+” 圖示建立一個Dashbaord

Prometheus 與 Grafana 內建

點選 “儲存” 圖示儲存Dashboard,使用預設Folder,給Dashboard起名為 “http-simulator”

Prometheus 與 Grafana 內建

展示請求率

點選 “Add panel” 圖示,點選 “Choose Visualization” 選擇可視化 圖表的類型。

Prometheus 與 Grafana 內建

點選 “Visualization” 選擇 “Graph”

Prometheus 與 Grafana 內建

調整 “Legend” 顯示度量标準查詢傳回的所有值的 最小值、最大值、平均值、目前值、總計

Prometheus 與 Grafana 內建

點選 “General” 修改 “Title” 為 “Request Rate” ,

Prometheus 與 Grafana 內建

點選 “Queries” 輸入 Prometheus 表達式

sum(rate(http_requests_total{job="http-simulator"}[5m]))           
Prometheus 與 Grafana 內建

可看到已經展示出了請求率變化曲線圖,也顯示了最小值、最大值、平均值、目前值、總計。

點選右上方的 “儲存” 圖示,儲存對 Dahsboard 的修改。

Prometheus 與 Grafana 內建

展示實時錯誤率

為了展示資料明顯,把 http-simulator 服務的錯誤率改到40%

curl -H 'Content-Type: application/json' -X PUT -d '{"error_rate": 1}' http://127.0.0.1:8080/error_rate           

有了上面配置經驗,這裡就不說的太細了。

點選 “Add panel圖示” ,添加一個新的 Pannel,點選 “Choose Visualization” 選擇可視化 圖表的類型,點選 “Singlestat” 圖示添加一個 Singlestat,修改 Panel Title 為 Live Error Rate

Prometheus 與 Grafana 內建
sum(rate(http_requests_total{job="http-simulator", status="500"}[5m])) / sum(rate(http_requests_total{job="http-simulator"}[5m]))           
Prometheus 與 Grafana 內建

調整顯示機關unit,設定為None->percent(0.0-1.0),然後調整顯示值(目前為平均)為目前值(now):Options->Value->Stat,設定為Current

添加閥值和顔色,在 Coloring 下,選中Value,将Threshold設定為0.01,0.05,表示

  • 綠色:0-1%
  • 橙色:1-5%
  • 紅色:>5%
Prometheus 與 Grafana 內建

添加測量儀效果,在 Gauge 下,選中Show,并将 Max設為 1

Prometheus 與 Grafana 內建

最後别忘了 “Control + S” 或 點選 右上方的 “儲存” 圖示,儲存修改後的Dashbaord。

展示 Top requested 端點

添加一個新的 Pannel,點選 “Choose Visualization” 選擇可視化 圖表的類型,點選 “Table” 圖示添加一個 Table,修改 Panel Title 為 Top requested

sum(rate(http_requests_total{job="http-simulator"}[5m])) by (endpoint)           
Prometheus 與 Grafana 內建

減少表中資料項,選中Instant隻顯示目前值

Prometheus 與 Grafana 內建

隐藏Time列,在 Column Sytle 下,Apply to columns named為Time,将Type->Type設定為Hidden

Prometheus 與 Grafana 內建

将Value列重命名,添加一個Column Style,Apply to columns named設為Value,将Column Header設定為Requests/s

Prometheus 與 Grafana 內建

點選表中的 Requests/s header,讓其中資料根據端點活躍度進行排序。

Prometheus 與 Grafana 內建

儲存修改後的Dashbaord。

繼續閱讀