一识颊、Promethuse是什么
Prometheus是最初在SoundCloud上構(gòu)建的開源監(jiān)控系統(tǒng)诚镰。自2012年成立以來,許多公司和組織都采用了Prometheus祥款,該項目擁有非城灞浚活躍的開發(fā)人員和用戶社區(qū)。現(xiàn)在刃跛,它是一個獨立的開源項目抠艾,并且獨立于任何公司進行維護。Prometheus 在2016年加入了 Cloud Native Computing Foundation桨昙,這是繼Kubernetes之后的第二個托管項目检号。
二首懈、Promethuse能做什么
promethuse能在近幾年被廣泛使用也是因為云原生架構(gòu)的流行,很多互聯(lián)網(wǎng)公司開始了由傳統(tǒng)業(yè)務向云上遷移的步伐谨敛,做微服務架構(gòu)的轉(zhuǎn)型,而目前K8S作為主流的容器編排系統(tǒng)滤否,已經(jīng)成為行業(yè)的一個事實標準脸狸,Promethuse和K8S的高度契合使之成為各大企業(yè)選擇監(jiān)控系統(tǒng)的首選。Promethuse其主要應用范圍還是在服務資源本身的監(jiān)控藐俺,如K8S集群的磁盤炊甲、IO、CPU負載欲芹、TPS卿啡、QPS等指標的監(jiān)控,以及對K8S管理的Pod資源的相關(guān)負載指標監(jiān)控菱父,能夠定義相應的告警規(guī)則颈娜,并及時通知到相應的責任人進行應急處理。
Promethuse整體系統(tǒng)架構(gòu)圖
image.png
三浙宜、Promethuse相關(guān)組件
- exporters
端點負責采集數(shù)據(jù)轉(zhuǎn)換為promethuse-server可以識別的數(shù)據(jù)格式并暴露出http接口官辽。
- Pushgateway
有一些不支持exporter的監(jiān)控目標,可以先將數(shù)據(jù)寫入Pushgateway網(wǎng)關(guān)粟瞬。然后Promethuse-server可以向exporter或Pushgateway中拉取采集的指標數(shù)據(jù)同仆,這個過程由Promethuse-server中的Retrieval完成。
- TSDB
TSDB(time serial database) 時序數(shù)據(jù)庫裙品,Promethuse-server將采集到的數(shù)據(jù)存入到時序數(shù)據(jù)庫中俗批,時序數(shù)據(jù)庫是一種內(nèi)存數(shù)據(jù)庫,擁有極高的查詢和存儲效率市怎,并由相關(guān)的數(shù)據(jù)持久化機制將數(shù)據(jù)同步到磁盤上岁忘,即保證了服務的高可用又保證了數(shù)據(jù)的可靠性。
- Alertmanager
我們可以在Promethuse-server設置一些關(guān)鍵指標的告警規(guī)則焰轻,當指標值觸發(fā)告警規(guī)則后Promethuse-server會向Alertmanager推送對應的告警信息臭觉,而Alertmanager模塊支持多種通知渠道:郵件、各種社交軟件等辱志∑滥可以在線上資源異常或者告警的時候能第一時間收到通知并進行處理乏盐。
- PromQL
PromQL是Promethuse-server為了方便快速查詢各個監(jiān)控指標所定義的一種查詢語言被辑,類似于Mysql中的SQL查詢,通過PromQL能夠快速的得到想要的指標數(shù)據(jù)已球。
- Grafana
promethuse支持各種可視化UI對監(jiān)控指標的查詢臣镣,提供自定義監(jiān)控報表的生成辅愿。
四、Promethuse適用場景
前文已經(jīng)提到promethuse的適用場景主要用于資源運行環(huán)境指標相關(guān)的一些監(jiān)控忆某,更偏向于硬件指標監(jiān)控点待,而在微服務架構(gòu)中,除了對資源運行環(huán)境的監(jiān)控外弃舒,還會需要對服務本身的性能進行監(jiān)控癞埠,包括一次請求處理在整個微服務架構(gòu)中的調(diào)用鏈關(guān)系,每個調(diào)用過程中的子節(jié)點的性能消耗聋呢,幫助定位和追蹤線上發(fā)生業(yè)務異常時候的完成調(diào)用上下文苗踪,能夠快速定位到整個請求調(diào)用鏈中響應較慢的環(huán)節(jié)并進行單獨優(yōu)化。其中比較流行的開源APM(Application Performance Management)系統(tǒng)有Skywalking等等削锰,其對整體的業(yè)務代碼沒有侵入性通铲,通過使用agent和插件模式進行服務監(jiān)控指標的采集。