目录

Prometheus Server的主要流程分析

  • scrape
  • evaluate
  • HTTP API, reload
  • 源码

一条告警的生命周期

求值 - 阈值判断 - 触发 - 分组 - 等待 - 处理链路 - 路由链路 - 发送 - 结束

AlertManager HTTP API
https://zhuanlan.zhihu.com/p/42190073

告警收敛之道,从源头上避免疲劳告警。

警报疲劳(Alarm Fatigue)是指暴露在大量、频繁的警报之中,被暴露者产生的去敏感化现象。去敏感化现象会导致更长的反应时间,甚至是忽视重要的警报。

Prometheus的杀手锏是自发现的Pull模型代替传统的Push模型,而AlertManager的杀手锏是强大的告警收敛机制。什么是告警收敛?就是通过一系列预处理手段,尽可能的归类、合并、减少最终发送给用户的警报,让用户收到最简单又最重要的信息。AlertManager做了一个大胆的尝试,不允许配置最大告警次数,这在传统的主流告警系统中是史无前例的,AlertManager这样设计的目的就是期望在强大的收敛机制下,告警信息能够万元归一。

https://github.com/prometheus/alertmanager/blob/master/doc/arch.svg

TSDB时序数据库原理

  • 时序向量
  • 时序数据压缩
  • 倒排索引
  • 源码

Prometheus Server & AlertManager 高可用

  • Prometheus多实例并行模式
  • AlertManager使用Gossip, 防止Alert重复
  • 自监控,Watch Dog 组件独立的HA部署等等