首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >超实用案例:美团终端主动监控平台的建设

超实用案例:美团终端主动监控平台的建设

作者头像
IT大咖说
发布于 2018-07-30 02:20:32
发布于 2018-07-30 02:20:32
1.3K0
举报
文章被收录于专栏:IT大咖说IT大咖说

内容来源:2018 年 01 月 05 日,美团高级技术专家李燕青在“2018 移动技术创新大会”进行《终端主动监控平台的建设》演讲分享。IT 大咖说(微信id:itdakashuo)作为独家视频合作方,经主办方和讲者审阅授权发布。

阅读字数:3430 | 9分钟阅读

摘要

本次演讲主要分享美团的终端主动监控平台建设过程,分别介绍了目前的被动监控的局限性,以及主动监控的实现难点。

嘉宾演讲视频PPT回顾,请复制链接:http://t.cn/RdtLzmF,粘贴至浏览器地址栏即可。

为什么要做主动监控?

这张示意图乍看没什么问题,但是其实还是存在漏洞,比如当组件化的机器人某一部分变的足够大的时候,该部分其实可以脱离出来成为新的机器人,而当插件化机器人功能越来越弱小的时候也可以演变从一个组件。总的来说组件

很多公司都会有监控系统,包括前端的性能监控,业务数据监控,后端API服务质量监控等,从运维层面来看这些都非常重要。

一般来说监控在服务端应用的会比较多一些,那么为什么我们终端也要做主动监控呢?在讨论这个问题之前,我们先来看下上图展示的两个场景。一个在退票环节中遇到白屏,另一个是应用loading时间过长。

对于前端来说出现白屏的原因有多种,有可能是Webview初始化的时候出现问题。目前在使用了React 、Vue等框架之后,页面已经成为了一个大的模块,其他模块都是由这个入口进入,已经没有了静态的内容,因此无从判断具体问题的出处。这种情况其实在测试阶段很难被发现,因为它并不是普遍现象。

最后我们对这两种情况经过排查发现,白屏问题是由运营商劫持造成的。第二种问题是由于在美团应用中用户选择的城市和定位城市不一致,导致数据接口返回数据出现问题。

被动监控

目前业界的监控系统基本上分为3类。一类是业务监控,这应该是每个公司都必备的,比如订单和GMV的监控。第二类是客服,是否存在客服主要由公司的性质决定。第三类是用户反馈,最直接的方式就是App Store的用户评价。以上这三类监控方式其实都是被动式的。

被动监控主要面临的问题有三个。一是滞后,只有在问题发生且已经造成损失之后才能去着手解决。二是发现难,因为在上线之前已经通过测试解决了普遍性的问题,等到上线之后所出现的问题其实都不具备普遍性。三是复现难,综合考量用户基数、设备、网络环境等各方面的情况就会发现问题的出现有着很多可能,即使用户给予了反馈也很难再现问题发生时的环境。

如何做?

主动监控做什么

既然被动监控存在各种问题,那么就要开始做主动监控,其目的是为了先于用户之前发现问题。初期我们的目标是能够监控白屏、运营商劫持、客户端接口错误等问题。

主动监控的目标

主动监控的实现需要达到几个目标。第一个是覆盖尽可能多的样本率。第二个是要有时效性,虽然从被动监控的业务数据波动中也能发现问题,但是不同情况下灵敏度会出现差异。第三个是覆盖,这里主要指的是覆盖业务的整个流程,以及各种平台。最后是自动化,尽可能的减少人工干预的时间。

接下来我们来看下这四个目标所涉及的具体问题。首先是样本率,主要涵盖台、设备、网络和操作方式四个方面,就以平台来说移动端的优先级要高于PC端,另外网络环境不能仅限于WiFi下。其次是时效性,一方面要保证实时性,另一边要配备相应的报警系统,最后还是要有人值班。到了自动化阶段,稳定性是优先要求,其次要有日志存储的功能,因为有些问题并不能轻易的复现,另外还要选择合适的测试框架。最后是覆盖,我们希望覆盖的范围足够的广,包括搜索、支付、退票、验证码等。

