构建了各类监控、可观测性系统(一个又一个数据孤岛),但故障漏报、定位止损慢,经常被老板怼?下面几条实践分享给你。
优先保障公司最重点的业务,业务指标(通常称为北极星指标)、SLO 指标,是最应该关注的指标。
在微服务、K8s 时代,某个机器的 CPU、内存跑高了甚至宕机,可能对业务是无影响的,重点关注用户视角的指标和老板视角的指标,这是 ROI 最高的做法。
作为技术团队,和业务团队之间的沟通有时容易自说自话,在稳定性领域,业务指标和 SLO 指标是一个良好的沟通基础,是一种共同语言。
如果业务指标和 SLO 指标出问题,接下来就是故障定位,定位需要数据支撑,要收集的典型数据就是指标、日志、链路数据等,但不要眉毛胡子一把抓,而是从定位路径着手。
何为从定位路径着手?就是先想清楚如果故障(业务指标和 SLO 指标异常通常就是故障),在排障时先看什么数据再看什么数据。
典型的定位路径是:
何为数据特征?举几个例子:
如果指标、日志、链路、Profiling、变更等系统相互割裂,会极大增加学习成本,增加排障时间。很多普通研发甚至都无法确切知道想看的数据在哪个系统查看。
能够从一类数据快速精确跳转到另一类数据,越来越变成观测系统的重要能力,比如:
所有这一切,都需要数据之间的良好关联,通常需要公司级的规范:
OpenTelemetry 在这块做得比较好,在尝试缔造一个规范和采集 Pipeline。
一旦确定了反复出现的故障模式和故障排除模式,那就可以尝试自动化或半自动化处理过程。比如:
一些自动化的逻辑甚至可以直接写到业务系统的代码中,这会让业务系统变得更加健壮,但也会变得更加复杂,可能会引入一些新的问题,需要权衡折中。
最容易的推进方式是自顶向下推进,就像当年亚马逊做微服务改造,是 CEO、CTO 推进的,会顺利的多。
在研发框架里统一埋入也是很好的抓手,大部分公司都有较为统一的开发语言开发框架,这为统一埋点奠定了基础。但是统一埋点只能覆盖服务边界调用,服务内部逻辑还是要靠研发啦。
最不济的,只能是靠标杆效应了,先在部分业务试水,拿到成果再推广更多产品线。
本文系转载,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文系转载,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。