Prometheus 是一個開源的系統監控和警報工具包,最初在 SoundCloud 建立。自 2012 年推出以來,許多公司和組織都採用了 Prometheus,並且該專案擁有非常活躍的開發人員和使用者社群。它現在是一個獨立的開源專案,並且獨立於任何公司維護。為了強調這一點,並釐清專案的治理結構,Prometheus 在 2016 年加入了 雲端原生運算基金會,成為繼 Kubernetes 之後的第二個託管專案。
Prometheus 將其指標收集並儲存為時間序列資料,也就是說,指標資訊與記錄時的時間戳記一起儲存,並附帶稱為標籤的可選鍵值對。
有關 Prometheus 更詳細的概述,請參閱 媒體 部分連結的資源。
Prometheus 的主要功能是
指標是外行人所說的數值測量。時間序列一詞是指隨著時間推移記錄的變化。使用者想要測量的內容因應用程式而異。對於 Web 伺服器,可能是請求時間;對於資料庫,可能是活動連線數或活動查詢數等等。
指標在了解應用程式為何以某種方式運作方面發揮著重要作用。假設您正在執行一個 Web 應用程式,並發現它很慢。要了解應用程式正在發生什麼,您需要一些資訊。例如,當請求數量很高時,應用程式可能會變慢。如果您有請求計數指標,則可以確定原因並增加伺服器數量來處理負載。
Prometheus 生態系統由多個元件組成,其中許多是可選的
大多數 Prometheus 元件都是以 Go 撰寫的,因此可以輕鬆建置並部署為靜態二進位檔案。
此圖表說明 Prometheus 及其部分生態系統元件的架構
Prometheus 從儀表化的任務中抓取指標,可以直接抓取,也可以透過用於短期任務的中間推送閘道抓取。它將所有抓取的樣本儲存在本地,並在此資料上執行規則,以聚合和記錄來自現有資料的新時間序列,或產生警報。可以使用 Grafana 或其他 API 使用者來視覺化收集的資料。
Prometheus 非常適合記錄任何純數值時間序列。它既適用於以機器為中心的監控,也適用於高度動態的面向服務架構的監控。在微服務的世界中,其對多維度資料收集和查詢的支援是一個特別的優勢。
Prometheus 的設計宗旨是可靠性,在停機期間您可以仰賴它,以便快速診斷問題。每個 Prometheus 伺服器都是獨立的,不依賴網路儲存或其他遠端服務。當基礎架構的其他部分損壞時,您可以依靠它,而且您不需要設定廣泛的基礎架構即可使用它。
Prometheus 注重可靠性。您始終可以查看系統的可用統計資訊,即使在故障條件下也是如此。如果您需要 100% 的準確性,例如每次請求的計費,Prometheus 不是一個好的選擇,因為收集的資料可能不夠詳細和完整。在這種情況下,您最好使用其他系統來收集和分析計費資料,並使用 Prometheus 來進行其餘的監控。
此文件是開源的。請提交問題或提取請求來協助改善它。