可以发现这里面所涉及的问题还是比较多的,也存在不少难点,所以我们一期做的还是比较简单。首先是样本率方面,虽然我们的安卓用户较多,但同时碎片化也非常严重,因此初期只选择了PC和iOS这两个平台。设备上则使用ipad和MacBook Pro跑自动化流程。自动化方面,iOS上采用的是Appium加WDA的方案,PC端采用的是Google的Headless Chrome(puppeteer)。

PC流程图

我们先看下PC的初期方案。这里首先会有一些业务的case,用来保证整个流程的顺利执行,有点类似于自动化的case。图中左半部分运行在node上,通过Headless Chrome来承载抓包、打码、diff这几个功能。

抓包的主要作用是抓取每个请求的包,然后转化成HLR的包,最后存储起来方便后续分析问题。

打码针对的是内部验证码,主要是为了满足自动化的需求。

Diff是为了应付运营商的劫持,我们首先会跑一遍整个业务的流程,然后抓取到所有的js和css,最后将它们与git仓库中最新的业务代码做diff。如果发现有代码被篡改就实时发出警报。这套系统之上还有一个消息系统,用来通知每个负责的人,以及负责收集消息,它还会连接到报警系统,由报警系统通过短信或邮件的方式向内部报警。这里还需要有日志系统,一方面记录业务流程的进展,另一方面记录每一步请求所抓的包。

最后是值班系统,我们这边是每周固定一个人值守,值班系统每天会按级别分拣出报警。

问题

我们将一期的方案整个跑下来之后,发现只能算是勉强可用,还是存在各种问题。首先样本还是太少了,毕竟只有ipad和MacBook Pro,发现问题的几率太小。其次是流程经常中断,比如支付环节中输入验证码就无法做到自动化。第三在ipad上运行的时候app会有crash,这自然就会中断流程。第四是case变动频繁,一旦业务功能发生改变case就要随之改变。第五是上线的js会压缩混淆,这样diff的时候每次都会不一样,并没有什么意义。最后是存在大量报警,其中有效的并不多,需要依靠人工筛选。

美团点评云测

为了解决面临的样例过少的问题,我们接入了内部的美团点评云测。它是一个自动化测试系统,包含一个Jenkins和多个server,有着各种测试设备以及一个存储系统,可以自动或人工的提交自动化测试任务。

ios流程图

上图是二期接入美团点评云测后iOS的解决方案。首先Jenkins会自动的跑任务,之后还是一堆的测试case,再通过Applum加WDS实现流程自动化,测试设备iPad使用Usb hub连接起来。其他的消息系统、报警系统和值班系统还是没有变化,不过这里多出来了proxy和server。Proxy是为了app中的抓包,抓取的是与服务端的一些请求,包括js、css以及图片。

对于支付的自动化问题,其实只要开通支付宝白名单就可以免验证码,Js的diff改为基于AST之后也能够正确的验证。

Case变动频繁

我们针对Case变动频繁的解决方案可能会比较激进。就是iOS、Android、H5只做展现,单独有一层完全使用js写的业务逻辑,这同时也解决了客户端的动态化问题。但该方案也存在缺陷,即Android的webview只支持ES5。

大量报警

大量报警的问题主要是通过人工标记配合决策树来解决。先通过人工审查标记报警,然后由决策树对它们进行分类,标记有效报警和无效报警,在积累到一定量之后决策树就会将某一类的错误全部归类为无效。

实践与效果

经过两期的实践,iOS和PC上已经可以自动化,流程覆盖率达到了95%,报警的时效性基本上在5分钟以内,上线一个月后发现了4次问题,其中一次较为严重。最终我们的可监控范围包括白屏、页面性能、资源加载、业务接口、js报错。

