【分享】腾讯业务系统监控的修炼之路

我现在是织云监控告警产品线的产品经理,而且这部分的产品也在分版本的持续建设中 。所以后续主要的产品规划、设计、实现的讲述都是基于织云这个载体上实现 。
寻觅初心
以前做QQ业务运维的时候,有一类平台是自己天天会用,那这类平台是什么呢?就是监控告警平台,每天在上面查大量的业务视图、查异常、确认告警、处理告警等等 。
对于运维同学来说,如果从使用频率这个维度看,监控告警类平台的使用频率要大于自动化类平台,毕竟自动化类平台多数都是由例行变更触发,而监控告警平台是我们7X24小时都要使用的 。当时自己名下有较多的业务和几千台机器,那时有过一天收1000多条告警的记录,相当崩溃 。
其实告警如果一天超过几十条就基本是无效的,即关注不过来,也处理不过来 。在业务运维这个角色中,我更多的是从使用者这个视角去看监控的 。
去年下半年我从业务运维转型为产品经理,现在负责腾讯织云(企业级运维管理平台)监控告警产品线的规划与落地 。在产品经理这个阶段我更多的是从建设者这个视角去看监控的 。
使用者和建设者这两个视角去看待同一个事物监控告警这个产品,最大的差异点是什么呢?

【分享】腾讯业务系统监控的修炼之路

文章插图
“出了任何故障,其他环节都是可能有问题,唯独监控是一定有问题!”
—— 乔治·背黑锅
基于这两种不同的视角与在实际建设途中遇到的各种实际问题,我萌发了写一个监控专题系列的想法,哈哈,脸皮蛮厚的的 。自己以前都是写单篇的文章,这次也算是一个挑战了 。希望通过这个专题能与大家交流下关于一款企业级监控产品是怎么样规划、设计与落地的 。
可能是当产品经理习惯了用户场景与角色的分析,如果把这个主题的文章当做一个产品来看,那么其中的角色与场景是什么呢?
梳理一下自己在建设织云监控告警产品线的一些经验和思考 。
万丈高楼平地起
本章主要介绍一些关于监控的通用方法论,我们先理清一些基本概念 。
监控的定义
通过技术手段发现服务异常,持续优化业务可用性与用户体验 。这句话的关键词是 发现持续优化可用性与体验 。
监控的方式
主动:程序内部埋点,服务主动上报自身的运行情况,一般都是具化为业务的各个属性或者指标,这种方式准、快,灵活性好,指标丰富 。但是在非标准框架下会有一定的代码改造成本 。
被动:无需埋点,从外部探测或获取服务的运行情况,例如ping探测、日志采集分析等等 。
旁路:与程序逻辑无关,对服务质量与口碑的监控,例如舆情分析 。
那么这三类有优劣之分吗?其实没有,这里的方式都是针对于不同场景的,例如对域名的监控,就可以通过该域名的外部拨测来达到监控的目标,域名的访问耗时也可以通过不同的拨测点来监控 。在我们腾讯内部QQ和Qzone两个海量业务对这三类监控都应用到了 。
【分享】腾讯业务系统监控的修炼之路

文章插图
监控的类型
从大的对象范畴与层级关系来说,监控一般分为五种类型
监控的目标
一个好的监控体系应该要达到以下三点目标
监控的本质
在中,运维、开发、测试这三个角色应该视角统一,这里为什么说要视角统一,就是大家在监控这个层面关注的点应该是一致的,而不是你关注你的点,我关注我的点 。例如所有的业务监控都可以抽象出三个核心指标:请求量、成功率、耗时 。这三个关键指标来判断我们服务的可靠性,通过可靠性可以推算出可用性,并且可以间接反映用户使用我们产品的的体验 。例如如果服务的可靠性不好,那么用户的产品体验肯定不会好 。