文章首發于公衆号《程式員果果》
位址 :
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資料源
點選 “Add data soure” 選擇 “Prometheus” 出現添加界面:
然後填寫 Name : prometheus-datasources , URL : prometheus server 位址 , 其他配置預設即可,然後儲存。
配置
建立一個Dashboard
點選 “+” 圖示建立一個Dashbaord
點選 “儲存” 圖示儲存Dashboard,使用預設Folder,給Dashboard起名為 “http-simulator”
展示請求率
點選 “Add panel” 圖示,點選 “Choose Visualization” 選擇可視化 圖表的類型。
點選 “Visualization” 選擇 “Graph”
調整 “Legend” 顯示度量标準查詢傳回的所有值的 最小值、最大值、平均值、目前值、總計
點選 “General” 修改 “Title” 為 “Request Rate” ,
點選 “Queries” 輸入 Prometheus 表達式
sum(rate(http_requests_total{job="http-simulator"}[5m]))
可看到已經展示出了請求率變化曲線圖,也顯示了最小值、最大值、平均值、目前值、總計。
點選右上方的 “儲存” 圖示,儲存對 Dahsboard 的修改。
展示實時錯誤率
為了展示資料明顯,把 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
sum(rate(http_requests_total{job="http-simulator", status="500"}[5m])) / sum(rate(http_requests_total{job="http-simulator"}[5m]))
調整顯示機關unit,設定為None->percent(0.0-1.0),然後調整顯示值(目前為平均)為目前值(now):Options->Value->Stat,設定為Current
添加閥值和顔色,在 Coloring 下,選中Value,将Threshold設定為0.01,0.05,表示
- 綠色:0-1%
- 橙色:1-5%
- 紅色:>5%
添加測量儀效果,在 Gauge 下,選中Show,并将 Max設為 1
最後别忘了 “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)
減少表中資料項,選中Instant隻顯示目前值
隐藏Time列,在 Column Sytle 下,Apply to columns named為Time,将Type->Type設定為Hidden
将Value列重命名,添加一個Column Style,Apply to columns named設為Value,将Column Header設定為Requests/s
點選表中的 Requests/s header,讓其中資料根據端點活躍度進行排序。
儲存修改後的Dashbaord。