iT邦幫忙

2024 iThome 鐵人賽

DAY 17
1
DevOps

時間序列資料庫探討 - Prometheus系列 第 17

Prometheus - 各模組的啓動和運行

  • 分享至 

  • xImage
  •  

本篇提問

  • config 裡可設定的參數會影響哪些模組?重載 config 時會發生什麼事?
  • Prometheus Server 啟動時,各模組初始化順序是怎樣的?分別有哪些初始化工作?
  • Prometheus Server 的運行過程中,有哪些模組會產生 goroutine?
  • 各模組產生的 goroutine 遇到 timeout 或錯誤時,會如何處理?

Prometheus Server 啓動過程

相信讀者已經對 Prometheus 在監控系統中的角色有所了解。

  • 用檔案系統或整合工具進行 Service Discovery 詢找標的。
  • 對標的發 Http Request 抓取資料
  • 將資料存放在檔案系統中
  • 依 Recoring / Alerting Rule 進行資料處理,通知 Alert Manager。
  • 提供 Web UI / API 供使用者查詢資料。
    https://prometheus.io/docs/introduction/overview/#architecture

以上 Prometheus Server 的每一件工作,背後各不同的模組。

  • discovery
  • scrape
  • tsdb
  • rule
  • web api / ui

https://ithelp.ithome.com.tw/upload/images/20241002/20154259AXmsR3GRIw.png
每個模組都有各自獨立的參數,而這些參數都是透過 config file 設定。
但每個模組彼此之間又互相依賴,使得 Prometheus Server 的啓動過程必須依序初始化。

本節提問

  • config 裡可設定的參數會影響哪些模組?重載 config 時會發生什麼事?
  • Prometheus Server 啟動時,各模組初始化順序是怎樣的?分別有哪些初始化工作?

Prometheus Server 運行過程

Prometheus Server 啓動後,會持續運行,進行監控工作。
而我們已經知道 Prometheus 大部分的工作都是訂時觸發執行,並需要一段時間完成。例如拉資料或是合併檔案。於是 Prometheus Server 會有很多 goroutine 並行執行。
每個模組都會管理自己的 goroutine 池以及相應的 mutex。

本節提問

  • Prometheus Server 的運行過程中,有哪些模組會產生 goroutine?
  • 各模組產生的 goroutine 遇到 timeout 或錯誤時,會如何處理?

上一篇
Prometheus - 時間序列資料儲存檔案的分合
下一篇
Prometheus - 程式初始化和啓動流程
系列文
時間序列資料庫探討 - Prometheus30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言