在快速迭代的业务需求下,难免会出现一些线上 bug ,特别是在 SaaS 业务领域,线上 bug 对于商家来说大概率会影响经营,严重的话很可能引发故障。所以,我们对线上质量要求很高。针对线上 bug ,除了商家主动上报问题,后端还有自己的天网监控体系,进行主动发现问题,那移动端如何进行主动防控呢?所以我们也需要自己的主动防控平台。
为什么不可以直接使用后端的天网系统?
从功能来看,后端的天网更像一个线上接口日志存储,结合监控配置能力进行预警处理。经过分析,后端天网无法满足移动端的使用场景。
提高客户端线上质量,减少线上问题,主动发现与预防线上问题,及时报警与处理,降低线上问题的影响面。做到防患于未然。
根据以上背景,可以得知,移动端天网平台相对于后端天网平台更复杂,涉及的技术点也比较多,主要有客户端、 PC 后台管理(下面内容简称 mpaas )、后端服务、数据存储等。
整体流程是可以区分两部分,一部分为日志上报流程,数据来源是业务方客户端,另一部分为日志操作流程,操作方是 mpaas 后台。这两者的区别,主要是一个是数据的来源方,另一个是数据的使用方。
客户端上处理流程相对来说没有那么复杂,主要就是数据的采集与上报。其中核心逻辑都在业务服务中进行,比如日志内容整合,触发通知逻辑等。
mpaas 平台,是整个处理和报警的核心。提供问题查看、分配人员、状态变更、问题备注、通知策略等功能。
为什么我们自己做了数据存储以及移动天网平台,为什么还会依赖 skyLog 呢?
主要原因是,我们天网上报数据是区分等级,存在 info 、warning 、error 三个等级,对应上报问题等级不同,通知策略与处理流程也会有区别,但都是需要记录到 skyLog 日志平台上,类似打 log 日志。目前 info 级别的数据是不会存储到移动天网服务中,因为打日志内容不在报警范围内,所以查询打的日志内容就需要到 skyLog 平台上查询。具体两者区别参考前面第一部分背景介绍。
公司内部使用企业微信,针对企业微信可以自定义消息通知以及群机器人功能,可以使用企微提供的公开接口进行调用,很方便的实现通知报警能力,可针对不同业务场景,定制不同消息通知。针对本平台,当触发报警,比如 error 级别问题上报(后面会有具体通知策略分析),则会通过消息给负责人推送系统消息,以及群机器人触发报警。
例:零售移动天网报警群机器人
具体使用参考企业微信官网 api:https://work.weixin.qq.com/api/doc/90000/90135/90235
目前该平台对接的业务方,主要是针对的是公司各业务团队的移动端业务,日志的上报基础能力集中 Zanlogger 日志二方库。同时基于目前混合开发的现状,开发了 ZanlogWeex 和 ZanlogFlutterPlugin 来实现 Flutter 和 Weex 页面的日志需求。
首先看下日志内容的组成:
其中,基础信息由 Zanlogger 自主收集,业务方使用的时候,只需关注相关业务信息。
//天网日志上报
Log.sky("info", "sale", "startPay", "goods is xxxxx")
Log.sky("warn", "sale", "changePriceFailed", "goods is xxxxx")
Log.sky("error", "sale", "db can not open", "error:xxxx")
设备型号,系统 os 版本,应用版本,用户 id ,店铺 id 等基础信息,在同个设备的大部分时间段内,都是相同的。考虑到流量和效率问题,没必要每条日志都上传。
Zanlogger 的实现方式是,应用启动时,获取设备唯一标识,上传一次基础信息。业务日志上报时,只需上传设备唯一标识。后端服务收到消息时,通过唯一标识获取基础信息,组合成完整的日志。
移动天网平台支持 error,warning,info 三种级别的日志上报,针对不同级别的上报信息,触发接口上报的时机也不同。
为了担心数据量太小,buffer 一直未达到上报的条件,或者网络原因,但是一直上传失败,同时会设置指定时间(例如 30s )的轮询机制,一旦发现有未上传的日志,立即上报。
实际场景中,日志的上报频率,和日志的内容大小是不确定的,基于性能考虑,后端的数据存储流程如下:
原因是,相较于 RDS ,HBase 更适合适合大数量的存储,于是日志完整内容存放在 HBase,两者通过每条日志存储时,生成的 uuid 关联。日志的频繁上报,使用 kafka ,保证峰值处理能力。
存储位置的问题解决后,接下来思考的是日志该以什么维度进行分组?
移动日志的解决方案是聚合 biz + sign + type + level + os ,取其 hashcode 。
这里为什么会将系统 os 作为分组因子呢?这里的原因是,基于现有场景分析,存在 pad 和 phone 同一个 sign 的报警,大概率是不同的代码流程导致的,应该视为不同问题去排查和分析。
当 error 日志上报后,后端会通过企业微信服务,向指定的群发送消息,并且 @指定的人,影响范围大的问题甚至需要 @所有人。信息论中有个定律:“信息量越大,信息熵越小”,所以为了保证群消息的关注度,在保证关键信息触达的前提下,对群内成员减少不必要的打扰。
因此不是所有信息都需要发送到群消息,比较建议群通知的场景如下:
以上是我们提供的默认配置,也支持让业务方自定义。下一章节中会讲到相关自定义配置功能。
报警策略流程中需要用到以下概念:
完整的报警策略流程如下:
该平台的核心功能就是对于上报问题的报警通知能力与处理能力,以及相关报警配置策略。这里对于客户端的上报相关没有什么可讲的,相关的数据上报策略前面也有讲。这里主要针对 mpaas 平台进行功能与策略介绍。
问题列表页面:
问题列表主要展示上报的所有问题,上报时相同的问题会进行聚合,列表中每一条数据,代表相同一类问题。同时支持多种筛选条件进行快速查找。
问题详情页面:
针对每一类问题,点击详情进行查看上报的具体信息。详情中,会包含该类问题的所有上报信息,每次上报问题都可以查看具体上报内容信息,然后进行问题分析。
当问题上报上来时,会默认进行分配给上一次处理该问题的人员,如果是新问题则会分配给对应业务 owner 进行处理。当问题在解决时,需要对问题人员及状态等进行变更。
针对问题处理的操作,主要有状态、人员、备注信息。如果状态为待发版或者已上线,则需要填写修复版本,用来保证该问题在低版本的误报情况,如果问题存在问题链接,则需要填写关联问题文档,方便后续查看与统计使用。
前面有讲到,报警能力主要依赖企业微信进行通知到相关的人和群。实现自定义报警策略,那就需要相关策略配置功能页面。
3.1 配置后台页面
报警策略列表页面:
报警策略配置页面:
配置页面可以根据业务方需求,自行添加应用配置策略,可根据 error 和 warning 级别分别设置配置策略信息。在问题上报后,会根据不用业务方应用( biz )进行识别,采用对应的配置信息进行报警。
3.2 通知模板
通知模板主要分为三类,个人及群消息通知,日报和周报。
个人及群消息通知,主要是针对新问题及操作变更时进行通知。日报和周报更多的是关注统计相关的数据,针对上报问题日报情况,可以看出当日问题的处理情况,周报数量统计,可以看出本周的概要情况。
对于移动端来说,线上问题的发生是比较严重的问题,特别是在零售这种线下场景,很可能一个问题会给商家带来资损的问题,所以对于移动端的质量问题要有高标准。除了开发阶段的 code review 和自测,测试阶段的自动化测试和人工测试,我们如何主动监控线上问题的发生就成了关键,移动天网平台的搭建就是解决线上主动监控的空缺。
目前移动天网平台在线上已经跑了近半年时间,其中有效帮助移动端主动发现线上问题数量占比已经达到 20% 。对于主动发现的问题,我们快速响应进行解决,目前主动发现的问题商家没有再进行上报。这对于商家和服务同学,以及开发都是一种效率和质量的提升。
本文由哈喽比特于3年以前收录,如有侵权请联系我们。
文章来源:https://mp.weixin.qq.com/s/a5QiuCYTwzUFWjKGYHBJlQ
京东创始人刘强东和其妻子章泽天最近成为了互联网舆论关注的焦点。有关他们“移民美国”和在美国购买豪宅的传言在互联网上广泛传播。然而,京东官方通过微博发言人发布的消息澄清了这些传言,称这些言论纯属虚假信息和蓄意捏造。
日前,据博主“@超能数码君老周”爆料,国内三大运营商中国移动、中国电信和中国联通预计将集体采购百万台规模的华为Mate60系列手机。
据报道,荷兰半导体设备公司ASML正看到美国对华遏制政策的负面影响。阿斯麦(ASML)CEO彼得·温宁克在一档电视节目中分享了他对中国大陆问题以及该公司面临的出口管制和保护主义的看法。彼得曾在多个场合表达了他对出口管制以及中荷经济关系的担忧。
今年早些时候,抖音悄然上线了一款名为“青桃”的 App,Slogan 为“看见你的热爱”,根据应用介绍可知,“青桃”是一个属于年轻人的兴趣知识视频平台,由抖音官方出品的中长视频关联版本,整体风格有些类似B站。
日前,威马汽车首席数据官梅松林转发了一份“世界各国地区拥车率排行榜”,同时,他发文表示:中国汽车普及率低于非洲国家尼日利亚,每百户家庭仅17户有车。意大利世界排名第一,每十户中九户有车。
近日,一项新的研究发现,维生素 C 和 E 等抗氧化剂会激活一种机制,刺激癌症肿瘤中新血管的生长,帮助它们生长和扩散。
据媒体援引消息人士报道,苹果公司正在测试使用3D打印技术来生产其智能手表的钢质底盘。消息传出后,3D系统一度大涨超10%,不过截至周三收盘,该股涨幅回落至2%以内。
9月2日,坐拥千万粉丝的网红主播“秀才”账号被封禁,在社交媒体平台上引发热议。平台相关负责人表示,“秀才”账号违反平台相关规定,已封禁。据知情人士透露,秀才近期被举报存在违法行为,这可能是他被封禁的部分原因。据悉,“秀才”年龄39岁,是安徽省亳州市蒙城县人,抖音网红,粉丝数量超1200万。他曾被称为“中老年...
9月3日消息,亚马逊的一些股东,包括持有该公司股票的一家养老基金,日前对亚马逊、其创始人贝索斯和其董事会提起诉讼,指控他们在为 Project Kuiper 卫星星座项目购买发射服务时“违反了信义义务”。
据消息,为推广自家应用,苹果现推出了一个名为“Apps by Apple”的网站,展示了苹果为旗下产品(如 iPhone、iPad、Apple Watch、Mac 和 Apple TV)开发的各种应用程序。
特斯拉本周在美国大幅下调Model S和X售价,引发了该公司一些最坚定支持者的不满。知名特斯拉多头、未来基金(Future Fund)管理合伙人加里·布莱克发帖称,降价是一种“短期麻醉剂”,会让潜在客户等待进一步降价。
据外媒9月2日报道,荷兰半导体设备制造商阿斯麦称,尽管荷兰政府颁布的半导体设备出口管制新规9月正式生效,但该公司已获得在2023年底以前向中国运送受限制芯片制造机器的许可。
近日,根据美国证券交易委员会的文件显示,苹果卫星服务提供商 Globalstar 近期向马斯克旗下的 SpaceX 支付 6400 万美元(约 4.65 亿元人民币)。用于在 2023-2025 年期间,发射卫星,进一步扩展苹果 iPhone 系列的 SOS 卫星服务。
据报道,马斯克旗下社交平台𝕏(推特)日前调整了隐私政策,允许 𝕏 使用用户发布的信息来训练其人工智能(AI)模型。新的隐私政策将于 9 月 29 日生效。新政策规定,𝕏可能会使用所收集到的平台信息和公开可用的信息,来帮助训练 𝕏 的机器学习或人工智能模型。
9月2日,荣耀CEO赵明在采访中谈及华为手机回归时表示,替老同事们高兴,觉得手机行业,由于华为的回归,让竞争充满了更多的可能性和更多的魅力,对行业来说也是件好事。
《自然》30日发表的一篇论文报道了一个名为Swift的人工智能(AI)系统,该系统驾驶无人机的能力可在真实世界中一对一冠军赛里战胜人类对手。
近日,非营利组织纽约真菌学会(NYMS)发出警告,表示亚马逊为代表的电商平台上,充斥着各种AI生成的蘑菇觅食科普书籍,其中存在诸多错误。
社交媒体平台𝕏(原推特)新隐私政策提到:“在您同意的情况下,我们可能出于安全、安保和身份识别目的收集和使用您的生物识别信息。”
2023年德国柏林消费电子展上,各大企业都带来了最新的理念和产品,而高端化、本土化的中国产品正在不断吸引欧洲等国际市场的目光。
罗永浩日前在直播中吐槽苹果即将推出的 iPhone 新品,具体内容为:“以我对我‘子公司’的了解,我认为 iPhone 15 跟 iPhone 14 不会有什么区别的,除了序(列)号变了,这个‘不要脸’的东西,这个‘臭厨子’。