B站统⼀监控系统的设计,演进 与实践分享
监控⽬目标 告警规则 web push rule push rule 获取监控数据 获取监控数据 推送告警 1. 降低编写规则的成本 2. 降低多idc维护成本 规则管理理⻚页⾯面 例例⼦子 - 业务监控 稿件 账号 Feed PAAS托管 服务树 container http server sdk 注册 获取target 采集数据 吞吐量量 响应时间 错误率 dashboard 报表 告警 统⼀一的告警中⼼心 解决什什么问题? • 告警源头多 • 告警⻛风暴暴, ⼤大量量重复告警 • 发送告警渠道多 • 重要告警没有及时到达 • 优化告警没有数据依据 问题 • 告警标准化 • 告警收敛 • 告警渠道管理理 • 告警升级 • 告警报表 核⼼心功能 API⽹网关 服务树 告警收敛 屏蔽规则 事件管理理 告警渠道0 码力 | 34 页 | 650.25 KB | 1 年前3PromQL 从入门到精通
PromQL 从⼊⻔到精通 对于 Prometheus 生态的监控系统,PromQL 是必备技能,本文着重点讲解这个查询语言,掺 杂一些生产实践场景,希望对你有所帮助。 ? 本文作者:秦晓辉,Open-Falcon、Nightingale 等开源项目创始人之一,极客时间《运 维监控系统实战笔记》作者;当前在创业(快猫星云联创),为客户提供监控/可观测性产品 方案,有需求的朋友欢迎联系我的微信 不动上报给监控服务端,那计算增量、计算速率这个需求,就要放到服务端来实现了,所以服务 端必须要能对这种类型的数据建模抽象,也就是所谓的 Counter 类型。 时序数据 PromQL 就是查询时序数据的一种 Query Language,要想对 PromQL 有了解,得先搞清楚时 序数据。 认识时序数据 我们先来看一张图,图上是 5 台机器的内存可用率: 每个机器的内存可用率数据,体现为图上的一条线,我们称为 存可用率数据,我们称为数据点,比如上图,2022-08-25 15:05:22 这个时刻,每个机器都有 一个可用率数据点,共计 5 个数据点。 上面的图是查询的最近一小时的,我们切换到 Table 视图,得到如下结果: 这个表格的内容,是这 5 台机器在当前这个时间点的最新值,当前我做查询的时刻是:2022- 08-25 15:48:03 用 Chrome 开发者工具可以看到发的请求参数: 但是,监控数据是周期性上报的,比如每0 码力 | 16 页 | 2.77 MB | 1 年前3告警OnCall事件中心建设方法白皮书
服务告警,或者某个机器重启,忘记提前屏蔽了,也会产生一堆关联告警。 了解了常见原因,下面我们来看一下有哪些常见解法。 优化告警规则 类似 PagerDuty FlashDuty 这种产品,一定程度上是可以解决一些告警过多的问题,但如果能从告警规 则的源头做好优化,自然是事半功倍。很多公司的告警规则配置没有原则可循,每次故障复盘先看告警是 否漏报,一线工程师为了不背锅,自然是尽量多地提 然后进行准入评审及准入测试,如果系统架构有明显问题,就没办法通过准入要求,不接受运维,如果老 板要求必须接,那就只能加人了,或者明确说明在架构调整好之前,不负责 SLA,反推业务改造。 上面介绍的两个告警规则优化原则,是最重要的两个原则。照做的话,可以搞定大部分无效告警。 除了原则方面,另一个应对过多告警的方法就是靠产品工具了,比如告警事件在哪些时间段发送、如何过 滤、如何屏蔽、如何抑制等等,通常,监控系统和统一的 ,认真填写故障处理过程、止损手段,这是极好的知识库, 未来再发生类似故障的时候,都可以快速参考。如前文所述,如果某个故障发生之后没有对应的处理动 作,这个故障对应的告警规则可能就是不合理的,需要优化。 总结 告警事件的后续处理,不只是发往各个通知媒介那么简单。涉及到收敛、降噪、排班、认领、升级、协 同、IM 打通 等非常多的细节功能,各个监控系统通常不会在这个方面发力,但是告警的统一处理又是非0 码力 | 23 页 | 1.75 MB | 1 年前3
共 3 条
- 1