Promethues 的 Agent 模式:高效轉發(fā)云原生指標
Bartek Plotka 是紅帽的首席軟件工程師,從 2019 年開始擔任 Prometheus 項目的維護者,也是 CNCF Thanos 項目的共同作者之一,同時還擔任 CNCF 大使以及 CNCF 可觀察性 TAG 的技術領導者。他在業(yè)余和 O’Reilly 出版了《Efficient Go》一書。

社區(qū)提供了包羅萬象的 Exporter,例如容器、eBPF、我的世界甚至還有針對園藝的健康監(jiān)測; 現(xiàn)在多數(shù) CNCF 項目都會提供基于 HTTP/HTTPS 的? /metrics?端點,讓 Prometheus 可以讀取指標數(shù)據(jù)。這原本是 Google 內部秘而不宣的一個概念,Prometheus 項目將其公諸于世; 可觀察性的范式發(fā)生了變化。 從一開始 SRE 和開發(fā)者就非常依賴指標數(shù)據(jù),對軟件的韌性、排障能力以及數(shù)據(jù)驅動的決策過程產(chǎn)生了很好的推動作用

Serverless 應用以及類似的短壽命容器經(jīng)常會讓我們將遠端推送方式當做救命稻草。這種情況下我們希望把細碎的事件和指標能夠聚合到一個較長存活期的時間序列里。我們對這一主題也進行了討論,歡迎加入,一起完善這個方案。
聯(lián)邦:這是第一種用于聚合目的的方案。這種方案里,全局級的 Prometheus 服務器或從基層 Prometheus 中抓取指標的子集。這種級聯(lián)方式里,聯(lián)邦節(jié)點暴露的指標中包含了原始采樣的時間戳,因此降低了跨網(wǎng)絡抓取的風險,但是如果網(wǎng)絡間的時延達到分鐘級,可能就無法在不損失數(shù)據(jù)的情況下完成數(shù)據(jù)聯(lián)合了。 Prometheus 遠程讀取:從遠端 Prometheus 服務器的數(shù)據(jù)庫中繞過 PromQL,直接提取原始數(shù)據(jù)??梢栽谌忠患壊渴?Prometheus 或者 Thanos 方案,用抓取自多個站點的遠程數(shù)據(jù)來執(zhí)行 PromQL 查詢。這種方式很強大——數(shù)據(jù)存儲在“本地”,還可以按需訪問。不幸的是,這種方式也有缺點,如果沒有 Query Pushdown,一個簡單的查詢可能就要拉取上 GB 的壓縮數(shù)據(jù)。類似地,如果網(wǎng)絡失聯(lián),服務就不可用了,另外有些集群只允許 Egress,禁止 Ingress 最后一種就是遠程寫入:這似乎是目前最流行的選擇。Agent 模式也是聚焦于遠程寫入的,因此我們要詳細描述一下這個模式
但是 Bartek 你剛剛說過,從應用推送指標不是個好主意!
Katacoda 教程:遠程寫入
Prometheus 的 Agent 模式
--enable-feature=agent?來啟動啟動 Prometheus。
Agent 模式是針對特定使用場景的,標準模式的 Promethues Server 更穩(wěn)定、更易維護,仍是缺省建議;Agent 模式的遠端存儲引入了更高的復雜性,還需謹慎使用。
指標接收端的彈性伸縮
Agent 模式得到了大規(guī)模驗證
main?分支。--help?參數(shù))內容中會看到類似內容:usage: prometheus [ ]
The Prometheus monitoring server
Flags:
-h, --help Show context-sensitive help (also try --help-long and --help-man).
(... other flags)
--storage.tsdb.path="data/"
Base path for metrics storage. Use with server mode only.
--storage.agent.path="data-agent/"
Base path for metrics storage. Use with agent mode only.
(... other flags)
--enable-feature= ... Comma separated feature names to enable. Valid options: agent, exemplar-storage, expand-external-labels, memory-snapshot-on-shutdown, promql-at-modifier, promql-negative-offset, remote-write-receiver,
extra-scrape-metrics, new-service-discovery-manager. See https://prometheus.io/docs/prometheus/latest/feature_flags/ for more details.
--enable-feature=agent?參數(shù)的啟用的。這種模式下能夠使用同樣的指標抓取配置以及遠程寫入能力。Agent 模式下,Web UI 的查詢功能是被禁用的,只能用于展示構建信息、配置內容、抓取指標和服務發(fā)現(xiàn)信息。在 Katacoda 上嘗試 Prometheus Agent

評論
圖片
表情
