2021阿里云峰会|友盟+:以一站式应用性能监控平台,为应用“维稳”赋能

本文涉及的产品
应用实时监控服务-应用监控,每月50GB免费额度
日志服务 SLS,月写入数据量 50GB 1个月
应用实时监控服务-用户体验监控,每月100OCU免费额度
简介: 5月28日--29日,"2021阿里云峰会暨阿里云开发者大会"在北京国家会议中心举行,此次峰会以“云上创新”为主题,阿里云与众多嘉宾、合作伙伴共同探讨了企业数字创新的新思路、新策略、新产品、新方案,展开“云上创新”的全景图。会上,友盟+高级技术专家李成亮带来了“如何保证移动应用稳定性”这一议题的分享。

5月28日--29日,"2021阿里云峰会暨阿里云开发者大会"在北京国家会议中心举行,此次峰会以“云上创新”为主题,阿里云与众多嘉宾、合作伙伴共同探讨了企业数字创新的新思路、新策略、新产品、新方案,展开“云上创新”的全景图。会上,友盟+高级技术专家李成亮带来了“如何保证移动应用稳定性”这一议题的分享。

不同于其他嘉宾所置身的服务端发布、代码管理等领域,李成亮的关注点更多在于如何帮助手机上的App“维稳”,让这些应用避免发生崩溃、卡死等问题。

1.png

(图为:友盟+高级技术专家 李成亮)

李成亮表示,目前大部分的App应用,在稳定性上做的还远远不够。前不久,友盟+发布了《2021Q1,友盟+移动应用性能体验白皮书》。根据白皮书数据,移动应用整体的崩溃率是0.29%。但是,李成亮认为,一个应用的崩溃率达到千分之一才是及格的水平,目前大部分应用在降低崩溃率的道路上仍然道阻且长。

2.png

不止如此,从另一个角度来看,DAU越大的应用,崩溃率反而越低:DAU大于100万的应用,崩溃率是低于平均水平的,反之,DAU在1万到100万区间的应用,崩溃率则高于平均水平。

“这就说明,越是头部的大公司,越有资源、有技术做移动应用性能相关的治理,而一些普通的公司在这方面既有迫切的需求,又需要提升相关的能力。”李成亮感慨道。

3.png

面对各行各业存在的应用崩溃问题,友盟+致力于赋能开发者、帮助客户“维稳”、增长。截止2020年6月,友盟+服务了200万+ App、890万+网站,在行业十年如一日的深耕中,形成了一流的技术研发能力。

应用性能稳定是良好用户体验中非常关键的一环,而现实情况却是应用崩溃、卡顿、加载缓慢、页面白屏等问题,频频出现在用户的真实体验之中,成为影响业务表现的直接杀手。那么,李成亮团队是如何为开发者赋能、解决崩溃等影响应用性能稳定的问题呢?

移动应用性能监控平台:从监控、告警、分析,到提供解决方案、验证的一条龙服务

事实上,应用崩溃率居高不下的根本原因,在于稳定性问题的不可控:尽管开发者在研发到上线的整个过程中做了很多努力,仍然没有办法避免应用上线后在稳定性方面出现各式各样的问题。

“在研发阶段,工程师大多比较注重功能的开发,不一定会考虑到应用的稳定性因素;在测试阶段,又面临着测试用例覆盖不全等棘手的问题,尤其是对一些极限或边缘的case考虑较少;在灰度阶段,又存在灰度样本不足等问题;而到了全量上线阶段,又会发现终端用户的使用环境复杂多变。总之,上线后仍然存在着各式各样、意想不到的复杂问题。”李成亮总结。

那么,如何发现并解决这些问题?在调研了业界的诸多企业及解决方案后,李成亮及团队研发了友盟+移动应用性能监控平台U-APM。

首先,移动应用性能监控平台U-APM可以对应用崩溃、错误进行实时的监控和分析,也能够对游戏引擎崩溃,卡顿等状况进行分析。未来,平台也会支持对页面、网络、内存等方面进行分析,能够让用户全面了解当前的应用性能的状况。

4.png

其次,U-APM平台还有智能告警这一功能:当应用出现问题的时候,会第一时间收到告警,从而让用户快速分析,快速定位。移动应用性能监控平台支持多个纬度的分析,包括单个设备、全链路、甚至应用整个生命周期的状况的分析。

