Prometheus介紹


Prometheus的主要特點

Prometheus 屬於一站式監控告警平台,依賴少,功能齊全。
Prometheus 支持對雲的或容器的監控,其他系統主要對主機監控。
Prometheus 數據查詢語句表現力更強大,內置更強大的統計函數。
Prometheus 在數據存儲擴展性以及持久性上沒有 InfluxDB,OpenTSDB,Sensu 好。

Prometheus的核心組件

Prometheus Server, 主要用於抓取數據和存儲時序數據,另外還提供查詢和 Alert Rule 配置管理。
client libraries :  用於對接 Prometheus Server, 可以查詢和上報數據。(業務的應用里需要引入)
push gateway : 用於批量,短期的監控數據的匯總節點,主要用於業務數據匯報等。
各種匯報數據的 exporters: 例如匯報機器數據的 node_exporter, 匯報 MongoDB 信息的 MongoDB exporter 等等。
alertmanager :用於告警通知管理的 alertmanager 。

Prometheus的架構圖

 

從這個架構圖,也可以看出 Prometheus 的主要模塊包含, Server, Exporters, Pushgateway, PromQL, Alertmanager, WebUI 等。

它大致使用邏輯是這樣:

Prometheus server 定期從靜態配置的 targets 或者服務發現的 targets 拉取數據。
當新拉取的數據大於配置內存緩存區的時候,Prometheus 會將數據持久化到磁盤(如果使用 remote storage 將持久化到雲端)。
Prometheus 可以配置 rules,然后定時查詢數據,當條件觸發的時候,會將 alert 推送到配置的 Alertmanager。
Alertmanager 收到警告的時候,可以根據配置,聚合,去重,降噪,最后發送警告。
可以使用 API, Prometheus Console 或者 Grafana 查詢和聚合數據。

Prometheus提供了4中不同的Metrics類型: Counter, Gauge, Histogram, Summary。

Counter:只增不減的計數器
計數器可以用於記錄只會增加不會減少的指標類型,比如記錄應用請求的總量,cpu使用時間等。

對於Counter類型的指標,只包含一個inc()方法,用於計數器+1。

一般而言,Counter類型的metrics指標在命名中我們使用_total結束,如http_requests_total。

Gauge: 可增可減的儀表盤
對於這類可增可減的指標,可以用於反應應用的當前狀態。

例如在監控主機時,主機當前空閑的內存大小,可用內存大小。或者容器當前的cpu使用率,內存使用率。

對於Gauge指標的對象則包含兩個主要的方法inc()以及dec(),用戶添加或者減少計數。

Histogram:自帶buckets區間用於統計分布統計圖
主要用於在指定分布范圍內(Buckets)記錄大小或者事件發生的次數。

Summary: 客戶端定義的數據分布統計圖
Summary和Histogram非常類型相似,都可以統計事件發生的次數或者大小,以及其分布情況。

Summary和Histogram都提供了對於事件的計數_count以及值的匯總_sum。 因此使用_count,和_sum時間序列可以計算出相同的內容,例如http每秒的平均響應時間:rate(basename_sum[5m]) / rate(basename_count[5m])。

同時Summary和Histogram都可以計算和統計樣本的分布情況,比如中位數,9分位數等等。其中 0.0<= 分位數Quantiles <= 1.0。

不同在於Histogram可以通過histogram_quantile函數在服務器端計算分位數。 而Sumamry的分位數則是直接在客戶端進行定義。因此對於分位數的計算。 Summary在通過PromQL進行查詢時有更好的性能表現,而Histogram則會消耗更多的資源。相對的對於客戶端而言Histogram消耗的資源更少。


免責聲明!

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



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