如何建设灰度跨端监控 | D2分享视频+文章
大家好,我是来自阿里巴巴淘系技术部的墨辉。今天分享主题是《如何建设灰度跨端监控》。
监控,安全生产的第一战线,线上问题的发现能力以及如何快速定位问题是监控的核心能力。 前端跨端方案不断在演进,覆盖了web、weex、小程序等多种跨端方案场景。 今天的主题从背景介绍、技术方案、线上案例、总结 4个维度来介绍灰度跨端监控。
背景介绍
首先介绍下跨端的背景,打开一个H5或者pc的页面,从传统前端监控视角去看,我们一般只会关注页面运行过程的异常监控,比如 JSError、接口异常、性能等这些指标。
今天,我们业务运行在很多不同的跨端的方案,比如 weex、小程序、rn、flutter等。从跨端监控视角看,需要做到全链路的监控。比如容器启动异常、页面加载白屏、页面执行过程导致crash等问题的监控。
回到安全生产的背景,我们统计了淘系前端财年故障,我们发现线上问题 80% 是变更引起的以及故障平均修复时长超过了 300 分钟,我们来分析下具体原因:
线上变更引起故障,大部分是没有被监控发现,根据上图分析下监控没有被发现的原因。从趋势图看出,在10点左右有个发布节点,日志有个小幅度的增长,增长过程没有触发报警,原因主要包含两个:
-
大盘日志的增长并不明显
-
缺少细分的维度来区分日志增长的来源
上面我们提到了,平均修复时间超过了300分钟,一个完整的流程流程包含两个阶段
-
开发阶段,从需求评审、需求开发以及测试验证
-
发布阶段,开发完成之后,发布过程会有个渐渐放量的过程,内部灰度 -> 外部灰度,最后完整上线
如果一个问题完整上线才发现,会带来 问题修复周期长 和 影响范围广 的问题。要解决这些问题,需要在 灰度发布过程 来提前发现问题。
灰度监控是要解决发布过程的监控,核心要解决三个问题:
-
不同的跨端容器(weex、小程序等)怎么建设灰度监控
-
灰度报警和普通报警的差异是什么
-
灰度发布过程的监控,如何帮助业务更好定位问题