zoukankan      html  css  js  c++  java
  • Prometheus告警发送时间详解

    Promethues配置文件中的时间相关参数

    1. scrape_interval:Promethues抓取数据的间隔,默认为1分钟

    2. evaluation_interval:评估间隔,Promethues跑一遍所有的定义好的alerting rules,并更新alerting的状态
    3. alert status:

        inactive: 未达到告警的条件

        pending: 达到了告警的条件,但是持续时间小于设定的阈值时间(取决于有没有for语句,如果没有将直接从inactive跳到firing状态)

       firing: 达到了告警的条件,且持续时间大于设定的时间阈值

    4. alert sending:
        group_wait: 等待该时间,目的是将该时间段内所有的属于同一个组的alert打包一起发送告警通知
        group_interval:下一次评估过程中,同一个组的alert生效,则会等待该时长发送告警通知,此时不会等待group_wait设置的时间
     

    Alertmanager内部架构图

     
    1. 从左上开始,Prometheus 发送的警报到 Alertmanager;
    2. 警报会被存储到 AlertProvider 中,Alertmanager 的内置实现就是包了一个 map,也就是存放在本机内存中,这里可以很容易地扩展其它 Provider;
    3. Dispatcher 是一个单独的 goroutine,它会不断到 AlertProvider 拉新的警报,并且根据 YAML 配置的 Routing Tree 将警报路由到一个分组中;
    4. 分组会定时进行 flush (间隔为配置参数中的 group_interval), flush 后这组警报会走一个 Notification Pipeline 链式处理;
    5. Notification Pipeline 为这组警报确定发送目标,并执行抑制逻辑,静默逻辑,去重逻辑,发送与重试逻辑,实现警报的最终投递;

    参考资料

  • 相关阅读:
    基于python+django+mysql的接口测试平台
    firefox没有装在C盘,webdriver启动firefox时报错
    Python知识点面试题
    Python面试题整理
    Python程序猿面试杂谈
    Python面试-websocket及web框架
    Python面试-DB相关
    Python面试简介及并行并发
    flink-demo2
    flink-table demo
  • 原文地址:https://www.cnblogs.com/battlescars/p/prometheus_alertmanager.html
Copyright © 2011-2022 走看看