首页 » 排名链接 » APP日志远程采集系统(日志用户直播文件采集)

APP日志远程采集系统(日志用户直播文件采集)

乖囧猫 2024-10-24 19:48:27 0

扫一扫用手机浏览

文章目录 [+]

日志在应用产品的整个生命周期中扮演着重要的角色。
软件开发过程中,日志能够帮助开发人员及时识别程序中的逻辑错误;而在产品发布到市场后,通过分析相关日志,可以解决各种疑难杂症。

二、背景

微盟直播 APP 上线后,商家反馈的一些直播问题例如直播卡顿、直播黑屏、用户评论没有正常展示、推流异常,在我们的测试中无法复现。
因为直播 APP 具有特殊性,直播体验受到多个因素的影响,包括网络、手机性能和用户操作行为等。
网络问题可能导致直播流畅度和清晰度的下降,而服务器问题可能导致直播卡顿和断流等问题。
此外,直播流的编码格式、码率和分辨率等因素也可能影响直播的质量。
客户端问题也是可能导致直播 APP 无法正常运行或出现各种异常的原因。
出现相同现象的问题可能涉及多个方面,需要进行综合分析和处理。
为了快速定位问题并解决,我们需要拿到相应的日志信息。

APP日志远程采集系统(日志用户直播文件采集) 排名链接
(图片来自网络侵删)

然而,目前大多数 APP 获取日志的方法是在某个页面提供上传日志的按钮,这种方法存在一个较大的弊端。
如果用户此时不在指定页面,或者不想停止当前操作,日志文件无法上传,也就无法及时协助排查并解决问题。
例如直播 APP,用户如果在直播过程中出现问题,此时用户是不方便暂停直播去上传日志信息,所以就需要一种快速拿到 APP 日志的方式,并且不需要用户特殊操作。

三、需求分析

为了快速定位和解决用户直播过程中的问题,提升产品质量和用户体验,需要在用户无感知的前提下拿到相关日志,并不影响用户的正常操作。
所以需要 APP 日志采集回捞功能,并且日志采集回捞功能要满足以下条件。

1.安全稳定:必须保证写入的日志安全,以防敏感数据泄露,同时写入操作持续时间和应用的生命周期基本一致,不能因为日志组件影响应用程序性能,导致整个应用的崩溃、卡顿不流畅。

2.完整不丢失:日志组件本身就是为排查异常问题而生,在应用前台、后台常规场景,被杀掉,要保证日志的完整性

3.精准回捞:能准确回捞用户反馈的日志。

4.合理存储:管理存储日志,尽量少占用用户设备的存储空间。

四、技术方案

4.1 整体技术方案

APP日志采集回捞整体的流程 :

1、在直播 APP 中嵌入日志采集模块,并记录需要捕获的日志信息,如 APP 运行状态、错误日志等。

2、用户使用 APP 时,日志采集模块会自动捕获相关信息,并将其保存在本地设备中,等待上传。

3、当 APP 出现问题需要排查时,研发通过特定的方式触发日志上传,也支持用户手动上传。

4、APP 将本地缓存的日志文件上传到服务器中,研发人员可以通过服务器获取日志文件,进行分析和处理。

5、研发人员分析日志文件,定位问题,并进行解决。

4.2 具体实现

按照整体功能具体可以分为日志采集、日志回捞、管理后台三部分。

4.2.1 日志写入

日志写入是日志采集回捞组件的重要部分。
写入模块采用多线性支持异步写入,AES 加密,支持日志自动管理。

为什么要设置阀值?

设置阀值可以避免长时间保存日志,导致文件不断增大,占用用户手机存储空间。
我们根据实际情况,使用20天作为阀值来对日志进行管理。
当 APP 存储的日志文件超过20天时,系统会自动删除旧日志文件,从而保证用户手机存储空间的大小。
这样,我们可以在不占用过多用户存储空间的前提下,保证日志的完整性和有效性,为后续的问题排查提供有力支持。

为什么要用 AES 加密?

安全性高:AES是一种非常安全的加密算法,采用AES加密后的数据极难被破解,可以保证数据在传输过程中的安全性。
速度快:AES加密算法的加密速度非常快,可以在极短的时间内对数据进行加密,可扩展性强:AES加密算法可以根据需要进行扩展,可以使用不同的密钥长度进行加密,从而更好地保护数据的安全性。

这是AES加密后的日志文件:

4.2.2日志回捞

利用 GTSDK 实现回捞。
用户使用 APP 时候绑定用户信息(wid bosId vId)和GTID。
出现问题时候,管理后台检测用户推送在线状态,并进行指令推送。
APP 收到指令推送后,把本地的日志 文件和第三方 SDK 相关的日志文件进行打包并整体压缩上传服务端。

为什么要将第三方SDK日志打包上传?

在直播过程中,应用程序使用一些第三方 SDK,如 IMSDK、推拉流 SDK。
在排查一些疑难问题时,需要相关的 SDK 日志,因此为了排查具体原因提高应用程序的稳定性,需要将第三方 SDK 日志一起打包上传。

关于日志的压缩方式,目前有两种方式:集中压缩和流式压缩。
流式压缩的缺点是压缩比较低,但随着日志写入同时进行压缩,占用存储空间少,把压缩时间分散在整个生命周期内,避免 CPU 峰值飙升问题。
相比之下,集中压缩的优点是压缩比较高,但缺点是占用设备存储空间太大,容易造成 CPU 峰值飙升。
考虑到稳定性、使用场景、存储空间、后期解密等问题,我们采用了集中压缩方式。
最后,压缩的目的是为了减少上传日志所消耗的流量,同时避免文件过大影响上传成功率。

4.2.3管理平台

管理平台支持用户标识,包括手机号、用户 Wid、场次 ID 查询。
发送采集指令,查询相关日志,解密日志文件。

五、实践

通过上线日志采集回捞功能,在后续实际使用过程中陆续解决了用户评论不展示、黑屏、推流失败的疑难问题。

例如,一位用户反馈在使用微盟直播 APP 开播的时候,提示了推流失败,而新创建的直播间也无法开播。
出现此问题会影响用户的正常直播,但本地却无法复现此问题。
此时,使用日志采集回捞可以迅速拿到用户手机本地日志和相关第三方 SDK日志并分析原因。
通过分析日志,发现在推流之前 SDK 内会有一个前置认证,SDK 的校验会在本地下载一个文件。
如果特殊情况或者文件保存时出错了,就会创建一个空文件或错误文件。
校验时只会使用本地错误的文件进行校验,导致用户不管怎么样都检验失败,不能推流。
查到问题后可以先给用户提供临时解决方案,例如在设置中清除手机数据,使 SDK 重新下载认证文件并认证,让用户尽快进行直播。
接下来,可以在后续的版本中修复这一问题,避免类似的问题再次发生。

六、总结

APP日志采集回捞发挥了极为重要的作用。
它能够解决那些难以复现的问题,提高产品质量和用户体验。
可以快速定位问题,自动上传日志,节省排查问题的时间。
而且,能够分析用户的日志,加速问题解决速度。
所有反馈问题都可以通过日志找到根源,以此优化 APP 的性能和功能,提高产品竞争力。

本文主要从日志写入、日志采集、管理平台三个方面介绍微盟直播APP日志采集回传一些实践,解决用户反馈的一些问题,其中有些方面还可以进一步优化,欢迎感兴趣的同学一起交流优化。

作者:高俊

来源:微信公众号:微盟技术中心

出处:https://mp.weixin.qq.com/s/631mC0w2BNnq9-LmL-yVJQ

标签:

相关文章