虽然已经做了两期主动测试,但还是有一些遗留问题。一是对比海量的用户之后样本率还是不足。二是地域问题,PC上还可以通过代理模拟地域,但是iOS上暂时不好解决。三是业务的强耦合,针对每个业务都要再去做一套主动测试。

未来我们还准备接入android平台,解决地域问题,以及其他业务的自动接入。

整个过程总结起来主要有两点。一是主动与被动相结合,其实大业务量的情况下其实被动监控会更灵敏,所以要发挥他们各自的优势。二是与自动化测试相结合。

这张图是我们总结的选型方案,分为普遍性问题和业务量大两个方向。普遍性问题可以直接通过自动化和人工测试解决。业务量大且又是普遍性问题的情况下被动测试会更灵敏。

以上为全部分享内容,谢谢大家! 推荐文章

  • Kubernetes容器云平台迁移,你必须知道的9件事
  • 从选型到实现——企业级云端大数据平台最佳实践
  • 小米弹性调度平台Ocean——从PaaS到DCOS
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-07-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 IT大咖说 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
美团点评金融平台Web前端技术体系
背景 随着美团点评金融业务的高速发展,前端研发数量从 2015 年的 1 个人,扩张到了现在横跨北上两地 8 个事业部的将近 150 人。业务新,团队新,前端领域框架技术又层出不穷,各个业务的研发团队在技术选择上没有明确的指导意见,致使业务与业务之间的技术差异越来越大,在技术工具研发上无法共建,在资源调度上成本也很高。 2017年下半年,金融平台发起了技术栈统一行动,行动分为后端、iOS、Android及前端等四个方向,在前端方向我作为组织者和参与者与金融平台 8 个事业部的前端技术代表进行讨论。 通过对
美团技术团队
2018/03/29
2.4K0
美团点评金融平台Web前端技术体系
2000万日订单背后:美团外卖客户端高可用建设体系
总第250篇 2018年 第42篇 背景 美团外卖从2013年11月开始起步,经过数年的高速发展,一直在不断地刷新着记录。2018年5月19日,日订单量峰值突破2000万单,已经成为全球规模最大的外卖平台。业务的快速发展对系统稳定性提出了更高的要求,如何为线上用户提供高稳定的服务体验,保障全链路业务和系统高可用运行,不仅需要后端服务支持,更需要在端上提供全面的技术保障。而相对服务端而言,客户端运行环境千差万别,不可控因素多,面对突发问题应急能力差。因此,构建客户端的高可用建设体系,保障服务稳定高可用,不仅
美团技术团队
2018/06/07
1.8K0
React Native在美团外卖客户端的实践
美团研发团队基于React Native开源框架,并结合美团业务场景,定制化开发了一套动态化方案。本文主要分享该动态化方案在美团外卖业务场景中的实践,希望能给大家一些启发。
美团技术团队
2019/12/23
2.4K0
React Native在美团外卖客户端的实践
美团外卖自动化业务运维系统——Alfred
背景 美团外卖业务在互联网行业是非常独特的,不仅流程复杂——从用户下单、商家接单到配送员接单、交付,而且压力和流量在午、晚高峰时段非常集中。同时,外卖业务的增长非常迅猛,自2013年11月上线到最近峰
美团技术团队
2018/03/13
1.9K0
美团外卖自动化业务运维系统——Alfred
美团扫码付的前端可用性保障实践
本文根据美团高级工程师田泱在美团技术沙龙第31期《线下支付千万级订单服务——前后端架构实践》的演讲内容整理而成。
美团技术团队
2019/04/08
9280
美团扫码付的前端可用性保障实践
美团酒旅数据治理实践案例分享
导读:本文主要介绍了美团酒旅数据治理的历程和实践经验,以及业务发展各个阶段中数据体系遇到的问题和解决方案,最后探讨数据治理在现阶段的建设思路和发展方向。
架构之家
2022/07/12
1K0
美团酒旅数据治理实践案例分享
故障问题处理指南
在故障处理期间,无论是哪一个阶段,要记住我们的首要目标是“止损”,尽快恢复、消除故障影响,这并不代表我们完全定位了故障问题,也不代表解决方案是完美的,因为这些是可以恢复后复盘的。
凯哥Java
2022/12/16
8630
美团基于 Flink 的实时数仓平台建设新进展
摘要:本文整理自美团实时数仓平台负责人姚冬阳在 Flink Forward Asia 2021 实时数仓专场的演讲。主要内容包括:
从大数据到人工智能
2022/06/27
1.2K0
美团基于 Flink 的实时数仓平台建设新进展
美团配送资金安全治理之对账体系建设
背景 随着美团配送业务的飞速发展,单量已经达到千万级别,同时每天产生的资金额已经超过几千万,清结算系统在保证线上服务稳定可靠的前提下,如何系统化的保障资金安全是非常核心且重要的课题。总结起来,配送清结算业务主要有以下几个特点: 1. 场景多:包括专送、众包、快送、跑腿、外部单等多条业务线;订单补贴、活动发放、奖惩、餐损、打赏、保险等多种结算场景;对接外部十多个系统。 2. 链路长:清结算内部经历定价、记账、汇总账单、付款等多个流程。 3. 单量大:目前日单量已达到千万级别。 在这样的业务背景下,我们的系统可
美团技术团队
2018/03/29
2K0
美团配送资金安全治理之对账体系建设
美团外卖持续交付的前世今生
美团外卖自2013年创建以来,业务一直在高速发展,从早期单一的美食业务发展成为包含闪购、跑腿、闪付、营销、广告等在内的平台业务。每个业务团队虽然都有不同的业务形态,但是几乎都有相同的诉求:需求能不能尽快的上线?本文将从外卖的历史实践中,浅谈一个好的持续交付需要综合考虑哪些关键因素,希望对大家有所帮助或启发。
美团技术团队
2020/02/19
1.6K0
美团外卖持续交付的前世今生
美团点评酒店后台故障演练系统
本文由曾鋆、海智、亚辉、孟莹四位作者共同创作完成。 背景介绍 随着海量请求、节假日峰值流量和与日俱增的系统复杂度出现的,很有可能是各种故障。在分析以往案例时我们发现,如果预案充分,即使出现故障,也能及时应对。它能最大程度降低故障的平均恢复时间(MTTR),进而让系统可用程度(SLA)维持在相对较高的水平,将故障损失保持在可控范围内。但是,经过对2016全年酒店后台研发组所有面向C端系统的线上事故分析后发现,在许多情况下,由于事故处理预案的缺失或者预案本身的不可靠,以及开发人员故障处理经验的缺失,造成大家在
美团技术团队
2018/03/13
2.2K0
美团点评酒店后台故障演练系统
美团配送实时特征平台建设实践
导读:2019年5月,美团正式推出新品牌「美团配送」,升级配送开放平台。那你知道支撑美团配送大脑的实时特征平台是如何建设的吗?如何实现每分钟生产千万级的实时特征?如何在70w+QPS的场景下实现4个9响应耗时在50毫秒的需求?本文将为大家介绍配送实时特征平台的发展历程,关键技术和实践经验。
Houye
2021/01/27
1.5K0
美团配送实时特征平台建设实践
美团跨端一体化富文本管理技术实践
为了减少产品和前端开发人员之间的矛盾,不断降本提效,美团医药技术部构建了跨端一体化富文本管理平台Page-佩奇。本文系统介绍了该平台的定位、设计思路、实现原理以及取得的成效。希望这些实战经验与总结,能给大家带来一些启发或帮助。
美团技术团队
2021/12/02
6900
美团跨端一体化富文本管理技术实践
2019大前端秘籍:贝壳找房多端提效和性能质量优化实践
6 月 20 日下午,GMTC 北京 2019 全球大前端技术大会「多端提效与质量优化实践」技术专场,来自贝壳找房的四位技术专家分别就“极限前端性能优化”、“贝壳找房 Node 服务稳定性建设”、“贝壳移动端监控建设实践”以及“ Flutter 在贝壳的接入实践”主题进行分享。InfoQ 对本专场的精华内容做了部分梳理和总结。
五月君
2019/11/06
1.6K0
2019大前端秘籍:贝壳找房多端提效和性能质量优化实践
美团终端消息投递服务Pike的演进之路
Pike 2.0致力于为美团提供一套易接入、高可靠、高性能的双向消息投递服务。本文首先从系统架构升级、工作模式升级、长稳保活机制升级等方面介绍了Pike 2.0的技术演进,然后介绍了Pike 2.0在直播、游戏等新业务场景下的特性支持。希望本文能给对消息投递服务感兴趣或者从事相关工作的读者一些帮助和启发。
美团技术团队
2021/07/30
9380
Kafka在美团数据平台的实践
总第526篇 2022年 第043篇 Kafka在美团数据平台承担着统一的数据缓存和分发的角色,随着数据量的增长,集群规模的扩大,Kafka面临的挑战也愈发严峻。本文分享了美团Kafka面临的实际挑战,以及美团针对性的一些优化工作,希望能给从事相关开发工作的同学带来帮助或启发。 1. 现状和挑战 1.1 现状 1.2 挑战 2. 读写延迟优化 2.1 概览 2.2 应用层 2.3 系统层 2.4 混合层-SSD新缓存架构 3. 大规模集群管理优化 3.1 隔离策略 3.2 全链路监控 3.3 服务生命周期
美团技术团队
2022/08/26
7670
Kafka在美团数据平台的实践
美团点评酒旅前端的技术体系
酒旅前端团队的技术体系 随着科技的发展,终端种类越来越丰富,前端作为连接用户终端与后端服务、提供视觉体验的关键环节,发展迅速。相比十年前,前端的边界和范围变得更加广泛,甚至有点模糊,一名优秀的前端工程师不仅需要精通自己的专业领域,了解设备终端的特点、OS、运行环境,同时还需要具备良好的审美和对用户体验的感觉,以及了解服务部署、服务运维的知识。 前端的知识领域也从最初的单点,扩展到了现在的网状结构;开发方式也从最初的页面级开发,发展到现在工程级的开发协作方式。技术体系归根结底是围绕业务发展、团队规模和团队特点
美团技术团队
2018/03/13
1.6K0
美团点评酒旅前端的技术体系
美团外卖特征平台的建设与实践
随着美团外卖业务的发展,算法模型也在不断演进迭代中。本文从特征框架演进、特征生产、特征获取计算以及训练样本生成四个方面介绍了美团外卖特征平台在建设与实践中的思考和优化思路。
肉眼品世界
2021/03/09
9080
美团外卖特征平台的建设与实践
美团智能支付稳定性测试实战
本文介绍了美团智能支付业务在稳定性方向遇到的挑战,并重点介绍QA在稳定性测试中的一些方法与实践。
美团技术团队
2019/01/09
1.5K0
美团到店终端从标准化到数字化的演进之路
本文整理自美团技术沙龙第76期《大前端研发协同效能提升与实践》。前端团队在产研多角色协同形式上存在不同阶段,而大前端多技术栈在各阶段都有其独特的实践,同时又有类似的演进路线。本文从到店终端团队移动端和前端技术栈持续交付演进历程展开,分享了大前端团队研发流程在“标准化”、“线上化”、“自动化”以及“数字化”的演进经验,并探讨了大前端多端DevOps建设思路和未来规划。
美团技术团队
2024/01/03
3680
美团到店终端从标准化到数字化的演进之路
推荐阅读
相关推荐
美团点评金融平台Web前端技术体系
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档