Prometheus 完全筆記-01

      網(wǎng)友投稿 854 2025-03-31

      一 概述

      prometheus 是一個(gè)開(kāi)源監(jiān)控系統(tǒng),它前身是 SoundCloud的告警工具包。從 2012 年開(kāi)始,許多公司和組織開(kāi)始使用 prometheus。該項(xiàng)目的開(kāi)發(fā)人員和用戶社區(qū)非常活躍,越來(lái)越多的開(kāi)發(fā)人員和用戶參與到該項(xiàng)目中。目前它是一個(gè)獨(dú)立的開(kāi)源項(xiàng)目,且不依賴于任何公司。為了強(qiáng)調(diào)這點(diǎn)和明確該項(xiàng)目治理結(jié)構(gòu),Prometheus 在 2016 年繼Kurberntes 之后,加入了 Cloud Native Computing Foundation。

      1.1 prometheus核心概念

      1.1.1 數(shù)據(jù)模型

      Prometheus 從根本上存儲(chǔ)的所有數(shù)據(jù)都是時(shí)間序列數(shù)據(jù)(Time Serie Data,簡(jiǎn)稱(chēng)時(shí)序數(shù)據(jù))。時(shí)序數(shù)據(jù)是具有時(shí)間戳的數(shù)據(jù)流,該數(shù)據(jù)流屬于某個(gè)度量指標(biāo)(Metric)和該度量指標(biāo)下的多個(gè)標(biāo)簽(Label)。除了提供存儲(chǔ)功能,Prometheus 還可以利用查詢表達(dá)式來(lái)執(zhí)行非常靈活和復(fù)雜的查詢。

      度量指標(biāo)和標(biāo)簽

      每個(gè)時(shí)間序列(Time Serie,簡(jiǎn)稱(chēng)時(shí)序)由度量指標(biāo)和一組標(biāo)簽鍵值對(duì)唯一確定。

      度量指標(biāo)名稱(chēng)描述了被監(jiān)控系統(tǒng)的某個(gè)測(cè)量特征(比如 http_requests_total 表示 http 請(qǐng)求總數(shù))。度量指標(biāo)名稱(chēng)由 ASCII 字母、數(shù)字、下劃線和冒號(hào)組成,須匹配正則表達(dá)式 [a-zA-Z_:][a-zA-Z0-9_:]*。

      標(biāo)簽開(kāi)啟了 Prometheus 的多維數(shù)據(jù)模型。對(duì)于同一個(gè)度量指標(biāo),不同標(biāo)簽值組合會(huì)形成特定維度的時(shí)序。Prometheus 的查詢語(yǔ)言可以通過(guò)度量指標(biāo)和標(biāo)簽對(duì)時(shí)序數(shù)據(jù)進(jìn)行過(guò)濾和聚合。改變?nèi)魏味攘恐笜?biāo)上的任何標(biāo)簽值,都會(huì)形成新的時(shí)序。標(biāo)簽名稱(chēng)可以包含 ASCII 字母、數(shù)字和下劃線,須匹配正則表達(dá)式 [a-zA-Z_][a-zA-Z0-9_]*,帶有 _ 下劃線的標(biāo)簽名稱(chēng)保留為內(nèi)部使用。標(biāo)簽值可以包含任意 Unicode 字符,包括中文。

      采樣值(Sample)

      時(shí)序數(shù)據(jù)其實(shí)就是一系列采樣值。每個(gè)采樣值包括:

      一個(gè) 64 位的浮點(diǎn)數(shù)值

      一個(gè)精確到毫秒的時(shí)間戳

      注解(Notation)

      一個(gè)注解由一個(gè)度量指標(biāo)和一組標(biāo)簽鍵值對(duì)構(gòu)成。形式如下:

      [metric name]{[label name]=[label value], ...}

      例如,度量指標(biāo)為 api_http_requests_total,標(biāo)簽為 method=“POST”、handler="/messages" 的注解表示如下:

      api_http_requests_total{method="POST", handler="/messages"}

      1.1.2 度量指標(biāo)類(lèi)型

      計(jì)數(shù)器(Counter)

      計(jì)數(shù)器是一種累計(jì)型的度量指標(biāo),它是一個(gè)只能遞增的數(shù)值。計(jì)數(shù)器主要用于統(tǒng)計(jì)類(lèi)似于服務(wù)請(qǐng)求數(shù)、任務(wù)完成數(shù)和錯(cuò)誤出現(xiàn)次數(shù)這樣的數(shù)據(jù)。

      計(jì)量器(Gauge)

      計(jì)量器表示一個(gè)既可以增加, 又可以減少的度量指標(biāo)值。計(jì)量器主要用于測(cè)量類(lèi)似于溫度、內(nèi)存使用量這樣的瞬時(shí)數(shù)據(jù)。

      直方圖(Histogram)

      直方圖對(duì)觀察結(jié)果(通常是請(qǐng)求持續(xù)時(shí)間或者響應(yīng)大小這樣的數(shù)據(jù))進(jìn)行采樣,并在可配置的桶中對(duì)其進(jìn)行統(tǒng)計(jì)。有以下幾種方式來(lái)產(chǎn)生直方圖(假設(shè)度量指標(biāo)為 ):

      按桶計(jì)數(shù),相當(dāng)于 _bucket{le=""}

      采樣值總和,相當(dāng)于 _sum

      采樣值總數(shù),相當(dāng)于 _count ,也等同于把所有采樣值放到一個(gè)桶里來(lái)計(jì)數(shù) _bucket{le="+Inf"}

      匯總(Summary)

      類(lèi)似于直方圖,匯總也對(duì)觀察結(jié)果進(jìn)行采樣。除了可以統(tǒng)計(jì)采樣值總和和總數(shù),它還能夠按分位數(shù)統(tǒng)計(jì)。有以下幾種方式來(lái)產(chǎn)生匯總(假設(shè)度量指標(biāo)為 ):

      按分位數(shù),也就是采樣值小于該分位數(shù)的個(gè)數(shù)占總數(shù)的比例小于 φ,相當(dāng)于 {quantile="<φ>"}

      采樣值總和,相當(dāng)于 _sum

      Prometheus 完全筆記-01

      采樣值總數(shù),相當(dāng)于 _count

      1.1.3 任務(wù)(Job)和實(shí)例(Instance)

      在 Prometheus 里,可以從中抓取采樣值的端點(diǎn)稱(chēng)為實(shí)例,為了性能擴(kuò)展而復(fù)制出來(lái)的多個(gè)這樣的實(shí)例形成了一個(gè)任務(wù)。

      例如下面的 api-server 任務(wù)有四個(gè)相同的實(shí)例:

      job: api-server instance 1: 1.2.3.4:5670 instance 2: 1.2.3.4:5671 instance 3: 5.6.7.8:5670 instance 4: 5.6.7.8:5671

      Prometheus 抓取完采樣值后,會(huì)自動(dòng)給采樣值添加下面的標(biāo)簽和值:

      job: 抓取所屬任務(wù)。

      instance: 抓取來(lái)源實(shí)例

      另外每次抓取時(shí),Prometheus 還會(huì)自動(dòng)在以下時(shí)序里插入采樣值:

      up{job="[job-name]", instance="instance-id"}:采樣值為 1 表示實(shí)例健康,否則為不健康

      scrape_duration_seconds{job="[job-name]", instance="[instance-id]"}:采樣值為本次抓取消耗時(shí)間

      scrape_samples_post_metric_relabeling{job="", instance=""}:采樣值為重新打標(biāo)簽后的采樣值個(gè)數(shù)

      scrape_samples_scraped{job="", instance=""}:采樣值為本次抓取到的采樣值個(gè)數(shù)

      1.2 prometheus特點(diǎn)

      多維度數(shù)據(jù)模型,一個(gè)時(shí)間序列由一個(gè)度量指標(biāo)和多個(gè)標(biāo)簽鍵值對(duì)確定

      靈活的查詢語(yǔ)言,對(duì)收集的時(shí)許數(shù)據(jù)進(jìn)行重組

      強(qiáng)大的數(shù)據(jù)可視化功能,除了內(nèi)置的瀏覽器,也支持grafana集成

      高效存儲(chǔ),內(nèi)存加本地磁盤(pán),可通過(guò)功能分片和聯(lián)盟來(lái)拓展性能

      運(yùn)維簡(jiǎn)單,只依賴于本地磁盤(pán),go二進(jìn)制安裝包沒(méi)有任何其他依賴

      精簡(jiǎn)告警

      非常多的客戶端庫(kù)

      提供了許多導(dǎo)出器來(lái)收集常用系統(tǒng)指標(biāo)

      1.3 altermanager 核心概念

      1.3.1 分組

      分組將類(lèi)似性質(zhì)的警報(bào)分類(lèi)為單個(gè)通知。在許多系統(tǒng)一次性失敗并且數(shù)百到數(shù)千個(gè)警報(bào)可能同時(shí)發(fā)生的較大中斷期間,這尤其有用。

      示例:發(fā)生網(wǎng)絡(luò)分區(qū)時(shí),群集中正在運(yùn)行數(shù)十或數(shù)百個(gè)服務(wù)實(shí)例。一半的服務(wù)實(shí)例無(wú)法再訪問(wèn)數(shù)據(jù)庫(kù)。Prometheus中的警報(bào)規(guī)則配置為在每個(gè)服務(wù)實(shí)例無(wú)法與數(shù)據(jù)庫(kù)通信時(shí)發(fā)送警報(bào)。結(jié)果,數(shù)百個(gè)警報(bào)被發(fā)送到Alertmanager。

      作為用戶,人們只想獲得單個(gè)頁(yè)面,同時(shí)仍能夠確切地看到哪些服務(wù)實(shí)例受到影響。因此,可以將Alertmanager配置為按群集和alertname對(duì)警報(bào)進(jìn)行分組,以便發(fā)送單個(gè)緊湊通知。

      通過(guò)配置文件中的路由樹(shù)配置警報(bào)的分組,分組通知的定時(shí)以及這些通知的接收器。

      1.3.2 抑制

      如果某些其他警報(bào)已經(jīng)觸發(fā),則抑制是抑制某些警報(bào)的通知的概念。示例:正在觸發(fā)警報(bào),通知無(wú)法訪問(wèn)整個(gè)集群。Alertmanager可以配置為在該特定警報(bào)觸發(fā)時(shí)將與該集群有關(guān)的所有其他警報(bào)靜音。這可以防止數(shù)百或數(shù)千個(gè)與實(shí)際問(wèn)題無(wú)關(guān)的觸發(fā)警報(bào)的通知。通過(guò)Alertmanager的配置文件配置禁止。

      1.3.3 沉默

      沉默是在給定時(shí)間內(nèi)簡(jiǎn)單地靜音警報(bào)的簡(jiǎn)單方法。基于匹配器配置靜默,就像路由樹(shù)一樣。檢查傳入警報(bào)它們是否匹配活動(dòng)靜默的所有相等或正則表達(dá)式匹配器。如果他們這樣做,則不會(huì)發(fā)送該警報(bào)的通知。在Alertmanager的Web界面中配置了靜音。

      1.3.4 客戶端行為

      Alertmanager對(duì)其客戶的行為有特殊要求。這些僅適用于不使用Prometheus發(fā)送警報(bào)的高級(jí)用例。

      1.3.5 高可用

      Alertmanager支持配置以創(chuàng)建用于高可用性的集群。這可以使用–cluster- *標(biāo)志進(jìn)行配置。重要的是不要在Prometheus和它的Alertmanagers之間加載平衡流量,而是將Prometheus指向所有Alertmanagers的列表。

      二 架構(gòu)

      2.1 prometheus架構(gòu)圖

      ![image-20190824212703954](/Users/xuel/Library/Application Support/typora-user-images/image-20190824212703954.png)

      ![image-20190825205430423](/Users/xuel/Library/Application Support/typora-user-images/image-20190825205430423.png)

      2.2 altermanager架構(gòu)圖

      ![image-20190825104025896](/Users/xuel/Library/Application Support/typora-user-images/image-20190825104025896.png)

      HTTP 正則表達(dá)式

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。

      上一篇:word文檔里的字都選中不了怎么辦(為什么word文字不能選中)
      下一篇:forkexec 和 exit 對(duì) IPC 對(duì)象的影響
      相關(guān)文章
      亚洲男人第一av网站| 亚洲VA中文字幕无码一二三区| 亚洲伦理一区二区| 亚洲乱码一区二区三区在线观看| 亚洲国产专区一区| 青草久久精品亚洲综合专区| 亚洲中文字幕久久久一区| 亚洲H在线播放在线观看H| 91嫩草亚洲精品| 亚洲国产精品久久网午夜| 亚洲国产成人手机在线电影bd| 亚洲六月丁香六月婷婷蜜芽| 亚洲国产精品乱码在线观看97| 亚洲人和日本人jizz| 国产成人精品日本亚洲专| 久久精品国产亚洲AV久| 亚洲婷婷第一狠人综合精品| 国产色在线|亚洲| 亚洲天堂男人影院| 亚洲 暴爽 AV人人爽日日碰| 在线观看日本亚洲一区| 亚洲色大18成人网站WWW在线播放| 亚洲日本久久一区二区va| 亚洲大成色www永久网址| 亚洲色大成WWW亚洲女子| 亚洲AV成人精品一区二区三区| 精品亚洲国产成人av| 亚洲成a人片在线观看日本麻豆| 亚洲阿v天堂在线2017免费| 亚洲毛片不卡av在线播放一区| 亚洲片国产一区一级在线观看 | 亚洲午夜久久久久久久久电影网| 久久亚洲国产精品五月天婷| 在线亚洲人成电影网站色www| 人人狠狠综合久久亚洲88| 久久亚洲AV成人出白浆无码国产 | 国产精品亚洲专区在线播放| 区三区激情福利综合中文字幕在线一区亚洲视频1 | 亚洲激情黄色小说| 亚洲午夜精品在线| 亚洲人AV在线无码影院观看|