隨著 Prometheus 監控的元件、數量、指標越來越多,Prometheus 對計算效能的要求會越來越高,儲存佔用也會越來越多。
在這種情況下,要優化 Prometheus 效能, 優化儲存佔用. 第一時間想到的可能是各種 Prometheus 的相容儲存方案, 如 Thanos 或 VM、Mimir 等。但是實際上雖然集中儲存、長期儲存、儲存降取樣及儲存壓縮可以一定程度解決相關問題,但是治標不治本。
本次重點介紹第二種辦法:如何根據實際的使用情況精簡 Prometheus 的指標和儲存佔用?
relabel
在 metric_relabel_configs
或 write_relabel_configs
僅 keep
2-4 中的指標, 以此大幅減少 Prometheus 需要儲存的指標量.要具體實現這個思路, 可以通過 Grafana Labs 出品的 mimirtool 來搞定.
我這裡有個前後的對比效果, 可供參考這樣做效果有多驚人:
Grafana Mimir 是一款以物件儲存為儲存方式的 Prometheus 長期儲存解決方案, 從 Cortex 演化而來. 官方號稱支援億級別的 series 寫入儲存和查詢.
Grafana Mimirtool 是 Mimir 釋出的一個實用工具, 可單獨使用.
Grafana Mimirtool 支援從以下方面提取指標:
然後,Grafana Mimirtool可以將這些提取的指標與Prometheus或Cloud Prometheus範例中的活動 series 進行比較,並輸出一個 used
指標和 unused
指標的列表。
假定:
具體如下:
# 通過 Grafana API分析 Grafana 用到的指標
# 前提是現在 Grafana上建立 API Keys
mimirtool analyze grafana --address http://172.16.0.20:32651 --key=eyJrIjoiYjBWMGVoTHZTY3BnM3V5UzNVem9iWDBDSG5sdFRxRVoiLCJuIjoibWltaXJ0b29sIiwiaWQiOjF9