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 ,登陸後界面以下:sql

添加Prometheus數據源

點擊 「Add data soure」 選擇 「Prometheus」 出現添加界面:docker

而後填寫 Name : prometheus-datasources , URL : prometheus server 地址 , 其餘配置缺省便可,而後保存。shell

配置

建立一個Dashboard

點擊 「+」 圖標建立一個Dashbaordjson

點擊 「保存」 圖標保存Dashboard,使用缺省Folder,給Dashboard起名爲 「http-simulator」微信

展現請求率

點擊 「Add panel」 圖標,點擊 「Choose Visualization」 選擇可視化 圖表的類型。app

點擊 「Visualization」 選擇 「Graphcurl

調整 「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。




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

相關文章
相關標籤/搜索