prometheus學習

什麼是prometheus?

Prometheus是一個開源監控系統,它前身是SoundCloud的警告工具包。從2012年開始,許多公司和組織開始使用Prometheus。該項目的開發人員和用戶社區很是活躍,愈來愈多的開發人員和用戶參與到該項目中。目前它是一個獨立的開源項目,且不依賴與任何公司。 爲了強調這點和明確該項目治理結構,Prometheus在2016年繼Kurberntes以後,加入了Cloud Native Computing Foundation。git

特徵:

Prometheus的主要特徵有:github

  1. 多維度數據模型
  2. 靈活的查詢語言
  3. 不依賴分佈式存儲,單個服務器節點是自主的
  4. 以HTTP方式,經過pull模型拉去時間序列數據
  5. 也經過中間網關支持push模型
  6. 經過服務發現或者靜態配置,來發現目標服務對象
  7. 支持多種多樣的圖表和界面展現,grafana也支持它

組件

Prometheus生態包括了不少組件,它們中的一些是可選的:服務器

  1. 主服務Prometheus Server負責抓取和存儲時間序列數據
  2. 客戶庫負責檢測應用程序代碼
  3. 支持短生命週期的PUSH網關
  4. 基於Rails/SQL儀表盤構建器的GUI
  5. 多種導出工具,能夠支持Prometheus存儲數據轉化爲HAProxy、StatsD、Graphite等工具所須要的數據存儲格式
  6. 警告管理器
  7. 命令行查詢工具
  8. 其餘各類支撐工具

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

架構

下面這張圖說明了Prometheus的總體架構,以及生態中的一些組件做用: Prometheus Arhitecture分佈式

Prometheus服務,能夠直接經過目標拉取數據,或者間接地經過中間網關拉取數據。它在本地存儲抓取的全部數據,並經過必定規則進行清理和整理數據,並把獲得的結果存儲到新的時間序列中,PromQL和其餘API可視化地展現收集的數據微服務

適用場景

Prometheus在記錄純數字時間序列方面表現很是好。它既適用於面向服務器等硬件指標的監控,也適用於高動態的面向服務架構的監控。對於如今流行的微服務,Prometheus的多維度數據收集和數據篩選查詢語言也是很是的強大。工具

Prometheus是爲服務的可靠性而設計的,當服務出現故障時,它可使你快速定位和診斷問題。它的搭建過程對硬件和服務沒有很強的依賴關係。spa

不適用場景

Prometheus,它的價值在於可靠性,甚至在很惡劣的環境下,你均可以隨時訪問它和查看系統服務各類指標的統計信息。 若是你對統計數據須要100%的精確,它並不適用,例如:它不適用於實時計費系統命令行

相關文章
相關標籤/搜索