乐趣区

关于prometheus:Prometheus-性能调优水平分片

简介

之前笔者有间断 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 的数据进行聚合。

🎉🎉🎉

退出移动版