火山引擎 MARS-APMPlus X 美篇 | 形成应用性能全面监控,大幅提升APP稳定性

字节清韵
• 阅读 1459

火山引擎 MARS-APMPlus X 美篇 | 形成应用性能全面监控,大幅提升APP稳定性

本文主要介绍了美篇 App 通过使用火山引擎 APMPlus ,使应用性能的稳定性大幅提升的技术实践。 2月24日晚 MARS TALK 直播间,我们邀请了火山引擎 APMPlus 和美篇的研发工程师,为大家分享相关技术方案及实现细节。现在报名加入活动群 还有机会获得VR一体机——Pico Neo3哦!

一、「美篇」业务场景

美篇是南京蓝鲸人网络科技有限公司的主要产品,主打朋友圈的图文创作分享,定位为“不惑后”表达自我、结交同好、学习提升的互联网内容社区。
火山引擎 MARS-APMPlus X 美篇 | 形成应用性能全面监控,大幅提升APP稳定性

「美篇」业务规模:

自2015年7月正式上线以来,累计注册用户2亿,累计创作用户4000万 ,APP月活跃用户1200万, 日新增作品18万。 成立至今获得腾讯双百计划、经纬创投、真格基金、芒果文创基金等一线投资机构多轮累计1.8亿元融资,估值10亿元。2021年10月,美篇APP 7.0发布。

二、「美篇」业务痛点及问题

「美篇」业务现状形成的痛点
用户量快速增长:用户规模快速增长,创作用户突破4000万
海量内容沉淀:美篇作为一个强大的兴趣内容社区,拥有海量UGC图文&视频内容沉淀
多产品功能上线:话题热榜、线上课堂、笔友书信等内容
这些原因使应用平台承载信息量大幅上升,导致应用程序运行难度加大,稳定性受到威胁。

「美篇」遇到的问题及挑战
对于移动 App 的开发者来说,最基础也是最关注的问题就是应用程序的稳定性及用户体验。而崩溃问题和卡顿是影响应用稳定性及用户体验的关键因素。包括Java 崩溃、Native崩溃、 ANR ,卡顿等问题类型。 随着美篇产品功能的丰富及用户量的快速增长,OOM 及卡顿问题的优化和处理也日益重要。

三、MARS-APMPlus 的解决方案

产品优势

APMPlus是火山引擎应用开发套件MARS下的性能监控产品,通过先进的数据采集与监控技术,为企业提供全链路的应用性能监控服务,助力企业提升异常问题排查与解决的效率

基于海量数据的聚合分析,平台可帮助客户发现多类异常问题,并及时报警,做分配处理,同时平台提供了丰富的归因能力,包括且不限于异常分析、多维分析、自定义上报、单点日志查询等,结合灵活的报表能力可了解各类指标的趋势变化。APM Plus 应用性能监控已服务了抖音、今日头条等多个超大规模用户量级移动 App。

「美篇」解决方案简介

针对美篇 App的稳定性问题我们提供了Java 崩溃、Native崩溃、 ANR 等不同的异常类别监控,抓取成功率高,归因异常丰富。针对性能,我们提供了启动监控,页面监控,卡顿监控等流畅性类的监控,还有内存,CPU,电量等资源消耗问题的监控。同时提供网络耗时和异常监控,以及强大的单点分析和日志回捞能力分析单点问题。拥有事件自定义上报进行个性的打点监控,强大的看板进行多维度展示。数据采集提供采样和开关配置满足用户对数据量和成本的诉求,同时提供基础的报警能力对异常问题实时报警。针对跨平台方案提供WebView页面和Flutter监控。丰富的能力满足客户对App 全面性能监控 的诉求。

方案亮点

Java OOM监控提供全流程自动分析能力,准确定位Java内存问题。泄漏链、泄漏大小一目了然
ANR使用基于信号的捕获方案,更节省系统资源,准确度高,唯一做到提供现场消息调度图,高度还原现场主线程阻塞情况
做到真正解决Native(C/C++)崩溃的现场还原能力,提供了最有价值的Tombstone,精细还原现场。完整展示崩溃线程的进程信息,信号信息,寄存器信息,还原崩溃现场汇编指令,详细的maps,fd和内存信息
提供了高性能日志库,做到数据稳定性强、性能好,保障了现场业务信息的高度还原

