什么是promethues
promethues 是一個開源的報警系統(tǒng)和監(jiān)控工具包;從2012年成立以來桨踪,許多公司和組織都采用promethues老翘,并且這個項(xiàng)目有著很活躍的社區(qū)和開發(fā)者;現(xiàn)在他是一個開源項(xiàng)目锻离,可以獨(dú)立于任何公司進(jìn)行維護(hù)铺峭;為了注重其獨(dú)立性,并且澄清其治理結(jié)構(gòu)汽纠,2016年promethes成為繼 Kubernetes 之后卫键,第二個加入 Cloud Native Computing Foundation 的托管項(xiàng)目。
特性
prometheues 主要有一下特性:
由metric名稱和K/V鍵值對標(biāo)識的時間序列的多維數(shù)據(jù)模型
簡單的查詢語言 PromQL
不依賴分布式存儲虱朵,單個服務(wù)節(jié)點(diǎn)自動治理
通過HTTP的PULL模型獲取數(shù)據(jù)的時序集合
支持通過網(wǎng)關(guān)push 時序數(shù)據(jù)
通過服務(wù)發(fā)現(xiàn)或者靜態(tài)配置發(fā)現(xiàn)目標(biāo)
支持多種圖表和儀表盤模式
組件
promethues 的生態(tài)系統(tǒng)包含多種可選的組件:
- Prometheus server 莉炉,獲取時序數(shù)據(jù)
- 應(yīng)用代碼使用的類庫
- 支持短生命周期的 push-gateway
- 針對不同服務(wù)出的專用 exporters
- 支持報警的報警組件 alertmanager
- 其他支持的工具
架構(gòu)
下圖說明了promethues 和他的生態(tài)系統(tǒng)組件
promethus 直接從儀表jobs(例如: 獲取內(nèi)存的使用等) 獲取metrics ; 或者通過push-gateway 獲取short-live jobs 的 metrics;并對本地已生成的數(shù)據(jù)進(jìn)行匯總,記錄,運(yùn)算 生成新的時間序列或者發(fā)生警報;Grafana或其他API可用于可視化收集數(shù)據(jù);
什么時候適合用promethues
Prometheus 適用于記錄純粹的時間序列; 它適用于以機(jī)器為中心或者高度動態(tài)面向服務(wù)的架構(gòu),在微服務(wù)世界中,支持多維數(shù)據(jù)的查詢和收集是其特殊的優(yōu)勢
什么時候不適合用promethues
promethues 重視可靠性,即使在故障情況下,你也可以隨時查看關(guān)于系統(tǒng)的可用統(tǒng)計信息;如果你需要100% 的準(zhǔn)確性,比如按照每一次請求計費(fèi),promethues 不是一個好的選擇,因?yàn)樗鸭臄?shù)據(jù)可能不夠詳細(xì)或者完整,在這種情況下,你最好選擇其他的監(jiān)控系統(tǒng)完成計費(fèi)信息的收集和分析,promethues用來監(jiān)控系統(tǒng)的其他情況;