开发者社区> 南迦FourFish> 正文

EMAS远程日志 - 移动端问题排查利器

简介: 远程日志是什么?具体做了哪些事情?内部是怎么实现的?本文将从 功能、架构、体验优化三个方面来介绍一下远程日志发展过程及展望。
+关注继续查看

阿里云 云原生应用研发平台EMAS 张月(此间)

前言

当 App 发布到用户手里之后,开发者对 App 运行状态的感知就只能通过各类业务和稳定性监控了。这些监控平台会把线上问题(如崩溃堆栈、异常网络请求等)及业务数据采集到服务端,然后给用户提供聚合 Metrics 等 BI 数据。但这个过程很容易丢失细节,不能直观反映问题发生原因,导致线上问题很难排查分析。

可能聪明的你会想,我把所有的日志都上报到后端不就行了?但是这样会给 App 带来很多无意义的网络消耗,也会造成比较大的网络和存储的压力。阿里云远程日志( https://www.aliyun.com/product/emascrash/tlog )在这个场景下应运而生,通过将日志存放 App 本地,需要时拉取的方式,在牺牲了一点实时性的情况下,解决了上报日志费流量存储,不上报日志没办法查问题的困境。

远程日志具体在里面做了哪些事情?内部又是怎么实现的?接下来我就会从 功能、架构、体验优化 三个方面来介绍一下远程日志发展过程,最后再聊聊我们的展望。

功能

如前言介绍的一样,我们会把日志先存在 App 本地,当需要的时候再拉取上来做分析查看。整个过程可以简单拆解成如下几步:
image.png

移动端特性

  • C层面实现:性能提升,一份代码多端支持
  • 加密存储:使用非对称加密方式,日志存储上报更安全
  • 日志轮转:最长支持7天日志存储,每天最大存储 10M
  • MMAP机制:避免缓存日志丢失,提升性能 (注:MMAP 机制是将文件直接映射成内存的操作,避免页缓存到文件的拷贝,详情可移步:https://www.cnblogs.com/huxiao-tee/p/4660352.html )

后端特性

远程日志的定位是异步拉取,把问题日志从移动设备端拉回来分析。结合不同使用场景,用户对设备精准度、拉取及时性、拉取成功率等不同侧重的特点,我们在拉取模式和产品联动上做了不同的实践。

拉取模式

精准拉取:指定设备列表

举个例子,一个风和日丽的上午,你刚到公司,发现老板满脸不爽的告诉你昨天晚上他 App 崩溃了。那摆在眼前就是两条路,要么搞定这个问题,要么“提桶跑路”。这个时候远程日志出场了,你可以熟练的输入老板的设备Id,做一次日志拉取,查查老板 App 的日志定位原因,解决问题。
image.png

这个模式下,用户使用面临了两个体验问题:

  • 拉取速度慢。下发拉取任务后,需要终端用户重新打开App才能完成日志上传,但这个时间很不可控。
  • 拉取成功率低。下发拉取任务会有部分设备inactive,导致没办法接受拉取指令,导致日志无法上传。

针对这个问题,我们在拉取上做了相关的优化,实现了智能筛选的功能。

智能筛选:指定筛选条件

用户不需要指定目标设备列表,而是关心某个或几个维度下的设备详细日志。那用户可以设定拉取的设备组合条件,系统自动帮用户选取设备。

为了加快设备拉取速度以及拉取成功率,远程日志在选取设备增加了如下策略:

  • 自动筛选最近启动的设备拉取。
  • 自动调整筛选出的设备池,扩大拉取规模,最多扩大到原始规模的8倍等。
    image.png

联动崩溃数据

在端上问题发生的场景中,大多数是因为崩溃或者异常行为。为了给与对这种场景支撑,我们提供了崩溃分析数据联动的支持,打破了「崩溃分析」 和「远程日志」两个产品之间的数据孤岛,提供了问题排查的更多的可能性。

数据联动:崩溃设备列表

通过崩溃分析提供崩溃设备列表,可以帮远程日志直接划定待拉取设备范围,用户更加省力,通过 EMAS 「崩溃分析」中的列表页一键跳转拉取。
image.png

这个方式极大简化了用户在排查崩溃相关问题时选定设备列表的工作,但对于每个崩溃问题还是需要创建拉取日志任务。这个拉取过程还是存在一个时间上的迟滞感,这不仅会打断工程师的排查思路,也会消磨排查问题的积极性。我们能否免除拉取动作,直接把崩溃问题对应的设备日志准备好呢?「智能拉取」就是为了解决这个场景的问题。

智能拉取:提前拉取

我们加深了前面的数据联动,对于首现和 Top 崩溃问题,每天7点定时创建任务,开发同学上班的时候基本上都已经拉取成功了,极大的提升了开发同学的问题排查效率。
image.png

架构

image.png

体验优化

除了在内功上打磨,产品的使用体验上我们也做了相当多的优化,也和大家分享一下。

  • 任务消息通知,让你能够第一时间感知日志上报
  • 整合任务详情与日志详情页面,查看任务日志更方便
  • 完善任务、设备、日志查询筛选
  • 任务时间线透出,感知任务生命周期
  • 顶部菜单栏变侧边栏,控制台与EMAS风格统一
  • 拉取任务持久化,容错性更好。
    image.png

image.png

到此,远程日志的现有的功能、架构和体验介绍就此结束了,接下来说说我们对未来的规划。

展望

增加上报形式

目前都是通过服务端下发任务,端上接受任务上报这种「被动上报」的模式,有一定的局限性,我们接下来希望对客户端在某些情况下「主动上报」日志,比如连续Crash,或者用户在App内反馈问题时上报做相应的支持。

丰富采集数据

现在我们的日志打印仅限于用户日志,还需要支持更多的无痕埋点,记录用户操作路径和网络IO等操作,让日志数据更丰富,能够通过日志复现用户操作流水,机器状态的变化。

更多产品联动

「崩溃分析」是我们产品联动的第一站,除了崩溃和异常,对品质有追求的App开发者也越发重视性能问题,毕竟「功能决定现在,性能决定未来」,后续我们也会思考和如何将「性能分析」产品和远程日志打通,更好的服务我们的用户。

移动研发平台 EMAS

阿里巴巴应用研发平台 EMAS 是国内领先的云原生应用研发平台(移动App、H5应用、小程序、Web应用等),基于广泛的云原生技术(Backend as a Service、Serverless、DevOps、低代码等),致力于为企业、开发者提供一站式的应用研发管理服务,涵盖开发、测试、运维、运营等应用全生命周期。
欢迎大家移步使用:https://cn.aliyun.com/product/emas

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
EMAS 远程日志-端上问题排查利器 | 学习笔记
快速学习 EMAS 远程日志-端上问题排查利器
135 0
阿里云EMAS移动测试,帮您快速掌握移动端兼容性测试技巧
兼容性测试用于验证应用在不同设备上进行安装/启动/登录/不同版本覆盖安装/卸载等操作时,是否存在兼容性问题;如界面适配问题、应用性能等,现阿里云EMAS套餐免费试用,帮您快速掌握移动端兼容性测试技巧。
358 0
阿里云EMAS远程日志发布新功能(支持移动端设备主动上报日志)
使用阿里云EMAS远程日志最新推出的主动上报日志服务,由移动端提供主动上报接口,通过代码逻辑控制是否主动上报设备日志,问题出现的同时获取设备日志,极大提升特殊场景的日志获取效率,提升问题排查体验和用户满意度。
462 0
阿里云移动研发平台 EMAS - 移动性能分析和远程日志(商业化)发布
信息摘要: APP 线上监控服务,感知线上体验问题,复杂问题可以拉取全量日志还原分析,快速定位问题。适用客户: 开发者 / 零售企业/ 金融保险行业 / 银行版本/规格功能: EMAS 面向移动APP,提供在线的质量监控服务:【性能分析】APP 线上启动分析、页面分析、地域分析、机型分析等产品性能,已于2019.
1236 0
阿里云 EMAS & 魔笔:4月产品动态
阿里云移动研发平台EMAS & 低代码开发平台魔笔 4月产品动态已更新:移动测试iOS开启辅助触控,支持多指划屏体验;移动推送发布官方开源ReactNative插件;魔笔新增多种组件物料和功能模块,上线更多套餐选购版本,优化多种用户体验板块!
73 0
阿里云 EMAS & 魔笔:3月产品动态
阿里云移动研发平台EMAS & 低代码开发平台魔笔(Mobi)3月产品动态已更新:云发布支持发布单版本校验规则动态配置;移动测试支持录制脚本使用appium 2.0框架;移动推送支持vivo和华为的消息/通知类型参数;魔笔发布 v1.6 版本,新增并优化多种功能、组件、模块,同时完善了魔笔教学体系,让用户拥有更好的体验!
90 0
阿里云EMAS移动测试最佳实践——马来西亚第一大电子钱包通过EMAS测试提效6倍
阿里云EMAS移动测试与Touch'n Go eWallet的合作是EMAS移动研发产品“出海”的良好开端。目前为止,EMAS移动测试已服务国内外数以千计的企业,沉淀了丰富的企业移动数字化转型方案与经验。在未来,EMAS会持续为企业移动应用APP质量保驾护航,为更多像Touch'n Go eWallet这样的优质客户提供各类高品质的移动研发服务。
421 0
阿里云EMAS:2月产品动态
阿里云移动研发平台EMAS 2023年2月产品动态已更新,上线EMAS定制版套餐、移动测试支持一键重跑、专享设备等功能; 云构建发布新的android镜像java-11-base;移动推送支持Flutter插件、多条通知折叠展示等功能,多项升级服务旨在为您带来更好的产品体验!
131 0
阿里云 EMAS & 魔笔 :1月产品动态
阿里云移动研发平台EMAS & 低代码开发平台魔笔(Mobi)1月产品动态更新,新增Native指纹解锁和手势解锁等组件;支持构建H5应用流水线、支持发布H5应用;iOS支持大写字母包名重签名;应用开放平台1.0发布;EMAS Serverless 优化函数访问数据库等服务网络延迟;移动推送发布Android 3.8.2;EMAS Surperapp解决方案全球发布;上线魔笔独立站、魔笔物料市场等。
203 0
阿里云EMAS-专家测试服务iOS和Android上百种机型性能、兼容及UI等测试
阿里云EMAS测试专家有着集团内部多个日活过亿规模APP经验,提供EMAS专家测试,客户只需提交测试需求,从用例设计、脚本录制、海量机型测试、整理测试结果、48小时输出专家测试报告均由阿里云EMAS测试专家一站式服务完成。覆盖功能测试、深度兼容测试、性能测试、UI适配测试以及隐私合规检测等,帮助用户以更低成本获得高质量的全面测试能力,可用于APP正式发版前验收,规避手机APP上线前或发版过程中各类隐患。
246 0
+关注
南迦FourFish
文章
问答
视频
来源圈子
更多
基于阿里巴巴以及合作伙伴的最佳实践,围绕大前端、云原生领域的相关技术热点(小程序、Serverless、应用中间件、低代码、DevOps)展开行业探讨,与开发者一起探寻云原生时代应用研发的新范式。
+ 订阅
相关文档: 移动研发平台
文章排行榜
最热
最新
相关电子书
更多
无需从0开发-1天上手智能语音离在线方案
立即下载
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载