不止如此,U-APM平台还可以进行智能诊断,在发现问题后,还会给出一些解决问题的方案、方法。最后,U-APM平台还提供云真机功能,支持开发者对崩溃问题进行复现、验证。为移动开发者提供了灵活地测试操作界面,支持ADB调试、WEB远程调试、扫码、抓包、虚拟定位等测试功能,并提供了测试报告供开发者后续查看。可以说,移动应用性能监控平台U-APM完整地构建了一个从监控到报警、到分析原因,再到给出解决方案,最后针对问题做复现和验证的全链路闭环能力。

业务能力领先业界:细数移动应用性能监控平台的技术特点

首先,友盟+移动应用性能监控平台U-APM具有实时、全面监控应用崩溃的能力。除了常规的应用崩溃以外,极限条件下的崩溃,平台也能捕获到。

“比如说安卓手机第三方ROM的兼容性导致应用出问题、或者应用中的某些组件直接调用exit(0)、内存发生OOM、应用被系统强制杀死等情况,我们都能捕获到。另外对于手机的一些硬件问题,比如温度过热导致系统被杀死等情况,也能捕获。”李成亮举例道。

第二大特点是U-APM对ANR的捕获能力业界领先。

李成亮表示,传统方案主要是通过监控手机上的日志来监控,但传统方案实际上是有些问题的。一大问题就是如果日志生成出问题,则捕获不到ANR;还有一个问题是监控时可能ANR的场景已经发生完了,生成日志所处的环境实际上已经靠后,就有可能错过了ANR的真正发生的时期。

5.png

而友盟+的方案实际上是直接截获了系统层SIGQUIT信号:如图所示,蓝色的是平台构建的信号拦截器,绿色的是系统拦截器,橙色的是平台的链路,黄色是系统链路。在发生ANR的时候,平台直接拦截到了这个信号,平台拦截器截获信号后调用系统Trace模块,生成有时效性的日志。

“值得一提的是,在这个过程中我们还加入很多额外的信息,我们生成的日志比系统的Trace还要更加丰富。”李成亮表示。一系列操作下来,平台就会很好地捕获ANR发生的时间点,更准确的生成日志信息。

第三大特点就是上述提到的智能诊断功能。作为开发者,当你遇到一个问题的时候,很大概率上,这个问题已经被别人遇到过、解决过了。我们往往就把错误的提示拿到网上搜索,看看有什么解决方案。

具体说来,监控平台把市面上常见的一些移动端的问题做了梳理,形成上百个案例。这样,开发者在后台查看错误信息的时候,就能够看到错误信息对应的解决方案,以及这个解决方案的优点和弊端。与此同时,方案知识库也在不断更新、发展,与时俱进。

第四大特点是云真机模块的优越性:机型全面,功能强大。

“目前,云真机平台上有130多款主流的机型,我们做移动端测试的时候,不可能买那么多手机做测试,然而现实中常常会出现某个机型独有、其他机型没有的问题。所以这个时候,我们首先想到的就是在同样机型上把问题复现出来。”

云真机除了可以帮助用户做应用问题排查以外,还支持网络抓包、页面的调试、ADB远程调试等功能。值得一提的是,目前市面上云真机都是按照时间来收费且计费昂贵,而友盟+的云真机提供了很多免费时长给开发者使用。

6.png

第五大特点是智能告警功能,用户可以灵活的制定告警规则,设置很多告警的条件,比如发生某一类型的错误、错误次数满足某种规则、在某些版本上发生等等,满足这些条件以后,在某个设置的时间触达开发者。

平台支持的告警渠道也很多,如钉钉、飞书、企业微信等,一旦线上发生问题,可以通过这些手机软件及时获得问题告警的通知。

“在服务开发者的过程中,很多开发者自己也有业务后台,希望把友盟+的数据导入到开发者自己的业务系统中去。为了满足这个需求,我们可以通过SDK采集数据指标,然后针对这些指标做处理、计算、解析,再把最终的结果数据通过API的方式发给客户的平台。”李成亮介绍了U-APM平台的开放能力。

由此,客户可以在自己的业务平台上完成信息的流转和处理,达到降本增效的效果。

戮力同心、力争上游:友盟+携手阿里云,赋能更多开发者

千人同心,则得千人之力。在服务开发者、赋能开发者的使命和目标上,友盟+跟阿里云是一致的。因此,友盟+和阿里云有着诸多合作,二者共同在“服务开发者”这一愿景上强强联手。

