Prometheus原理


Prometheus運行原理:

node-exporter組件負責收集節點上的metrics監控數據,並將數據推送給prometheus,prometheus負責存儲這些數據,grafana將這些數據通過網頁以圖形的形式展現給客戶。

 

架構圖:

 

Prometheus的特點:

1、多維數據模型(時序列數據由metric名和一組key/value組成)
2、在多維度上靈活的查詢語言(PromQl)
3、不依賴分布式存儲,單主節點工作.
4、通過基於HTTP的pull方式采集時序數據
5、可以通過中間網關進行時序列數據推送(pushing)
6、目標服務器可以通過發現服務或者靜態配置實現
7、多種可視化和儀表盤支持

 

Prometheus生態系統由多個組件組成,其中許多是可選的:

1、Prometheus 主服務,用來抓取和存儲時序數據
2、client library 用來構造應用或 exporter 代碼 (go,java,python,ruby)
3、push 網關可用來支持短連接任務
4、可視化的dashboard (兩種選擇,promdash 和 grafana.目前主流選擇是 grafana.)
4、一些特殊需求的數據出口(用於HAProxy, StatsD, Graphite等服務)
5、實驗性的報警管理端(alartmanager,單獨進行報警匯總,分發,屏蔽等 )

6、promethues 的各個組件基本都是用 golang 編寫,對編譯和部署十分友好.並且沒有特殊依賴.基本都是獨立工作。

 

Prometheus可以做什么:

1、在業務層用作埋點系統 Prometheus支持各個主流開發語言(Go,java,python,ruby官方提供客戶端,其他語言有第三方開源客戶端)。我們可以通過客戶端方面的對核心業務進行埋點。如下單流程、添加購物車流程。

2、在應用層用作應用監控系統 一些主流應用可以通過官方或第三方的導出器,來對這些應用做核心指標的收集。如redis,mysql。

3、在系統層用作系統監控 除了常用軟件, prometheus也有相關系統層和網絡層exporter,用以監控服務器或網絡。集成其他的監控 prometheus還可以通過各種exporte,集成其他的監控系統,收集監控數據,如AWS CloudWatch,JMX,Pingdom等等。


免責聲明!

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



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