運(yùn)維監(jiān)控系統(tǒng)之Prometheus介紹及數(shù)據(jù)類型
簡(jiǎn)介
Prometheus 是由 SoundCloud 開源監(jiān)控告警解決方案,特別適合現(xiàn)在容器化的監(jiān)控。
架構(gòu)圖

Prometheus的特點(diǎn)
- 多維數(shù)據(jù)模型,包含key/value標(biāo)識(shí)標(biāo)簽的時(shí)間序列數(shù)據(jù);
- PromQL,一種靈活的查詢語(yǔ)言 ,內(nèi)置的函數(shù)可以讓我們快速運(yùn)算得到我們想要的結(jié)果;
- 不依賴分布式存儲(chǔ),默認(rèn)是本地存儲(chǔ),也可以選擇遠(yuǎn)程讀寫;
- 通過http請(qǐng)求拉取(pull)exporter數(shù)據(jù);
- 也可以通過網(wǎng)關(guān)(gateway)推送(push)數(shù)據(jù);
- 配置可以通過服務(wù)發(fā)現(xiàn)或靜態(tài)配置發(fā)現(xiàn)監(jiān)控目標(biāo);
- 多種圖形和儀表板支持模式,特別是grafana的支持,讓我們可以快速完成好看的圖表。
數(shù)據(jù)格式
prometheus存儲(chǔ)的是時(shí)序數(shù)據(jù):即按相同時(shí)序(相同名稱和標(biāo)簽),以時(shí)間維度存儲(chǔ)連續(xù)的數(shù)據(jù)的集合。
時(shí)序(time series)是由名稱(Metric)以及一組key/value標(biāo)簽定義的,具有相同的名字以及標(biāo)簽屬于相同時(shí)序。
- metric名字:表示需要記錄的數(shù)據(jù)的名稱以及數(shù)據(jù)類型,如http_request_total。時(shí)序的名字由 ASCII 字符,數(shù)字,下劃線,以及冒號(hào)組成,它必須滿足正則表達(dá)式 [a-zA-Z:][a-zA-Z0-9:]*, 其名字應(yīng)該具有語(yǔ)義化,一般表示一個(gè)可以度量的指標(biāo),例如 http_requests_total, 可以表示 http 請(qǐng)求的總數(shù)。
- 標(biāo)簽:用來表示一類資源,例如:同一個(gè)集群可以使用同一個(gè)標(biāo)簽,就可以通過標(biāo)簽獲取到整個(gè)集群的同一個(gè)指標(biāo)。
- 指標(biāo)值:按照某個(gè)時(shí)序以時(shí)間維度采集的數(shù)據(jù),稱之為樣本。實(shí)際的時(shí)間序列,每個(gè)序列包括一個(gè)float64的值和一個(gè)毫秒級(jí)的unix 時(shí)間戳
Prometheus 四種指標(biāo)類型
1.Counter (計(jì)算器):?jiǎn)握{(diào)遞增的指標(biāo),即只增不減,除非監(jiān)控系統(tǒng)發(fā)生了重置。
2.Gauge(儀表盤):可以任意變化的指標(biāo),即可增可減。
3.Histogram(直方圖):在一段時(shí)間范圍內(nèi)對(duì)數(shù)據(jù)進(jìn)行采樣,并將其計(jì)入可配置的存儲(chǔ)桶中,后續(xù)可通過指定區(qū)間篩選樣本,也可以統(tǒng)計(jì)樣本總數(shù),最后一般將數(shù)據(jù)展示為直方圖,
- 樣本的值分布在 bucket 中的數(shù)量,命名為 <basename>_bucket{le="<上邊界>"}。解釋的更通俗易懂一點(diǎn),這個(gè)值表示指標(biāo)值小于等于上邊界的所有樣本數(shù)量
- 所有樣本值的大小總和,命名為 <basename>_sum。
- 樣本總數(shù),命名為 <basename>_count。值和 <basename>_bucket{le="+Inf"} 相同。
4.Summary(摘要):Histogram類似類型,用于表示一段時(shí)間內(nèi)的數(shù)據(jù)采樣結(jié)果(通常是請(qǐng)求持續(xù)時(shí)間或響應(yīng)大小等),但它直接存儲(chǔ)了分位數(shù)(通過客戶端計(jì)算,然后展示出來),而不是通過區(qū)間計(jì)算
- 樣本值的分位數(shù)分布φ-quantiles (0 ≤ φ ≤ 1) 情況,命名為 <basename>{quantile="<φ>"}
- 所有樣本值的大小總和,命名為 <basename>_sum
Histogram與Summary的異同
它們都包含了
總結(jié)
prometheus的數(shù)據(jù)格式規(guī)范,可以使用PromQL語(yǔ)句快速查詢,特別是結(jié)合grafana,完成一個(gè)圖表是分分鐘的事情。