虽然移动应用性能监控U-APM平台是友盟+开发的,但实际上,许多底层技术都离不开阿里体系的技术助力,同时,这套应用性能监控技术也服务着阿里体系内部的众多App。

在开发者服务方面,友盟+的应用性能监控平台U-APM已经服务了上万家的客户,如唱吧、什么值得买、中华万年历等。

“客户其实有很多痛点,比如监控服务不稳定,监控指标不全面,报警方式不智能等等。我们的平台都会针对客户的痛点,解决他们遇到的问题,同时立足于他们的诉求,去提供更多更细的服务,得到了客户非常好的反馈与评价。”李成亮表示。

7.png

不忘初心,方得始终。长期以来,友盟+以“数据智能,驱动业务增长”为使命,基于技术与算法能力,结合全域数据资源,通过AI赋能的一站式互联网数据产品与服务体系,在帮助企业实现深度用户洞察、实时业务决策和持续业务增长等方面,全面助力开发者成功。

相关实践学习
通过云拨测对指定服务器进行Ping/DNS监测
本实验将通过云拨测对指定服务器进行Ping/DNS监测,评估网站服务质量和用户体验。
相关文章
电子书阅读分享《Elasticsearch全观测技术解析与应用(构建日志、指标、APM统一观测平台)》
电子书阅读分享《Elasticsearch全观测技术解析与应用(构建日志、指标、APM统一观测平台)》
|
Prometheus 监控 Cloud Native
【云原生】Docker容器命令监控+Prometheus监控平台
【云原生】Docker容器命令监控+Prometheus监控平台
537 0
【云原生】Docker容器命令监控+Prometheus监控平台
|
4月前
|
监控 Kubernetes Go
全链路追踪 & 性能监控,GO 应用可观测全面升级
当前,大多数面向 Golang 应用的监控能力主要是通过 SDK 方式接入,需要开放人员手动进行埋点,会存在一定问题。对此,可观测 Go Agent 应运而生。本文介绍的阿里云可观测 Go Agent 方案,能通过无侵入的方式实现应用监控能力。
108699 23
|
3月前
|
监控 Java 开发者
揭秘Struts 2性能监控:选对工具与方法,让你的应用跑得更快,赢在起跑线上!
【8月更文挑战第31天】在企业级应用开发中,性能监控对系统的稳定运行至关重要。针对流行的Java EE框架Struts 2,本文探讨了性能监控的工具与方法,包括商用的JProfiler、免费的VisualVM以及Struts 2自带的性能监控插件。通过示例代码展示了如何在实际项目中实施这些监控手段,帮助开发者发现和解决性能瓶颈,确保应用在高并发、高负载环境下稳定运行。选择合适的监控工具需综合考虑项目需求、成本、易用性和可扩展性等因素。
43 0
|
3月前
|
Prometheus 监控 Cloud Native
性能监控之 Golang 应用接入 Prometheus 监控
【8月更文挑战第4天】性能监控之 Golang 应用接入 Prometheus 监控
202 0
性能监控之 Golang 应用接入 Prometheus 监控
|
4月前
|
缓存 监控 Java
Spring Boot应用的性能监控与优化
Spring Boot应用的性能监控与优化
|
5月前
|
监控 Java 数据安全/隐私保护
性能监控之 JMX 监控 Docker 容器中的 Java 应用
【6月更文挑战9天】性能监控之 JMX 监控 Docker 容器中的 Java 应用
639 1
|
4月前
|
运维 监控 Java
Spring Boot应用的性能监控与优化指南
Spring Boot应用的性能监控与优化指南
|
6月前
|
Prometheus 监控 Cloud Native
Prometheus监控平台配置--监控集群资源信息
在scrape_configs 配置项下添加Linux 监控的job,其中 IP 修改为上面部署node_exporter机器的ip,端口号为9100,需要注意缩进。
247 6
|
6月前
|
运维 监控 Linux
提升系统稳定性:Linux服务器性能监控与故障排查实践深入理解与实践:持续集成在软件测试中的应用
【5月更文挑战第27天】在互联网服务日益增长的今天,保障Linux服务器的性能和稳定性对于企业运维至关重要。本文将详细探讨Linux服务器性能监控的工具选择、故障排查流程以及优化策略,旨在帮助运维人员快速定位问题并提升系统的整体运行效率。通过实际案例分析,我们将展示如何利用系统资源监控、日志分析和性能调优等手段,有效预防和解决服务器性能瓶颈。