Alert 自动诊断系统的设计

💡 原文中文,约7400字,阅读约需18分钟。
📝

内容提要

在运维系统中,Alert光发出来是不够的,每一个Alert都需要处理和解决。设计的监控系统包括Vmalert和Alertmanager,还有Mute和高级alert抑制低级alert的功能。Alert Reaction是一个补充开源监控系统的系统,负责处理Alert。最近,为了处理更复杂的Alert,设计了一个框架,当Alert Reaction系统收到Alert时,将其放入任务队列中。用户可以使用装饰器定义如何处理Alert的脚本。框架还解决了加载用户代码和区分不同诊断程序的问题。这个项目类似于之前在蚂蚁金服参与的一个项目,但存在许多困难和挑战。

🎯

关键要点

  • 在运维系统中,Alert需要被处理和解决。

  • 监控系统包括Vmalert、Alertmanager、Mute和高级alert抑制功能。

  • Alert Reaction系统负责处理Alert,补充了开源监控系统的不足。

  • Alert Reaction系统记录所有触发的Alert,并提供统计信息以优化Alert触发条件。

  • 设计了一个框架,允许用户用代码定制Alert规则。

  • 框架使用Redis作为任务队列,处理Alert的流程分为多个队列。

  • 用户只需定义处理Alert的逻辑和目标,使用装饰器简化代码编写。

  • 装饰器支持匹配Alert,但仅支持等值匹配,不支持正则表达式。

  • 框架解决了用户代码加载和不同诊断程序区分的问题。

  • 提供了调试功能,允许用户测试构造的Alert和线上Alert。

  • 项目面临许多挑战,回忆起在蚂蚁金服参与的类似项目,感慨颇多。

➡️

继续阅读