Prometheus 與 Grafana 集成


簡介

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。




歡迎掃碼或微信搜索公眾號《程序員果果》關注我,關注有驚喜~


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM