Promethues配置文件中的时间相关参数
1. scrape_interval:Promethues抓取数据的间隔,默认为1分钟
inactive: 未达到告警的条件
pending: 达到了告警的条件,但是持续时间小于设定的阈值时间(取决于有没有for语句,如果没有将直接从inactive跳到firing状态)
firing: 达到了告警的条件,且持续时间大于设定的时间阈值
Alertmanager内部架构图
- 从左上开始,Prometheus 发送的警报到 Alertmanager;
- 警报会被存储到 AlertProvider 中,Alertmanager 的内置实现就是包了一个 map,也就是存放在本机内存中,这里可以很容易地扩展其它 Provider;
- Dispatcher 是一个单独的 goroutine,它会不断到 AlertProvider 拉新的警报,并且根据 YAML 配置的Routing Tree将警报路由到一个分组中;
- 分组会定时进行 flush (间隔为配置参数中的 group_interval), flush 后这组警报会走一个Notification Pipeline链式处理;
- Notification Pipeline为这组警报确定发送目标,并执行抑制逻辑,静默逻辑,去重逻辑,发送与重试逻辑,实现警报的最终投递;