腾讯云布道师:新时代运维监控能力的进化——天网云用户体验监控平台实践

时间:2024-03-01 14:23:26

作者:梁定安,腾讯社交网络运营部,负责社交平台、增值业务的运维负责人,开放运维联盟专家委员,腾讯云布道师。

前言

运维团队审视业务质量监控能力时,有九个问题值得思考:

  • 您产品的服务质量监控是360度无死角的吗?
  • 传统的监控手段是否足够有效发现问题?
  • 用户投诉的问题中,如何快速识别是“个案”还是“共性问题”?
  • 用户对产品的正负评价如何能有效的被产品经理感知到?
  • 用户的求救信号能否被您的服务收到?
  • 如何实现远程手摸手指导小白用户收集排障信息?
  • 如何让运营事故尽可能不对用户体验造成太大的影响?
  • 您的产品与竞品的差距有多少?
  • 默默无闻的运维团队如何给业务传递技术运营的价值? 九问运维后,我们重新审视传统的运维监控能力是否仍然能够满足业务对质量的要求,结合当下移动互联网与新兴的业务形态的质量诉求,规划与建设新型运维监控能力。

监控的手段

常见的互联网业务多为分布式的高可用架构,典型架构如下图,分价构成管理,用户通过运营商与客户端访问到企业的内网,获取互联网产品的功能和服务。 
基于典型的互联网架构,运维团队为保障业务的质量,使用常见的监控手段被划分成三种类型(如下图):

  • 主动监控,提前埋点,应用主动上报自身的运行情况
  • 被动监控,无需埋点,从应用外部探测或获取服务的运行情况
  • 旁路监控,与程序逻辑无关,对服务质量的监控


在日常工作中,主动监控与被动监控是最广泛被采用的有效监控手段,它们的区别就是有没有代码级的预埋监控逻辑,俗称埋点。旁路监控是这次重点要介绍的新型监控手段,在靠后的篇幅会着重介绍。

基础监控

在传统的运维工作中,网络/系统运维的工作内容相对其他运维工种更为基础,因此在传统监控能力中,对硬件性能和网络情况的监控被认为是最基础的监控能力。在腾讯的监控实践中,我们把这部分称之为基础监控能力,是主动监控的一种。顾名思义就是对硬件的CPU、内存、硬盘IO、流量等硬件性能指标来监控,以达到发现软件层异常的一些目的。这类监控大部分的开源程序都支持,如zabbix、ganglia等等。
随着IT技术的不断发展与演变,分布式计算、高可用架构、微服务的普及,单IP的异常影响面已经被弱化到最小的程度,因此基础监控的重要性已经逐渐降低,但是这并不意味着基础监控的数据不再重要。这些基础监控数据被使用在大规模的运维中,更贴近应用的监控或运维管理需求,例如,被用来评估整个模块的容量状况和趋势,或者会被抽象成一个与业务相关联的指标进行集中度量。

基础监控的架构很成熟,主要的技术难点是,在分布式架构下多节点数据的采集与计算结果,因为基础监控数据往往被当成是其他上层监控的基础数据,所以对结果数据的实时性要求很高。可参考腾讯基础监控的架构实践,可以支持1分钟颗粒度的监控数据展现。 

WEB监控

在web2.0时代,社交业务突飞猛进的发展,为做好全局的监控,运维团队建设了测速+返回码的监控能力,这也是主动监控能力的一部分。

  • 测速,包括两部分:网络连接的速度,页面渲染的速度。
  • 返回码,对于标准化的http服务,可以统一监管起来。

常见的测速监控做法是,提前嵌入javascript的上报点,通过不同时间锚点的差值计算出对应操作的执行耗时。

从而有监控数据可以发现web页面打开耗时较大的点,技术人员可以开展相应的优化工作。 
测速数据可以被运用到考核服务质量的维度,下图是腾讯社交业务考核慢速用户的系统截图。 
WEB监控方法中,还有一种常用的手段,是利用外部探测点对WEB服务波测,以此来获取服务的质量数据的监控能力,在腾讯我们称之为自动化测试服务。这是一种被动监控的手段,无需业务开发配合修改代码,直接通过黑盒模拟用户访问我们WEB服务或cgi的传参,构造出与真实业务请求一样的url对WEB服务质量进行的波测。如下图所示,这种监控手段需要有测试人员(或其他技术人员),提前编写好测试用例,并需要部署在不同分布点来模拟不同地域的用户请求,然后便可以通过定时任务调度来对WEB服务质量进行波测。 
自动化测试能够监控到主动监控无法发现的问题点,如下图运营商劫持等,是WEB监控中最真实反馈用户使用情况的一种能力。但是,该监控方式依赖测试用例的编写与维护,需要投入的管理成本较高。 
在腾讯的海量业务的运维监控中,自动化测试是不可或缺的重要监控手段之一。 

服务端监控