四、实施效果

通过使用MARS-APMPlus 应用性能监控产品,并采用上述解决方案实施后,效果非常明显,应用程序的性能稳定得到了显著提升

卡顿下降:
火山引擎 MARS-APMPlus X 美篇 | 形成应用性能全面监控,大幅提升APP稳定性

OOM下降:
火山引擎 MARS-APMPlus X 美篇 | 形成应用性能全面监控,大幅提升APP稳定性

  • Android Java OOM降低了80%以上,从8月份的1.5%降低到12月底的0.1%
  • Android用户卡顿率降低了80%以上,Android用户卡顿率从8月份的11%降低到12月底的2%
  • iOS OOM 降低了 80%+,从 8 月份的 1.3% 降低到 12 月份的 0.2%
  • iOS 卡顿率降低了 90%+,从 8 月份的 1.1% 降低到 12 月份的 0.1%

更多技术实践细节 欢迎锁定 MARS TALK 04期直播间! 届时我们邀请了火山引擎 APMPlus 研发工程师王涛讲师和美篇研发工程师叶弯弯讲师,在线为大家分享「APMPlus 基于 Hprof 文件的 Java OOM 归因方案」「美篇基于MARS-APMPlus 性能监控工具的优化实践」等技术干货。

⏰ 直播时间:2月24日(周四) 20:00-21:30
💡 活动形式:线上直播
🙋 报名方式:扫描下方二维码进群参与报名
火山引擎 MARS-APMPlus X 美篇 | 形成应用性能全面监控,大幅提升APP稳定性

作为开年首期MARS TALK,本次我们准备了最新版VR一体机 —— Pico Neo3作为礼物送给大家,除此之外还有罗技M720蓝牙鼠标、筋膜枪及字节周边礼品等你来拿。走过路过 千万不要错过哟!

火山引擎 MARS-APMPlus X 美篇 | 形成应用性能全面监控,大幅提升APP稳定性

👉 点击这里,了解APMPlus

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
美凌格栋栋酱 美凌格栋栋酱
6个月前
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(
Wesley13 Wesley13
3年前
FLV文件格式
1.        FLV文件对齐方式FLV文件以大端对齐方式存放多字节整型。如存放数字无符号16位的数字300(0x012C),那么在FLV文件中存放的顺序是:|0x01|0x2C|。如果是无符号32位数字300(0x0000012C),那么在FLV文件中的存放顺序是:|0x00|0x00|0x00|0x01|0x2C。2.  
Stella981 Stella981
3年前
SpringBoot整合Redis乱码原因及解决方案
问题描述:springboot使用springdataredis存储数据时乱码rediskey/value出现\\xAC\\xED\\x00\\x05t\\x00\\x05问题分析:查看RedisTemplate类!(https://oscimg.oschina.net/oscnet/0a85565fa
Wesley13 Wesley13
3年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
3年前
PHP创建多级树型结构
<!lang:php<?php$areaarray(array('id'1,'pid'0,'name''中国'),array('id'5,'pid'0,'name''美国'),array('id'2,'pid'1,'name''吉林'),array('id'4,'pid'2,'n
Easter79 Easter79
3年前
SpringBoot整合Redis乱码原因及解决方案
问题描述:springboot使用springdataredis存储数据时乱码rediskey/value出现\\xAC\\xED\\x00\\x05t\\x00\\x05问题分析:查看RedisTemplate类!(https://oscimg.oschina.net/oscnet/0a85565fa
Wesley13 Wesley13
3年前
Java日期时间API系列36
  十二时辰,古代劳动人民把一昼夜划分成十二个时段,每一个时段叫一个时辰。二十四小时和十二时辰对照表:时辰时间24时制子时深夜11:00凌晨01:0023:0001:00丑时上午01:00上午03:0001:0003:00寅时上午03:00上午0
Wesley13 Wesley13
3年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Python进阶者 Python进阶者
1年前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这
字节清韵
字节清韵
Lv1
没资格吃的醋最酸,先动心的人最惨
文章
4
粉丝
0
获赞
0