美文网首页
prometheus遇见的一些坑

prometheus遇见的一些坑

作者: ZplD | 来源:发表于2021-07-08 11:15 被阅读0次
  1. 配置如下:
    alertmanager:
    route:
    receiver: web.hook
    group_by: ['curve_id', "bandwidth_percentage"]
    group_wait: 30s
    group_interval: 5m
    repeat_interval: 24h
    receiver: 'web.hook'
    receivers:

prometheus:
global:
scrape_interval: 15s
evaluation_interval: 5m
alerting:
alertmanagers:

  • static_configs:
    • targets:
      • localhost:9093
        rule_files:
  • /root/prometheus-2.28.0.linux-amd64/rules/*.rules
    scrape_configs:
  • job_name: prometheus
    static_configs:
    • targets:
      • localhost:9090
        labels:
        group: myself
  • job_name: "10713"
    static_configs:
    • targets:
      • ip:port
        labels:
        alarm_type: traffic_low_alarm
        system: online
        metrics_path: /metrics/10713
        scrape_interval: 1h

预想的情况是:
每隔一个小时抓取一次exporter, 当使用率小于某个值的情况下告警,重复告警间隔1天(因为使用率是为昨天的最大值所以一天内不会改变),将告警记录存入数据库中

实际碰到的情况:
数据库中6小时内接收到了两次告警并且有一次告警带了两条alert(因为group_by根据'curve_id', "bandwidth_percentage"组里面最多只有一个alert,有两条是不正常的)

调查结果:
我的第一次告警是在18:32分, 如果按照repeat_interval为24h下次告警应为第二天的18:32分, 调查后发现当表达式的value被改变了以后(我的情况是改变后依然符合告警), 这时候alertManger就会等待group_interval重新向webhook告警, 具体流程为:


image.png

后续调查:
发现一个很坑的东西, 如果在rule里面设置了变量如{{value}}或{{lable.XX}}等只要变量一改变prometheus就会认为这是一条新的告警就会在group_interval后重新发一条告警信息, repeat_interval则不生效, 解决方法就是讲value这些变量放在Annotations中

相关文章

网友评论

      本文标题:prometheus遇见的一些坑

      本文链接:https://www.haomeiwen.com/subject/kegzultx.html