【譯】原文https://prometheus.io/docs/introduction/overview
什么是Prometheus?
Prometheus是一個開源系統監控和警報工具包,最初起源於SoundCloud。自2012年成立以來,許多公司和組織都采用了Prometheus,該項目有一個非常活躍的開發人員和用戶社區。它現在是一個獨立的開源項目,Prometheus在2016年加入了雲計算基金會,成為繼Kubernetes(k8s)之后的第二個托管項目。
特性介紹
Prometheus的主要特點是:
通過鍵值對(Key/Value)處理多維時序數據模型
實現靈活維度查詢
不依賴分布式存儲,單節點獨立存儲
通過Http Pull操作處理時序數據
通過網關(GateWay)中推送時序數據
通過服務發現或靜態配置發現目標
支持各種圖形表盤展示數據
組件
Prometheus由多個組件組成,其中大多數是可以選擇的:
(Prometheus server)最主要的就是Prometheus Server,它用來收集和存儲時序數據
(client libraries)客戶端用來檢測被監控的應用程序代碼
(push gateway)支持瞬時的網關推送處理
(*. exporters)包括對 HAProxy, StatsD, Graphite等的額外支持
(alertmanager)監控預警管理、以及各種工具
大多數Prometheus組件都是用Go編寫的,這使得它們易於構建並作為靜態二進制文件部署
整體結構
下圖說明了Prometheus的體系結構及其系統的一些組成部分:
Prometheus從直接或間接的瞬時推送從指定的網關作業中提取的度量標准,並在本地存儲了推送的數據,聚合處理這些數據然后記錄生成新的時序數據並按照一定的數據處理算法規則生成預警,
最后使用Grafana或其他API來對收取的數據實現可視化查看。
適用場景
Prometheus能夠更好的記錄數字類型的時序數據,它既可用於以機器為中心的監視,也適用於高度動態的面向服務的架構的監視。在微服務的場景中,它對多維數據收集和查詢的支持有很特殊的優勢。
為可靠性而設計的Prometheus可以讓您在宕機的時候快速診斷分析問題。每個Prometheus服務器都是獨立的,不依賴於網絡存儲或其他遠程服務,當基礎結構的其他部分損壞時,您可以依賴它,並且不需要設置更多額外的基礎結構來使用它。
不適用場景
Prometheus非常重視可靠性,即使在發生故障的情況下,你也可以查看有關系統中的可用統計信息,但是如果你需要百分之百精准統計(如:每次賬單請求信息)對Prometheus而言是不適用的,因為收集的數據可能不夠詳細和完整。在這種情況下,最好使用其他系統來收集和分析數據,並使用Prometheus進行其余額外的監視。