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

前言

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

什麼是prometheus?

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

特徵

Prometheus的主要特徵有:服務器

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

組件

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

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

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

架構

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

 

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

何時適用?

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

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

何時不適用?

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

相關文章
相關標籤/搜索