日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

普罗米修斯笔记:初识Prometheus

發布時間:2025/3/19 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 普罗米修斯笔记:初识Prometheus 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

  • Prometheus簡介
  • Prometheus特性
  • pull方式
  • push方式
  • 核心組成部分
    • Prometheus server
    • Client libraries
    • Push Gateway
    • Exporters
    • Alertmanager
  • 架構圖
  • Prometheus工作流程
  • Prometheus數據模型
    • 指標名稱
    • 標簽
    • 時序樣本
  • Prometheus 的四種數據類型
    • Counter(計數器)
    • Gauge(儀表盤)
    • Histogram(直方圖)
    • Summary(摘要)
  • Jobs and Instances

Prometheus簡介

Prometheus官網地址:https://prometheus.io/

Prometheus是一套開源的監控&報警&時間序列數據庫的組合,起始是由SoundCloud公司開發的。成立于2012年,之后許多公司和組織接受和采用prometheus,他們便將它獨立成開源項目,并且有公司來運作.該項目有非常活躍的社區和開發人員,目前是獨立的開源項目,任何公司都可以使用它,2016年,Prometheus加入了云計算基金會,成為kubernetes之后的第二個托管項目.google
SRE的書內也曾提到跟他們BorgMon監控系統相似的實現是Prometheus。現在最常見的Kubernetes容器管理系統中,通常會搭配Prometheus進行監控。

Prometheus特性

Prometheus是一個開源的系統監控和報警工具,它有以下特點:

  • 自定義多維數據模型(時序列數據由metric名和一組key/value組成)
  • 多維度上靈活的查詢語言(PromQI)
  • 不依賴分布式存儲,支持單主節點工作
  • 通過基于HTTP的pull方式采集時序數據
  • 可以通過push gateway進行時序數據推送(pushing)
  • 可以通過服務發現或者靜態配置取獲取要采集的目標服務器
  • 多種可視化圖表及儀表盤支持

pull方式

Prometheus采集數據時用的pull也就是拉模型,通過HTTP協議去采集指標,只要應用系統能夠提供HTTP接口就可以接入監控系統,相比于私有協議或二進制協議來說開發、簡單。

push方式

對于定時任務這種短周期的指標采集,如果采用pull模式,可能造成任務結束了,Prometheus還沒有來得及采集,這個時候可以使用加一個中轉層,客戶端推數據到push gateway緩存一下,由prometheus從push gateway pull指標過來。(需要額外搭建push gateway,同事需要新增job去從gateway采數據)

核心組成部分

Prometheus server

主要負責數據采集和存儲,并提供PromQL查詢語言支持。Prometheus server本身就是一個實時數據庫,將采集到的監控數據按照時間序列的方式存儲在本地磁盤中。

Client libraries

豐富的客戶端sdk,官方提供的客戶端類庫有go、java、scala、python、ruby,其他還有很多第三方類庫,支持nodejs、php、erlang等。

Push Gateway

支持臨時性Job主動推送指標的中間網關。主要用于短期的jobs。由于這類jobs存在時間較短,可能在Prometheus來pull之前就消失了。為此,這次jobs可以直接向Prometheus中間網關推送他們的metrics。這種方式主要用于服務層面的metrics,對于機器層面的metrices,需要使用node exporter。

Exporters

支持其他數據源的指標導入到Prometheus,支持數據庫、硬件、消息中間件、存儲系統、HTTP服務器、jmx等。
Exporter將監控數據采集的端點通過HTTP服務形式暴露給Prometheus Server,將其轉化為Prometheus支持的格式,Prometheus Server通過訪問該Exporter提供的Endpoint端點,即可以獲取到需要采集的監控數據。可以將exporter分成2類:
直接采集:這一類exporter直接內置了對Prometheus監控支持,比如cAdvisor、Kubernetes、Etcd、Gokit等,都直接內置了用于向Prometheus暴露監控數據的端點。
間接采集:原有監控目標并不直接支持Prometheus,因此需要通過Prometheus提供的Client Library編寫該監控目標的監控采集程序。目前其生態中已經有很多exporter實現,例如:

范圍常用Exporter
數據庫MySQL Exporter, Redis Exporter, MongoDB Exporter, MSSQL Exporter等
硬件Apcupsd Exporter,IoT Edison Exporter, IPMI Exporter, Node Exporter等
消息隊列Beanstalkd Exporter, Kafka Exporter, NSQ Exporter, RabbitMQ Exporter等
存儲Ceph Exporter, Gluster Exporter, HDFS Exporter, ScaleIO Exporter等
HTTP服務Apache Exporter, HAProxy Exporter, Nginx Exporter等
API服務AWS ECS Exporter, Docker Cloud Exporter, Docker Hub Exporter, GitHub Exporter等
日志Fluentd Exporter, Grok Exporter等
監控系統Collectd Exporter, Graphite Exporter, InfluxDB Exporter, Nagios Exporter, SNMP Exporter等
其它Blockbox Exporter, JIRA Exporter, Jenkins Exporter, Confluence Exporter等

Alertmanager

