簡介
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
點擊 “Queries” 輸入 Prometheus 表達式
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
點擊 “Queries” 輸入 Prometheus 表達式
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。
歡迎掃碼或微信搜索公眾號《程序員果果》關注我,關注有驚喜~