Prometheus學習系列(一)之Prometheus簡介


前言

本文來自Prometheus官網手冊 和 Prometheus簡介

什么是prometheus?

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

特征

Prometheus的主要特征有:

  • 多維度數據模型,由指標鍵值對標識的時間序列數據組成
  • PromQL,一種靈活的查詢語言
  • 不依賴分布式存儲; 單個服務器節點是自治的
  • 以HTTP方式,通過pull模型拉取時間序列數據
  • 支持通過中間網關(pushgateway)推送時間序列數據
  • 通過服務發現或者靜態配置,來發現目標服務對象
  • 支持多種多樣的圖表和界面展示

組件

Prometheus生態包括了很多組件,它們中的一些是可選的:

  • Prometheus主服務器,用於抓取和存儲時間序列數據
  • 用於檢測應用程序代碼的客戶端庫
  • 用於支持短聲明周期的push網關
  • 針對HAProxy,StatsD,Graphite等服務的特定exporters
  • 警告管理器
  • 各種支持工具

多數Prometheus組件是Go語言寫的,這使得這些組件很容易編譯和部署。

架構

下面這張圖說明了Prometheus的整體架構,以及生態中的一些組件作用:

 

Prometheus可以直接通過目標拉取數據,或者間接地通過中間網關拉取數據。它在本地存儲抓取的所有數據,並通過規則從現有數據中聚合記錄新的時間序列或者產生警告,Grafana 和其他API可用於可視化收集的數據。

什么時候適用?

Prometheus適用於記錄任何純數字時間序列。 它適用於以機器為中心的監控以及高度動態的面向服務架構的監控。 在微服務的世界中,Prometheus的多維度數據收集和查詢非常強大。

Prometheus是為服務的可靠性而設計的,當服務出現故障時,它可以使你快速定位和診斷問題。 每個Prometheus服務器都是獨立的,不依賴於網絡存儲或其他遠程服務。 當基礎架構的其他部分損壞時,您可以依賴它,並且您不需要設置大量的基礎架構來使用它。

什么時候不適用?

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

 


免責聲明!

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



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