一個警告控制組件用來控制警告。在Prometheus中支持基于PromQL創建告警規則,如果滿足PromQL定義的規則,則會產生一條告警。當AlertManager從Prometheus server端接收到alerts后,會進行去除重復數據,分組,并路由到對端接收方式,發出報警。常見的接收方式有:電子郵件,pargerduty,webhook等。

大部分的Prometheus組件是用Go語言編寫的,他們很易于以二進制文件方式構建和部署。

架構圖


數據可以通過直接jobs或者通過push gateway方式抽取樣本指標。它將所有抽取的樣本存儲在本地,并對這些數據運行規則,從現有數據中聚合和記錄新的時間學列,或者生成告警。可以使用Grafana或者其他API使用者來可視化收集的數據。

Prometheus工作流程

1、Prometheus server定期從配置好的jobs或者exporters中拉取metrics,或者從push gateway拉取metrics,或者從其他的Prometheus server中拉取metrics
2、Prometheus server在本地存儲收集的metrics,并運行定義好的alert.rules,通過一定規則進行清理和整理數據,并把得到的結果存儲到新的時間序列中。記錄新的時間序列或者向Alertmanager推送警報。
3、Prometheus通過PromQL和其他可視化的展現收集的數據。Prometheus支持很多方式的圖表可視化,例如Grafana、自帶的Promdash以及自身提供的模板引擎等等。Promenade還提供HTTP API的查詢方式,自定義所需要的輸出。

Prometheus數據模型

Prometheus 從根本上所有的存儲都是按時間序列去實現的,相同的 metrics(指標名稱) 和 label(一個或多個標簽) 組成一條時間序列,不同的label表示不同的時間序列。為了支持一些查詢,有時還會臨時產生一些時間序列存儲。
Prometheus數據格式與OpenTSDB相似:

<metric name>{<label name>=<label value>, ...}

指標名稱

一般是給監測對像起一名字,例如 http_requests_total 這樣,它有一些命名規則,可以包字母數字之類的的。通常是以應用名稱開頭監測對像數值類型單位這樣。例如:

http_requests_total

標簽

就是對一條時間序列不同維度的識別了,例如 一個http請求用的是POST還是GET,它的endpoint是什么,這時候就要用標簽去標記了。最終形成的標識便是這樣了:

http_requests_total{method="POST",endpoint="/api/tracks"}

時序樣本

按照某個時序以時間維度采集的數據據,稱之為樣本,其值包含:

  • 一個float64值
  • 一個毫秒級的unix時間戳

Prometheus隨時間采集監控數據點,每個數據點都是時間戳和值的元組。出于監控的目的,時間戳是一個整數,值是任意數字–64位浮點數對于Counter和Gauge類型來說都是一個很好的表示方式。按時間戳嚴格單調遞增的數據點序列是一個由標識符尋址的Series。標識符是帶有標簽維度的監控項名稱,標簽維度劃分單個監控項的度量空間**,每個監控項名稱加上一組唯一標簽是其自己的時間序列**,其具有與之關聯的值流

## series格式為 identifier -> (t0, v0), (t1, v1), (t2, v2), (t3, v3), .... ## 一組典型的系列標識符,是請求技術監控度量的一部分 requests_total{path="/status", method="GET", instance=”10.0.0.1:80”} requests_total{path="/status", method="POST", instance=”10.0.0.3:80”} requests_total{path="/", method="GET", instance=”10.0.0.2:80”} ## 簡化表示,監控項名稱可以是另一個標簽維度__name__,在查詢是它可能會被特殊處理,但與我們存儲它的方式無關 {__name__="requests_total", path="/status", method="GET", instance=”10.0.0.1:80”} {__name__="requests_total", path="/status", method="POST", instance=”10.0.0.3:80”} {__name__="requests_total", path="/", method="GET", instance=”10.0.0.2:80”} 因此,identifier 形如 metricName{label1=value1,label2=value2,...}{__name__="metricName",label1=value1,label2=value2,...} ## 在簡化的視圖中,所有數據點可以在二維平面上展開。水平維度表示時間,垂直維度按series展開 series^ │ . . . . . . . . . . . . . . . . . . . . . . {__name__="request_total", method="GET"}. . . . . . . . . . . . . . . . . . . . . . {__name__="request_total", method="POST"}. . . . . . .. . . . . . . . . . . . . . . . . . . .... . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . {__name__="errors_total", method="POST"}. . . . . . . . . . . . . . . . . {__name__="errors_total", method="GET"}. . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . .... . . . . . . . . . . . . . . . . . . . v<-------------------- time --------------------->

Prometheus 的四種數據類型

Counter(計數器)

  • Counter 用于累計值,例如 記錄 請求次數、任務完成數、錯誤發生次數。
  • 一直增加,不會減少。
  • 重啟進程后,會被重置。
例如:http_response_total{method="GET",endpoint="/api/tracks"} 1010秒后抓取 http_response_total{method="GET",endpoint="/api/tracks"} 100

