« 新聞|思科宣布完成對 Splunk 的收購JetBrains推出本地運行的AI程式碼補全 »

規劃Prometheus成功之路

Wednesday, April 03, 2024 KillTest 0条评论 0个引用

  岱军 云云众生s

一文詳解在使用 Prometheus 時可能輕鬆破壞順暢運行的挑戰,以及如何克服這些挑戰。

 

譯自Creating a Path for Prometheus Success,作者 Arthur Sens 是Coralogix的平台工程師,同時擁有站點可靠性工程和軟體工程背景。 他積極為Prometheus生態系統做出貢獻,維護Prometheus-Operator和Prometheus client_golang,同時指導新的開源軟體貢獻者。

 

Prometheus是一個易於使用的開源監控和警報工具包。 它的流行無疑歸功於其高效的時間序列資料收集資料庫、靈活的查詢語言(PromQL)和一般的可擴展性。 此外,它對動態服務發現的支援、與Kubernetes的本地整合以及警報功能,使其成為監控動態的雲端原生環境的最佳選擇。 Prometheus也擁有一個活躍的開源社區,不斷貢獻持續改進和日益增長的採用。

 

然而,儘管Prometheus提供了這麼多好處,但許多挑戰也很容易破壞平穩的運作。 讓我們來看看其中一些。

 

基數經驗不足的故事

對Prometheus缺乏經驗的人經常遇到高基數問題是很常見的。 這些問題可能導致Prometheus實例的成長遠遠超過預期,造成可擴展性和效能問題。

 

在Prometheus中,基數指指標中獨一無二系列的數量。 當產生大量不同的指標標籤或標籤值時,就會發生高基數情況。

 

這通常源自於對標籤的誤用或誤解。 例如,為指標新增高度動態的標籤(如時間戳記、唯一識別碼或使用者ID)會迅速增加儲存的時間序列數量。

 

這可能會導致一系列不幸事件:

 

儲存需求增加

 

高基數導致Prometheus需要儲存的時間序列數量急劇增加,這可以快速消耗儲存資源。 當然,這可能會變得昂貴。

 

性能降低

 

在高基數場景中,查詢效能可能會顯著降低。 Prometheus必須處理大量的時間序列,這可能會減慢查詢回應並增加CPU和記憶體使用量。

 

管理開銷

 

管理和維護高基數的Prometheus實例變得更具挑戰性。 它需要更仔細的調優,可能還需要更複雜的基礎架構解決方案。

 

確保您的儲存管理不會有A-WAL問題

Prometheus中的Write Ahead Log或WAL是一種用於確保資料完整性和防止當機或意外關閉時資料遺失的機制。 每當Prometheus記錄新資料時,它會先將該資料寫入伺服器檔案系統上的WAL,然後再寫入資料庫。

 

這種方法意味著如果Prometheus因任何原因重新啟動,它可以使用WAL來恢復任何尚未寫入資料庫的資料。 WAL充當資料庫中應該存在的資料的記錄,確保如果系統崩潰,不會遺失資料。

 

然而,WAL的主要挑戰之一是重新播放它所需的時間,特別是在崩潰或重新啟動後。 當Prometheus重新啟動時,它需要處理WAL來重建其記憶體狀態。 如果WAL中有大量數據,這個過程可能會很耗時。

 

在實際情況下,這意味著如果WAL重播過程花費很長時間,Prometheus可能會經歷顯著的宕機時間,監控和警報暫時不可用——這對依賴即時監控的系統來說肯定不是理想狀態。

 

毫不費力地擴展?開玩笑吧!

在Prometheus中處理可擴展性,特別是在大規模和動態環境中,通常需要採用額外的策略和工具。 雖然Prometheus是一個單體應用程序,但它確實有許多獨立的功能,例如抓取和儲存指標,透過查詢返回指標,警報和記錄評估等等。

 

如果在特定設定中你嚴重依賴Prometheus的單一功能,你可能會被迫擴展整個Prometheus,儘管你真正需要擴展的只是它的一部分。 這就是分散式設定和像Thanos和Cortex這樣的工具發揮作用的地方。

 

它們都透過新增全域查詢視圖,本機支援Prometheus查詢API,提供高效的儲存和多叢集支援來擴充Prometheus。 它們還允許在物件儲存(如AWSS3或Google Cloud Storage)中長期儲存Prometheus指標,使其更具成本效益和可擴展性。 然而,儘管Thanos和Cortex組件可以分別擴展,從而解決Prometheus的單體擴展問題,但它們的所有附加組件都需要一定程度的專業知識和努力來維護。

 

簡而言之,雖然極有幫助,但Thanos和Cortex都向監控體系結構中引入了額外的元件,這在部署、管理和故障排除方面增加了複雜性。

 

創建成功的框架

如果您想在不遇到這些存儲和可擴展性問題的情況下使用Prometheus,請參加我們在CNCF主辦的與會期間在歐洲舉行的有關使用Prometheus-Operator的演示,以及幾天后的KubeCon上的實踐研討 會。

 

 

您將了解如何獲得Prometheus的所有回報而毫無風險。 您還可以見到我和我的同事Nicolas Takashi——我們是Coralogix的平台工程師,以及我們傑出的共同主講人Bartłomiej Płotka和Mahmoud Amin,谷歌的高級軟體工程師,還有Grafana的Jesus Vazquez。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

最近发表

Powered By Z-Blog 1.8 Arwen Build 81206