质量透明那些事儿(二):卡了?糊了?三步找出问题所在

此前一篇中,我们聊到了在实时音视频场景下会遇到哪些常见的质量问题,对质量问题追根溯源的方法,以及将实时音视频质量“透明化”的重要性。那么在一通视频通话中,哪些因素会影响质量?各因素之间的关联是什么?发现问题后,如何从众多监测数据中寻找出线索?如何分析?我们在这一篇内容中以免费面向开发者的实时音视频质量透明工具声网水晶球为例,讲讲如何查询。

声网水晶球(Agora Analytics)是 Agora 为开发者提供的全周期通话质量监测、回溯和分析的解决方案,致力于帮助你及时发现问题、定位原因,并最终解决问题以提升用户体验。水晶球中有三大功能:

  • 通话调查:是免费开放给所有开发者的。

  • 数据洞察:面向用户量较大的开发者,可以通过它了解整体的用量与质量。

  • 实时数据:可以帮助你实时地掌握整体动态,及时识别异常通话体验和异常根因。

通过水晶球的“通话调查”可以让开发者实时地查询到每一通通话的质量情况,包括上下行码率、网络上下行质量、用户行为、用户设备性能与状态等信息。我们将这些数据信息全部进行了可视化处理,能让开发者一眼看出问题所在。

通话调查中提供的数据包括:

  • 设备 CPU 状态

  • 本地采集/远端播放音量

  • 音视频发送/接收码率

  • 视频发送/接收帧率

  • 视频接收分辨率

  • 音视频上行和端对端的丢包率

  • 音视频卡顿情况

  • 用户行为(一些重要的行为,比如加入频道失败、关闭麦克风等)

  • 用户对通话的主观评分

通过对这些数据的交叉分析,我们可以找到质量问题的根源。在水晶球中,这些数据都会以可视化的形式直观显示出来。

与质量有关的那些关键词

在了解任何一个工具如何使用之前,我们首先都要先将概念统一。以下这些概念,你会频繁地在使用水晶球的过程中遇到:

频道:频道都是在调用 API 时创建的,用户会在频道中进行音视频通话,当最后一个用户离开频道的时候,这个频道会被自动销毁。

通话:我们将第一个用户加入到频道,直至最后一个用户离开频道,整个过程视作一个通话。如果发现某个频道出现了卡顿,在「通话调查」中搜索频道号的时候,就会显示频道号相关的通话。

用户名:每个用户在频道中都有唯一的用户名。开发者可以用UID(整型)或 User Account(字符串型)来表示用户名。当用户加入频道的时候,就会传入用户名。所以在进行通话调查的时候,你也可以通过搜索用户名的方式来找到出问题的通话。

接收端、发送端:在一个通话中,每个用户都可以是发送端或接收端。但是在数据统计中,如果有一个用户持续发送数据一定时间,比如持续的在说话,那么我们就会将 TA 当做这段通话中的发送端,你也会在水晶球中看到 TA 的用户名后面会跟着一个小喇叭的图标。这会更便于我们调查问题原因是出在发送端,还是接收端。

总时长:对于一个通话来说,总时长计算的是从通话开始到通话结束经过的时间,也就是从频道内第一个用户进入到最后一个用户离开经过的时间。对于通话中的一个用户来说,总时长计算的是该用户在这个通话中第一次加入频道到他/她最后一次离开频道所经过的时间。一个通话中的某个用户可能多次加入和离开频道,因此该时长不能准确反映用户在频道内的总时间。

另外,至于码率、分辨率、帧率,我们就不多赘述了,相信大家早已烂熟于心。

进入通话调查你会看到什么?

在登录声网账号,进入Console 后你就可以找到水晶球。如果你的应用已经有过了通话,那么在水晶球中就可以看到通话的通话质量信息,包括:

  • 通话基本信息:包含了你的项目名称、频道名称、开始与结束通话的时间、总时长

  • 用户列表:用户名、所在区域、进出频道的时间、总时长、在频道内的实际时间和 SDK 版本等。

  • 通话体验质量:各用户作为接收端的通话体验质量。

在通话体验质量面板中,音频和视频质量分布在时间线的下方和上方。水晶球会红色虚线来表示视频中出现的模糊,红色竖线(我们管它们叫毛刺)来表示视频卡顿和音频卡顿。(如下图)

当你发现一个通话中出现异常曲线(如下图中红色曲线)时,可以点击“查看详情”,当鼠标悬停在用户 ID 上时,该 ID 对应曲线会显示为高亮状态。点击有 ID 就可以进入端到端详情页面进一步查看端到端数据,包括设备状态、帧率、网络丢包和分辨率,只要出现有异常的情况,水晶球都会用红色折线来表示,可以一目了然地发现问题。

在最近更新的水晶球中,我们还在页面最下方加入了可以体现一些用户行为的事件轴。事件轴上有红色、黄色和绿色的箭头,分别代表着严重事件、一般事件和正常事件。

  • 严重事件会直接影响通话体验,接收端将难以看到正常的画面。这些事件包括用户加入频道失败、网络连接失败、主动关闭音视频模块或停止摄像头采集等。

  • 一般事件对通话体验可能造成一定影响,包括用户网络状态未知、IP 地址变动、用户停止发送/接收音视频流等。

  • 正常事件不会影响通话体验,包括用户成功加入频道、打开摄像头采集和收到音视频首帧等。

如果你在调查用户质量问题时,发现视频卡顿的同时,事件轴上出现了红色的箭头,那么卡顿很有可能是因为用户端的一些误操作导致的。

举个例子????

如果我们只是介绍水晶球功能、按钮,对于大家来讲肯定是在听天书一样。所以我们以一个「由于发送端网络问题导致卡顿」这样一个案例来讲讲,你就明白了。

假设,现在你收到了一个用户的反馈“我视频好卡!”。于是,你在打开水晶球页面,根据他的 UID 找到了这个用户的通话体验数据:

你发现左边音视频的接收码率都是正常的,通话体验良好。再看看另一个用户的数据,他遇到了视频模糊(红色虚线)的情况,并且频繁出现卡顿(红色毛刺)。那么我们打开右侧这个用户的体验详情来看看,如下图。

图中,左侧一列是发送端的数据,右侧则是接收端的数据。

我们一步一步地分析。首先看第一行的图表,不论是发送端还是接收端的系统 CPU 占用率和 App CPU 占用率都处于正常范围,没有出现任何预警信号(红色折线)。

但看第二行,视频上行、下行端到端丢包情况中,网络上行出现了丢包,可以初步推测发送端的网络比较差,这也导致了在相同时间下行也出现了丢包,这使得接收端出现了卡顿。所以基本可以断定接收端出现的卡顿是由于上行网络较差导致的。

这时,你可能会产生疑问,那如果接收端的卡顿是由于接收端自身网络问题产生的,那么在水晶球中看到的图表会是怎样的呢?来看下图。你会看到发送端所有的数据都表现正常,只有接收端出现了丢包。这就可以断定接收端的卡顿与发送端无关,只是由于他自身的网络问题导致的。

是不是觉得问题调查很简单?我们还在声网官方文档中心准备了更多的相关内容,如果你想了解更多,请点击「阅读原文」获取。

通过「通话调查」我们可以查询单个通话的质量问题,但是如何查看自己所有用户的质量状态呢?我们会在下一期内容中进一步分享。


另外,在3 月 26 日(今天)下午 15:00,我们的数据产品经理会在线上与大家分享如何用水晶球排雷、评估质量、提升体验。快来扫码报名吧。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章