质量分析工具 - 监控大厅大揭秘
监控大厅是 anyRTC 为企业和开发者提供的全周期通话质量监测、回溯和分析的解决方案,致力于帮助企业和开发者及时发现问题、定位原因,并最终解决问题,提升用户体验。该产品让企业和开发者能够全面了解到自己终端用户使用体验的大数据分析产品,我们希望通过监控大厅,为企业和开发者提供安全、省心的实时音视频互动体验。
做一个监控大厅面对的挑战
要做到这种质量工具有很多技术挑战,我们总结后有如下几点:
第一是数据的收集
我们的通话分布在全球各个地方,运行时的指标需要从各地用户的设备上去收集。我们的传输网络覆盖了全球各个国家和地区,我们也需要从这些节点去收集终端用户的网络状态信息。目前我们基本上全球用户的通话状态数据都能够很好地收集上来。也就是说,除了做到本身的实时传输工作之外,必须还有一套全球的可靠的数据收集网络。
第二是数据整合
我们收集的这些数据比较分散,包含 SDK 在客户终端的使用,通话的网络传输质量信息,还有发送端与接收端的通信质量、设备状态等信息。我们要实现问题的分析诊断,就需要将这些数据放在相同的“页面”去分析,要将数据关联起来,所以最大的一个挑战就是如何将这么庞大的数据整合起来。
第三就是数据规模
我们现在每天要处理非常庞大的数据信息,这些数据是对平台的一个挑战,不仅要把每天的数据存储下来,还要实时接收下来,并进行及时处理。因为很多用户都是需要在发现问题时就进行调查。
第四是实时数据检索
除了运行指标,还有很多通话信息、用户设备型号等信息,我们需要让开发者能通过这些信息能够快速检索,来检测出现问题的是哪一通通话,从而解决用户的质量问题。
音视频质量分析流程
质量分析的路径分为协调客服解决和自主解决,两者的解决方式的路径不同,但是调查过程是一致的,都是经过监控大厅去调查全链路的音视频质量数据进行分析得出。
协调客服解决: 把有问题的频道 ID,以及用户 ID 给到客户,客户根据后台的 监控大厅 去调取有问题用户的全链路数据进行分析给出结论。
自主解决: 登录 anyRTC 控制台,点击 监控大厅,根据时间、频道 ID 或用户 ID 获取通话列表,从某一具体通话作为入口,查看频道内各用户的发布和订阅情况、设备情况、音画质量情况、用户事件等信息,通过以上信息基本可以判断用户通话体验如何、发生了什么问题,什么原因导致。
查询入口
根据接收端视角,找到对应的发生故障的两个用户
发送端跟接收端的两个用户的全链路数据问题分析
质量数据包括
音视频发送/接收码率
设备性能,包括系统 CPU 使用率,内存使用率
本地采集音量和远端播放音量
音视频发送/接收帧率
视频发送/接收分辨率
视频上行和下行端对端的丢包率
音视频卡顿分钟数
用户行为事件,比如网络切换、切换分辨率、开关音视频模块等
在用户问题追踪上,通过分析上面的数据点可以涵盖 98% 的问题事项,我们监控大厅也是基于上述的全链路数据点进行追踪数据,只需要观看几个指标即可得出用户的问题所在。
当少数的客户出现质量问题的时候,可通过 分析网络情况 和 查看设备状态 两个方面进行分析:
网络丢包
由网络引起的音视频质量一般查看丢包率和卡顿率即可,一般丢包率 < 5% 视为通信良好,>5% 则为不佳,> 10% 或者次序性丢包则为当前网络存在较严重的阻塞。
码率
正常情况下,视频和音频的码率是上下波动范围 ±10% 以内的曲线。若出现码率突降,或是 >30% 以上的波动情况,则表示当前网络出现阻塞或抖动。
帧率
正常情况下,视频帧率通常 ≥15 帧并且保持稳定。 当帧率出现大于 5 帧的上下波动,或者帧率掉落到 10 帧以下且持续不回升,通常是当前网络出现阻塞或抖动, 用户从主观上会感觉到卡顿。
CPU 占用率
CPU 占用率会显示出系统总体的 CPU 占用率及 App 的 CPU 占用率,正常情况下系统总体的 CPU 占用率 <50%,越低越好,当系统总体的 CPU 占用率 >85% 时,容易出现程序无响应或响应慢的情况,此时会以红线展示。
音量大小
音频采集音量是发送端从麦克风拿到数据的音量大小,采集音量大小有数值波动说明麦克风在正常采集声音,即设备工作正常。
音频播放音量是接收端解码渲染数据后送扬声器的音量大小,播放音量大小有数值波动说明 SDK 已经送声音到扬声器,即 SDK 工作正常。
分辨率
分辨率作为辅助信息,如果发送端分辨率不稳定,可能会存在一些播放器兼容问题如画面卡顿、花屏等。
用户行为事件
用户行为事件以柱状图形式展现,分为正常事件、一般事件和严重事件。通常情况下是用来辅助定位软件问题和分析 bug,通过分析用户使用的操作步骤,复现相应的场景。
常见问题
在实时通信场景下会有各种事件的发生。我们经过了整理和筛查后发现,一般有这么几类:
设备问题,如型号老旧、系统兼容性差、故障。
网络环境问题,如终端用户带宽因过低。
集成问题,如错误的 API 调用、API 调用顺序问题等。
终端用户误操作问题,如用户关闭音视频模块等。
anyRTC 服务问题,如 SDK 或 实时传输网络 的 bug 或其它问题
监控大厅给了业务一个基本的判定问题的依据,极大提升了问题解决的工作效率;开发者运维人员结合监控大厅分析结果我们可以主动诊断用户设备和网络情况,给予用户改进建议,提升产品服务质量。
监控大厅的意义就在于为应用开发的程序员们提供了一个测量仪,可以随时准确掌握实时通信中的每一个细节,让整个产品体验更有保障。目前,我们已经推出了这个工具,并希望以后能把更多质量数据和更智能化的质量分析服务充分提供给开发者们。
P.S. 开发者在 anyRTC (anyrtc.io)登录账号后,可以免费使用监控大厅这个工具。欢迎各位 RTC 技术开发者、技术爱好者在 anyRTC 公众号多多提意见和建议。我们会为方便大家使用而不断改进。
版权声明: 本文为 InfoQ 作者【anyRTC开发者】的原创文章。
原文链接:【http://xie.infoq.cn/article/37d99f1facb7ce8a7676bad04】。文章转载请联系作者。
评论