- 深入理解Prometheus監(jiān)控系統(tǒng)
- 鮑光亞 張帆
- 971字
- 2024-12-16 17:00:36
1.4 Prometheus 2.37(LTS版本)
Prometheus 2.37發(fā)布于2022年7月,是Prometheus的首個(gè)長(zhǎng)期支持(long term support,LTS)版本。該版本在2.0版本的基礎(chǔ)上進(jìn)行了多個(gè)方面的增強(qiáng)和完善。
在本地存儲(chǔ)方面,2.37版本的一項(xiàng)重要改進(jìn)是增加了事務(wù)隔離功能,從而能夠更可靠地進(jìn)行并發(fā)操作。本地存儲(chǔ)增加了快照功能,當(dāng)系統(tǒng)重啟時(shí)能夠通過(guò)加載快照文件快速恢復(fù)內(nèi)存狀態(tài),減少啟動(dòng)時(shí)間。2.37版本實(shí)現(xiàn)了以mmap方式訪問(wèn)本地存儲(chǔ)的頭部塊,提高了監(jiān)控?cái)?shù)據(jù)的讀寫性能。此外,2.37版本采用snappy格式壓縮WAL文件,節(jié)約了存儲(chǔ)空間。
2.37版本中的PromQL模塊引入了多項(xiàng)改進(jìn):增加了@修飾符,從而能夠更準(zhǔn)確、更靈活地控制查詢數(shù)據(jù)的時(shí)間;支持嵌套子查詢,從而能夠表示更復(fù)雜的查詢請(qǐng)求。
在服務(wù)自動(dòng)發(fā)現(xiàn)方面,2.37版本新增了對(duì)多種目標(biāo)的自動(dòng)發(fā)現(xiàn),包括DigitalOcean、Eureka、Hetzner、HTTP、IONOS、Linode、Moby、Nomad、PuppetDB、Scaleway、Uyuni、Vultr和XDS等。至此版本,Prometheus自動(dòng)發(fā)現(xiàn)的目標(biāo)達(dá)到24種。
2.37版本的Web API功能也得到大幅增強(qiáng),除了支持對(duì)監(jiān)控?cái)?shù)據(jù)、監(jiān)控項(xiàng)元數(shù)據(jù)和監(jiān)控目標(biāo)的查詢,還增加了遠(yuǎn)程寫功能(可接收遠(yuǎn)程寫入的數(shù)據(jù))以及告警規(guī)則和警報(bào)消息的查詢功能等,支持通過(guò)API執(zhí)行某些存儲(chǔ)管理操作(如快照生成、刪除數(shù)據(jù)等)。
2.37版本各個(gè)模塊在代碼文件中的分布如代碼清單1-4所示。
代碼清單1-4 Prometheus 2.37主要代碼文件目錄
. |-- cmd # 包含主程序以及Promtool模塊 |-- config # YAML配置信息處理模塊,實(shí)現(xiàn)了配置信息的結(jié)構(gòu)定義和編解碼,以及配置文件的加載等 |-- console_libraries # Web用戶界面所使用的模板定義,包含導(dǎo)航欄、菜單、通用函數(shù)等 |-- consoles # Web用戶界面使用的HTML文件 |-- discovery # 監(jiān)控目標(biāo)自動(dòng)發(fā)現(xiàn)模塊,支持24種目標(biāo)的自動(dòng)發(fā)現(xiàn) |-- docs # 說(shuō)明文檔和用戶手冊(cè) |-- documentation # 各種配置文件 |-- model # 底層模塊,包含標(biāo)簽處理、樣本數(shù)據(jù)解析和時(shí)間戳處理等功能 |-- notifier # 通知器模塊 |-- plugins # 用于管理自動(dòng)發(fā)現(xiàn)功能而引入的外部庫(kù) |-- prompb # 各種.proto文件 |-- promql # 數(shù)據(jù)查詢語(yǔ)言模塊 |-- rules # 規(guī)則模塊,包含告警規(guī)則管理器模塊和轉(zhuǎn)錄規(guī)則管理器模塊 |-- scrape #采樣管理器模塊和監(jiān)控目標(biāo)管理器模塊,監(jiān)控目標(biāo)自動(dòng)發(fā)現(xiàn)模塊被拆分并轉(zhuǎn)移到discovery
#目錄中 |-- scripts # 包含2個(gè)文件,用于檢查許可聲明,以及編譯.proto文件并生成Go代碼 |-- storage # 存儲(chǔ)模塊,本地存儲(chǔ)改為TSDB(以外部依賴包方式引入) |-- template # 底層模塊,用于增強(qiáng)監(jiān)控?cái)?shù)據(jù)的處理能力 |-- tracing # 跟蹤器模塊 |-- tsdb # 本地存儲(chǔ)模塊,此前在2.0版本中該模塊以外部依賴包方式引入 |-- util # 底層數(shù)據(jù)結(jié)構(gòu)模塊,包含緩存、文件操作、定時(shí)器、字符串處理、HTTP客戶端等 `-- web # 該模塊包含Web API和Web用戶界面這2個(gè)模塊
- SpringBoot揭秘:快速構(gòu)建微服務(wù)體系
- Netty權(quán)威指南
- 實(shí)戰(zhàn)Java虛擬機(jī):JVM故障診斷與性能優(yōu)化(第2版)
- Python與數(shù)據(jù)挖掘
- 軟件測(cè)試從小白到高手
- 軟件研發(fā)效能提升之美
- 移動(dòng)Web實(shí)現(xiàn)指南:面向移動(dòng)設(shè)備的網(wǎng)站優(yōu)化、開發(fā)和設(shè)計(jì)
- 深度學(xué)習(xí):21天實(shí)戰(zhàn)Caffe
- 數(shù)據(jù)科學(xué)導(dǎo)論:Python語(yǔ)言實(shí)現(xiàn)
- 微服務(wù)架構(gòu)原理與開發(fā)實(shí)戰(zhàn)
- 區(qū)塊鏈:技術(shù)原理與應(yīng)用實(shí)踐
- 云原生測(cè)試實(shí)戰(zhàn)
- iOS應(yīng)用開發(fā)指南:使用HTML5、CSS3和JavaScript
- C++從入門到精通(第2版)
- 數(shù)據(jù)可視化原理與實(shí)戰(zhàn):基于Power BI