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


