[英]How To Reduce Prometheus(Federation) Scrape Duration
我有一个普罗米修斯联盟,其中有 2 个普罗米修斯服务器 - 每个 Kube.netes 集群一个,一个中央管理它们。
随着时间的推移,刮擦持续时间会增加。 在某个时候,抓取持续时间超过超时持续时间,然后指标丢失并触发警报。
我试图通过降低指标来减少擦除持续时间,但这是一场艰苦的战斗,更像是西西弗斯然后是普罗米修斯。
有谁知道一种方法可以减少抓取时间而不丢失指标并且不必随着时间的推移越来越多地下降?
提前致谢!
根据Prometheus的文档 ,这些设置确定全局超时和警报规则评估频率:
global:
# How frequently to scrape targets by default.
[ scrape_interval: <duration> | default = 1m ]
# How long until a scrape request times out.
[ scrape_timeout: <duration> | default = 10s ]
# How frequently to evaluate rules.
[ evaluation_interval: <duration> | default = 1m ]
...并且对于每个刮刮作业,该配置允许设置作业特定的值:
# The job name assigned to scraped metrics by default.
job_name: <job_name>
# How frequently to scrape targets from this job.
[ scrape_interval: <duration> | default = <global_config.scrape_interval> ]
# Per-scrape timeout when scraping this job.
[ scrape_timeout: <duration> | default = <global_config.scrape_timeout> ]
不了解更多有关目标的数量和每个目标的指标数量...我可以建议尝试为每个作业配置适当的scrape_timeout
并相应地调整全局evaluation_interval
scrape_timeout
。
结合以上建议或单独使用的建议,另一种选择是使Prometheus实例专用于刮除不重叠的目标集。 因此,有可能按比例缩放普罗米修斯,并且每组目标具有不同的evaluation_interval
间隔。 例如,较长的工作需要较长的scrape_timeout
以及较低的evaluation_interval
时间scrape_timeout
(较高的值),以免影响其他工作。
另外,通过随着时间的推移累积指标,而不是在抓取时仅提供当前读数,来检查出口商的行为是否正常,否则,返回普罗米修斯的清单会随着时间的推移而不断增长。
不建议在Prometheus federation之上构建数据复制,因为它不会像在描述的案例中看到的那样随着活动时间序列的数量而扩展。 最好通过Prometheus remote_write protocol设置数据复制。 例如,将以下行添加到 Prometheus 配置中,以便将数据复制到位于给定url
的VictoriaMetrics远程存储:
remote_write:
- url: http://victoriametrics-host:8428/api/v1/write
以下文档可能对进一步阅读有用:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.