Gauge(儀表盤)

  • Gauge 常規數值,例如 溫度變化、CPU,內存,網絡使用變化。
  • 可變大,可變小。
  • 重啟進程后,會被重置
例如: memory_usage_bytes{host="master-01"} 100 < 抓取值memory_usage_bytes{host="master-01"} 30memory_usage_bytes{host="master-01"} 50memory_usage_bytes{host="master-01"} 80 < 抓取值

Histogram(直方圖)

Histogram 可以理解為柱狀圖的意思,常用于跟蹤事件發生(通常是請求持續時間或響應大小)的規模,例如:請求耗時、響應大小。它特別之處是可以對記錄的內容進行分組,提供 count 和 sum 全部值的功能。

例如:{小于10=5次,小于20=1次,小于30=2次},count=7次,sum=7次的求和值

Summary(摘要)

Summary和Histogram十分相似,常用于跟蹤事件(通常是要求持續時間和響應大小)發生的規模,例如:請求耗時、響應大小。同樣提供 count 和 sum 全部值的功能。

例如:count=7次,sum=7次的值求值

它提供一個quantiles的功能,可以按%比劃分跟蹤的結果。例如:quantile取值0.95,表示取采樣值里面的95%數據

Jobs and Instances

在prometheus中,任何被采集的目標被稱為instance,通常對應于單個進程,而相同類型(可擴展性和可靠性的復制)的instance集合被稱為Job。例如:Api server job由4個復制instance組成:

- job: api-server- instance1: 1.2.3.4:5670- instance2: 1.2.3.4:5671- instance3: 5.6.7.8:5670- instance3: 5.6.7.8:5671

當prometheus采集目標時,它會自動附加某些標簽,用于識別被采集的目標。
job: 配置目標所屬的job名稱。
instance:目標 HTTP URL:部分
如果任何一個標簽已經存在于采集的數據中,則此行為依賴honor_labels 配置選項。

總結

以上是生活随笔為你收集整理的普罗米修斯笔记:初识Prometheus的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 成人国产精品视频 | 中文字幕在线播放一区 | 亚欧精品在线观看 | 色视频线观看在线播放 | 污av| 国产69精品久久久久久久 | 全部免费毛片在线播放一个 | 欧美日韩3p | 午夜视频在线观看网站 | v99av| 在线观看福利视频 | 91在线亚洲 | 台湾少妇xxxx做受 | 亚洲一区二区三区网站 | 国产馆在线观看 | 黑人vs日本人ⅹxxxhd | 91成人免费观看 | 美女视频黄色免费 | 性欧美13一14内谢 | 成年人黄视频 | 日本黄色录像 | 亚洲字幕成人中文在线观看 | 欧美一区二区三区激情啪啪 | 2019国产精品 | 黄色动漫软件 | 中文字幕日韩三级片 | 国产成人一区二区三区视频 | 午夜老湿机 | 天天狠天天插 | 国产情侣一区 | av小说免费在线观看 | 国产激情在线视频 | 青青伊人影院 | 色欧美在线 | 成人第四色 | 久久777| 四虎在线免费视频 | 亚洲视频在线观看 | 国产欧美日韩亚洲 | 我爱av好色 | 欧美人与性动交xxⅹxx | 免费人成年激情视频在线观看 | 天天噜天天干 | 亚洲av无码成人精品区 | 狠狠干狠狠艹 | 亚洲天堂网络 | 97在线精品视频 | 日韩丰满少妇无码内射 | 精品国产高清在线观看 | 日本三级一区二区三区 | 久久久久夜 | 国产在线一卡二卡 | 影音先锋精品 | 四虎色 | com国产| 人体内射精一区二区三区 | 拍摄av现场失控高潮数次 | 成人做爰66片免费看网站 | 欧美日韩欧美日韩在线观看视频 | 国产视频黄色 | 久久久精品视频在线 | 国产毛片久久久久久 | 欧美30p | 一区二区三区免费网站 | 欧美日韩成人在线观看 | 一边摸一边抽搐一进一出视频 | 秋霞在线视频观看 | 成人免费视屏 | 日日燥夜夜燥 | 欧美性生活网址 | 91肉色超薄丝袜脚交一区二区 | 欧美午夜一区二区三区 | 天天舔天天操天天干 | 秋葵视频在线 | 日韩在线黄色 | 免费午夜视频在线观看 | 亚洲免费在线视频观看 | 日韩精品在线视频 | 波多野结衣av一区二区全免费观看 | 日本精品久久久 | 永久久久久久 | 日b视频免费观看 | 亚洲AV无码乱码国产精品牛牛 | 会喷水的亲姐姐 | av在线a | 久草剧场 | 国产三级一区二区三区 | 91视频这里只有精品 | 欧美视频xxxx| 97在线免费公开视频 | 免费黄色小视频网站 | 在线观看免费大片 | 久久综合伊人77777麻豆最新章节 | 6—12呦国产精品 | 亚洲超丰满肉感bbw 悠悠av | 日韩少妇内射免费播放18禁裸乳 | 99在线精品视频免费观看20 | 国产精选91 | 国内精品福利视频 |