0. Prometheus總覽

原文:https://prometheus.io/docs/introduction/overview/

什麼是Prometheus?
Prometheus是最初在SoundCloud上構建的開源系統監視和告警工具包。 自2012年成立以來,許多公司和組織都採用了Prometheus,該項目擁有非常活躍的開發人員和用戶社區。 現在,它是一個獨立的開源項目,並且獨立於任何公司進行維護。 爲了強調這一點並闡明項目的治理結構,Prometheus於2016年加入了Cloud Native Computing Foundation,這是繼Kubernetes之後的第二個託管項目。

有關Prometheus的詳細說明,請參見媒體部分中的資源鏈接。

特徵
Prometheus的主要特點是:

- 通過度量名稱和鍵值對來識別時間序列數據的多維數據模型
- PromQL,一種靈活的查詢語言,可利用此維度
- 不依賴分佈式存儲;單服務器節點是自治的
- 基於HTTP通過Pull模型進行時間序列收集
- 通過中間網關支持推送時間序列
- 通過服務發現或靜態配置發現目標
- 支持多種圖形和儀表板模型


組件
Prometheus生態系統包含多個組件,其中許多是可選的:

- Prometheus server ,用於獲取並存儲時間序列數據
- client libraries,用於檢測應用程序代碼
- push gateway,用於支持短期工作

Prometheus Pushgateway的存在是爲了允許臨時任務和批處理作業向Prometheus暴露其指標。 
由於某些job存在的時間可能不夠長(不能持續提供HTTP服務,所以不能由Prometheus server直接以pull的方式來抓取)
因此可以先將其指標推送到Pushgateway。
然後,Pushgateway將這些指標暴露給Prometheus server,由Prometheus server以pull的方式從Pushgateway拉取數據。

第一步:short-lived jobs       -----push--->   Push gateway 

第二部:prometheus server  <----pull-----   Push gateway 

 


- 諸如HAProxy,StatsD,Graphite等服務的專用exporters
- alertmanager,用於處理警報
- 各種支持工具
大多數Prometheus組件都是用Go編寫的,從而使其易於構建和部署爲靜態二進制文件。

 

架構
下圖說明了Prometheus的體系結構及其某些生態系統組件:

Prometheus architecture

Prometheus直接或通過用於短期作業的中間推送網關(push gateway)從被檢測的job中獲取指標。它在本地存儲所有抓取的樣本,並對這些數據運行規則用以彙總、記錄現有數據中的新時間序列,或生成警報。 Grafana或其他API使用者可用於可視化收集的數據。

prometheus優點:

1、部署簡單;
2、監控數據的採集可以非常及時,比如對重要指標設置採集間隔爲1s或5s,這可以讓管理人員快速感知重要故障;

3、很豐富 的exporter插件(如haproxy、mysql、memcached、consul)和pushgateway,便於接入各類監控資源;

4、本身基於數學計算模型,大量的實用函數可以實現很複雜規則的業務邏輯監控(例如QPS的曲線彎曲、凸起、下跌的比例等等模糊概念)
5、插件可以嵌入到衆多開源軟件(如nginx)的內部進行監控,而不是依賴第三方監控agent通過自定義監控項去上報,監控效率更高,數據也更準時可靠。

6、和可視化工具Grafana結合緊密,可以繪製出非常優美的圖形。

prometheus缺點:

目前尚不支持集羣,如果監控量太大,可能存在性能瓶頸和單點隱患;
 

Prometheus適合什麼?

Prometheus非常適合記錄任何純數字時間序列。它既適合以機器爲中心的監控,也適合監控高度動態的面向服務的體系結構。在微服務世界中,它對多維數據收集和查詢的支持是特別的優勢。

Prometheus的設計旨在提高可靠性,作爲中斷期間使用的系統,使您能夠快速診斷問題。每個Prometheus server都是獨立的,而不依賴於網絡存儲或其他遠程服務。當基礎結構的其他部分損壞時,您可以依靠它而無需建立廣泛的基礎結構來使用它。

 

Prometheus不適合什麼?

Prometheus重視可靠性。即使在故障情況下,您也始終可以查看有關係統的可用統計信息。如果您需要100%的準確性(例如按請求計費),則Prometheus並不是一個好選擇,因爲所收集的數據可能不會足夠詳細和完整。在這種情況下,最好使用其他系統來收集和分析計費數據,並使用Prometheus進行其餘的監控。

發佈了43 篇原創文章 · 獲贊 8 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章