簡介
之前筆者有連續 2 篇文章:
- Prometheus 性能調優 - 什么是高基數問題以及如何解決?
- 如何精簡 Prometheus 的指標和存盤占用
陸續介紹了一些 Prometheus 的性能調優技巧,包括高基數問題的解決以及精簡 Prometheus 的指標和存盤占用,
今天再介紹一個新的調優思路:水平分片,
水平分片
如果你正在面臨的不是因為 label 導致的高基數問題,而是因為監控規模的急劇擴張導致需要被監控的 instance 非常龐大時,可以通過 Prometheus 的hashmod relabel action 來優化性能,通過這種辦法,面對成千上萬的 instance 時,一臺 Prometheus 只需要監控其中的所有各種各樣實體的一部分 instance,
??Notes:
Prometheus 也有垂直分片,垂直分片要簡單很多,說白了就是配置不同的 job 監控不同的組件即可,
水平分片相對還有些技術含量,
水平分片配置
具體配置如下,使用一臺 Prometheus 抓取 targets 的一部分:
global:
external_labels:
env: prod
scraper: 2
scrape_configs:
- job_name: my_job
...
relabel_configs:
- source_labels: [__address__]
modulus: 4
target_label: __tmp_hash
action: hashmod
- source_labels: [__tmp_hash]
regex: 2
action: keep
在 modulus 里,配置了 4 為基數,每個 Prometheus 只抓取 1/4,比如上面的配置就只抓取 hashmod 后 __temp_hash 為 2 的 targets,
抓取完成后,可以再通過 remote_write Thanos Mimir VM 等方案對這 4 臺 Prometheus Server 的資料進行聚合,
??????
本文由博客一文多發平臺 OpenWrite 發布!
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/538466.html
標籤:其他
