gydtep 发表于 2021-12-27 16:11:59
如果 Spark Streaming 存在非确定性的计算,则不能实现端到端一致,原因是:1、不满足条件一「实时存储每一条结果」。如果能记录下每个 RDD 分区下的执行情况,避免重复执行(幂等),也一定程度上能实现端到端一致gydtep 发表于 2021-12-28 08:32:01
下图比较概括地描述了一个系统的质量观测完整生命周期,大体上可以分为如下四个阶段,并且在每个阶段都有需要特别关注的一些数据和指标:gydtep 发表于 2021-12-28 09:23:45
灰度验证:需要关注系统的稳定性以及不同版本之间的差异,因此也会有一系列的业务指标,例如HTTP Error 比例,不同版本的延迟等指标的对比gydtep 发表于 2021-12-28 12:08:39
扩展困难:随着数据规模的增长,软件的扩展能力、性能、稳定能力等方面都会有很大的挑战。gydtep 发表于 2021-12-28 12:42:37
基于上述统一的数据存储和查询分析,我们可以非常轻松地实现统一的可视化和监控。如下图所示,虽然不同阶段的数据产生自不同的系统,也有着不同的格式,但是由于它们的存储和分析是一致的gydtep 发表于 2021-12-28 14:28:56
在一些数据波动比较大,指标没有固定阈值的场景下(例如用户访问量、外卖订单量等),智能巡检的优势可以得到很好的体现。gydtep 发表于 2021-12-28 15:01:10
我们采用无监督学习算法,自动识别实体的数据特征,根据数据特征选取不同的算法组合,针对数据流实时建模,完成异常任务检测。并根据用户的打标信息(对告警进行确认或者误报反馈),训练监督模型,对算法进行不断优化,从而提高监控的准确率。gydtep 发表于 2021-12-28 15:19:16
多套工具难维护:在不同的阶段可能使用了不同的工具,每个工具可能都提供了一部分的告警能力,最终导致难以维护。好在通过统一的数据接入和管理,我们可以统一去配置监控和管理告警。gydtep 发表于 2021-12-28 16:06:08
路由合并:相关的告警合并起来,一并进行通知,而不是针对每个告警分别通知,从而减少通知的数量。例如:根据告警所在集群进行合并,假如某集群短时间内产生了10个告警,则只会发送一条通知,包含这10个事件。gydtep 发表于 2021-12-28 16:12:13
告警抑制:主要用于处理告警之间的互相影响。例如:某一k8s集群发生OOM严重告警,可以暂时忽略同一集群的低级别告警。