最新消息:

Prometheus联邦采集超时导致监控图像出现断点

IT技术 ipcpu 1浏览 0评论

近期我们发现监控图像会不定期的出现断点情况,图像上一根连续的曲线突然就断开了,如下

经过排查发现,数据是通过Prometheus的联邦模式从别的Prometheus实例采集上来的,于是我们去原实例上进行查询,发现原始数据没有断点,如下图,

那么问题可能处在Prometheus联邦采集上,经过查找,Prometheus联邦本身有以下几个参数也存在一些可疑
up{ job=~"._federate"}
scrape_samples_scraped{ job=~".
_federate"}
scrape_duration_seconds{ job=~".*_federate"}

果然,我们在联邦的监控数据上发现,一些超时的情况(默认30s超时),超时以后会有一些时间点没有采集到数据(黄色图中数据采集量是零)
我们原先设定的参数是
scrape_interval: 45s
scrape_timeout: 30s

我们修改了一下

scrape_interval: 60s
scrape_timeout: 45s

注意这里,scrape_interval要大于scrape_timeout,否则会报错。
scrape timeout greater than scrape interval for scrape config with job name
经过了几天的运行,再也没有发现断图的情况了。

由此我们可以推断,Prometheus每隔scrape_interval去采集一次数据,自发起采集请求开始,一直到scrape_timeout结束的时间内,如果数据顺利采集完毕,那就没问题录入,如果这个时间不能采集完毕,就会出现丢数据,甚至整个采集的数据都丢失的情况。

大家在使用Prometheus的过程中,应该注意一下这个点。

相应的我们添加了两个报警规则,用来监控联邦掉线和收集不到数据的情况

  - alert: prometheus federate offline
    expr: up{job=~".*_federate"} < 1
    for: 10m
    labels:
      severity: Warning
      team: prometheus
    annotations:
      summary: '联邦掉线'

  - alert: prometheus federate no data
    expr: scrape_samples_scraped{  job=~".*_federate"} == 0
    for: 15m
    labels:
      severity: Warning
      team: prometheus
    annotations:
      summary: '联邦采集不到数据'

转载请注明:IPCPU-网络之路 » Prometheus联邦采集超时导致监控图像出现断点

发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址