在运维监控实践中,服务端监控是监控能力的很重要一环。这是一种主动监控手段,通过提供API,业务程序主动实现接口调用质量与延时的监控数据上报,从而实现主调与被调两个角度的服务质量监控(如下图)。 
模块间调用监控系统是服务端监控在腾讯的实践,为了保证所有业务应用程序上线运营后,都能把质量数据上报到模调监控,使业务质量能被度量被监控,运维制定的标准化运营规范明确要求这点,以此保证与构建质量监控体系。

服务端监控还有很多实现形式,如日志监控,因篇幅关系便不展开介绍。(可参考开源的ELK方案)

客户端监控

在移动互联网时代,社交用户习惯从PC转移到手机APP,客户端监控在整个监控体系中变得十分重要。在客户端监控的场景中,除了监控常用的成功率、延时、请求量这三大质量指标外,流畅度和卡顿率也是衡量客户端质量的很重要的指标。针对客户端监控的特殊性,我们主要采用ASM注入方法实现客户端的APM监控和卡顿监控。 

监控的本质

上面介绍了几种典型的互联网监控方式,概括下监控的本质,无非就是把服务质量从请求量、成功率、耗时这三个纬度,通过不同的分析策略,最终产出图、表和告警。 

用户体验监控

大多数的监控系统都是这么设计实现的,从技术的角度看,主动监控与被动监控的手段可以覆盖完业务自身的所有质量问题,但是因为国内运营商网络互联互通的客观难题和移动APP多版本兼容性不佳的问题,造成了很多用户体验受损的情况。这些都无法被我们传统的监控手段有效的发现和告警,也就无法实现360度无死角的监控。最坏的情况是,用户侧的问题我们无法及时发现和处理,导致产品口碑受损和用户流失。 
经过对用户反馈或投诉的数据进行分析,我们发现用户侧的问题主要集中在:

  • 小众机型异常
  • 用户侧故障定位和排障难
  • 运营商劫持
  • 本地网络配置错误
  • 用户无法连接服务
  • 用户对产品功能不满

负责跟进这类问题的运维同事发现,这些反馈和投诉都是非上述监控手段能够发现的,因为所有的投诉来源都不是格式化的数据,不是请求量、成功率、耗时这类常见的指标,而是从用户的言论中分析得到的。为了打造立体化的监控体系,我们建设了天网云-用户体验监控系统,专门针对用户言论的监控,旨在从中能够及时监控到与服务质量相关的关键信息。 

与传统的监控手段不同,用户体验监控是通过技术手段收集用户使用腾讯社交产品时的反馈或投诉言论,利用机器学习的技术手段对自然语言进行分词、语意识别、词组聚类等方法,实现社交业务的舆情监控能力。

用户的反馈言论主要来源于产品反馈论坛、AppStore评论与APP反馈功能,为了这些渠道的数据收集,运维提供了爬虫、SDK、H5页面等能力,联合客户端开发实现了收集能力的埋点。对用户舆情监控,主要依赖对关键字的识别,但是靠人工配置关键字做监控告警,发现问题总是滞后的,不能达到监控的目的。因此,通过增量式词向量训练(改进word2vec)对用户的自然语言进行处理,使自动热词识别与关键词自动分类的准确率接近95%,舆情监控系统便可以基于此做好用户对业务的反馈言论监控。 
客户端植入用户反馈的H5页面后,当用户主动触发问题反馈或投诉时,结合javascript可以采集到用户本地网络的信息(clientIP、localDNS等网络指标,不涉及隐私),再与整个QQ大盘用户数据做对比,可以快速识别个体问题。用户体检监控上报数据的通道是走专属域名,降低了被劫持的风险,与常规的客户端监控形成双通道的上报方案,以保障监控数据最终能够上报到服务端。

随着用户体验监控平台的推广,腾讯社交网络事业群的所有业务都接入了该监控平台,也对用户体验监控提出了新的要求——运营闭环管理。既然是用户体验监控,就应该给用户更好的体验。当用户反馈了问题后,我们需要有流程实现对问题的跟进,并且对用户提出的问题也做出及时的反馈。 
用户体验监控平台弥补了常规技术手段难以发现的空缺,也是腾讯运维在构建立体化监控体系的一个新的成功尝试,在该平台持续的运营过程中,我们还逐步完善了其他的监控能力,使其能更接近产品、开发、运维的监控需求,为业务输出更大的价值。天网云-用户体验监控平台已经完成SaaS产品化的改造,可以在腾讯云上申请接入使用。 

相关推荐

容量管理系统设计方案

榨干运营成本:一亿之后再省两亿


 

此文已由作者授权腾讯云技术社区发布,转载请注明文章出处,获取更多云计算技术干货,可请前往腾讯云技术社区

欢迎大家关注腾讯云技术社区-博客园官方主页,我们将持续在博客园为大家推荐技术精品文章哦~