由 CNCF 托管的領(lǐng)先開源監(jiān)控解決方案 Prometheus 今天宣布了一種新的運(yùn)行模式:Prometheus Agent。這種新的工作方式支持新的工作流,如低資源環(huán)境、邊緣網(wǎng)絡(luò)和物聯(lián)網(wǎng)。它使用的資源非常少,并且能夠高效地將數(shù)據(jù)轉(zhuǎn)發(fā)到集中的遠(yuǎn)程端點(diǎn),同時使用數(shù)百萬 Prometheus 用戶所依賴的穩(wěn)定代碼庫。
Prometheus Agent 是一種專門的模式,它專注于使 Prometheus 成功的三個部分:服務(wù)發(fā)現(xiàn)、抓取和遠(yuǎn)程寫入。內(nèi)置在 Prometheus 本身中,Prometheus Agent 的行為類似于普通的 Prometheus 服務(wù)器:它是一種基于拉的機(jī)制,通過 HTTP 抓取指標(biāo)并將數(shù)據(jù)復(fù)制到遠(yuǎn)程寫端點(diǎn)。
多年來,Prometheus 服務(wù)器已經(jīng)被用于許多不同的情況。從傳統(tǒng)服務(wù)器到巨大的云原生集群。默認(rèn)情況下,Prometheus 的數(shù)據(jù)轉(zhuǎn)發(fā)模式為 federation。雖然這是可靠的,但它并不能滿足所有用戶的操作需求。Prometheus 引入了 Prometheus Remote Write,允許其他解決方案聚集到一個全局視圖中。值得一提的是 CNCF 的姐妹項目 Cortex 和 Thanos。
然而,Prometheus 本身仍然是這種設(shè)置、抓取和轉(zhuǎn)發(fā)度量中的一個組件。我們的用戶已經(jīng)成功地在分散的場景中使用了 Prometheus,這些場景將它們的所有或部分指標(biāo)報告給遠(yuǎn)程寫端點(diǎn)。這是一種可靠且大規(guī)模的工作方式,但代價是:完整的 Prometheus 服務(wù)器仍然有許多轉(zhuǎn)發(fā)不需要的功能,尤其是完整的本地存儲。
在這種新模式下,無法在本地查詢數(shù)據(jù)。相反,它可以被轉(zhuǎn)發(fā)到 Prometheus 或任何其他兼容的遠(yuǎn)程寫端點(diǎn)。
“我們的代理在成功寫入后立即刪除數(shù)據(jù)?!盧ed Hat 首席軟件工程師 Bartek Plotka 說:“這使得 Prometheus Agent 只使用 Prometheus 在類似情況下通常使用的一小部分資源。它也是 Prometheus 服務(wù)器模式的一個替代品,因?yàn)樾袨椤⒔涌诤团渲枚际窍嗤??!?/p>
值得注意的是,新的持久緩沖機(jī)制,稱為 Write-Ahead-Log (WAL),很大程度上是受現(xiàn)有的 Prometheus TSDB WAL 的啟發(fā)。它最初于 2020 年在 Grafana Agent 中實(shí)施,并從那時起在多次部署中成功進(jìn)行了實(shí)戰(zhàn)測試。感謝 Grafana Labs 的 Grafana Agent 技術(shù)主管 Robert Fratto,他為我們提供了最初的實(shí)現(xiàn),并將實(shí)現(xiàn)向上傳到我們的主要 Prometheus 倉庫和二進(jìn)制文件,以便原生使用和上游維護(hù)。
Prometheus Agent 的測試版已經(jīng)上線了。了解更多請參閱Prometheus 博客https://prometheus.io/blog/2021/11/16/agent/。