Prometheus 學習筆記 - 基本架構與資料結構

Prometheus Overview 架構 Exporter: 要被採集的目標 job 中曝露 metrics 的組件,負責轉換資訊成 prometheus 可解讀的格式。由於某些早於 prometheus 的 service 因為某些原因,不想主動在服務中曝露 metrics,故可以用一些額外的 exporter 將這些 service 中的 metrics 轉成 prometheus 格式,並曝露埠。 node exporter mysql exporter Push Gateway: 由於有些任務時間太短,可能不到 prometheus pull 的週期,可讓這些 jobs 主動把 metrics push 到這個 push gateway,好讓 premetheus server 可以 pull。 Prometheus Server Retrieval(retrieval system): 主要負責 pull 指定的 target # /etc/prometheus/prometheus.yml scrape_configs: - job_name: "prometheus" static_configs: - targets: ["localhost:9090"] - job_name: "node_exporter" static_configs: - targets: ["localhost:9100"] TSDB: 時間序列資料庫,存放 pull 到的 metrics HTTP Server: 為 PromeQL 查詢提供接口 Service Discovery: kubernetes: 自動發現 k8s 中 pod 增加減少以及 probe 異動等等 file_sd: 通過 config 實現服務的自動發現 Alert Manager: 當 prometheus server 發現某某某 job 已經達到設定好的通知閾值進行通知的 service。 PromeQL: 無論是自帶 web UI 或是串接 Grafana,都是通過 http 進行 PromeQL 查詢後做視覺化處理 TSDB 中的時間序列資料。 資料結構 下面範例中會有更詳細說明...

2021-09-18 · 3 min · 638 words