本文主要介绍WebRTC端到端监控(我们翻译和整理的,译者:weizhenwei,校验:blacker),最早发表在【编风网

支持原创,转载必须注明出处,欢迎关注我的微信公众号blacker(微信ID:blackerteam 或 webrtcorgcn)。

callstats是一家做实时通讯性能测量的公司,他们博客里面提到了实时通讯过程中性能的重要性,下面是博客内容;

性能监控是系统和服务开发的一个重要方面,它可以帮助我们检测和诊断性能问题,并有助于维护系统的高可用性。现如今工程团队都基于数据做决策,因此这些性能测量在实施和部署问题修复方面发挥重要作用。

通常来说,服务监控的度量分为两类:

·规 :系统负载,错误率,用户搅动,等等;

·持续时间:创建时间,事务响应时间,等等。

在度量方面,WebRTC并没有什么不同之处。一个规模度量的例子如同时在线或者建立失败的会议数目,一个持续时间度量的例子如建立一个连接的时间。

实时测量

在callstats.io,实时性是所有系统的重要衡量指标。当第一个参与者加入会议时,我们会立即对会议进行分类。如果一个会议创建失败,服务器能够立即发现失败及其失败原因和会议从启动到失败所消耗的时间。我们非常看中这种实时处理能力,它能够在事情发生时尽快发出警告,并立即呈现给用户。我们称之为“持续分析”。

正确的端到端监控

Callstats.io通过getStats() API或者基础度量监控WebRTC连接的重要方面,即来自实际用户的度量值(只有用户才能代表他们自己)。该方法用来测量:

·每对WebRTC设备的端到端网络性能。

·WebRTC设备的媒体性能。这包括与音频重放和视频渲染相关的大量度量。

这些度量针对每个连接、参会者和会议独立地进行汇总。 

失败

基于时间的用户行为(如用户每天何时使用服务,或者在一周之中的某天使用服务),度量值每天都会发生波动变化。然而,过去几天或几周使用率的显著下降往往预示着服务出了问题。比如,会话建立失败的增加预示着基础设施、终端或者网络的故障。下图显示在一个会议期间可能发生错误的时刻。

会议建立期间错误的分类

WebRTC服务组件故障原因:

1.终端有可能改变行为。浏览器每六周更新一次,开发版和公测版可以更早于发布版得到。因此,开发团队对新特性和更新可能导致的问题有直觉。此外,Chrome和Firefox团队提前宣布PSA,并及时回答支持咨询。

2.基础设施可能过载。即服务器承受比预期更多的流量而导致性能问题。这也可能发生在底层基础设施消失,或者首次部署新特性导致影响到部分客户。

3.网络可能由于网络流量监管或者网络行为不确定发生拥塞。这可能影响地理上某些区域,或者某个特殊的网络服务提供商业/企业网络。典型地,这些情况下用户位于受限制防火墙背后,或者有网络设备发生故障。

服务中断

服务中断可能发生在一个或多个WebRTC服务基础组件停止工作时:

·信令服务器宕机:导致会话不能建立。在这种情况下,正在进行的会议数和会议总数将会降低。

·TURN服务器宕机:导致部分会话不能建立。在这种情况下,部分或者全部会议失败数目将会增加,这种失败归类为ICE连接失败。

·会议桥宕机:部分会话不能建立。一个或多个会议桥将会发送宕机报告。

向用户指出这些服务中断同样很重要。例如,告诉用户连向信令服务器或者会议桥的连接中断,或者会话正在试图重建,或者会话失败需要等待或立即重试。许多服务已经提供一些基本诊断,比如:音频仪,网络码率,静音指示,等等。

类似地,我们的API会显示网络连接状态和其它关键度量。这些度量可以以一种合适的界面呈现给终端用户,以帮助他们了解应用的当前状态,并缓解因为诊断到服务中断带来的挫败感。

收集终端用户反馈

收集终端用户反馈同样很重要,这有助于我们找到用户体验和客观质量(或者媒体和网络度量)之间的对应关系。纵观callstats.io的客户,我们发现10%~40%的会议有一个或多个用户反馈评论。反馈数量很大程度上取决于在合适的场景下提问合适的问题。

持续测试

在整个业界,自动化测试和持续集成是通行准则,这同样适用于WebRTC。浏览器厂商已经做了大量努力以实现测试过程自动化。此外,在Github上也有一些使用Selenium测试WebRTC的资源。

总结

在我们看来,对WebRTC进行端到端监控的最好方法就是用API把监控方案集成到WebRTC应用的核心单元。用这种方法,监控方案能够实时追踪规模度量和持续时间度量,向开发者提供WebRTC服务状态的实时信息。基于API的方案也提供很多回调的可能性,例如,自动调整WebRTC应用的性能以提供给终端用户尽可能好的媒体质量。

译者:weizhenwei,具体详见:【编风网

Android IOS WebRTC 音视频开发总结(七八)-- 为什么WebRTC端到端监控很关键?的更多相关文章

  1. Android IOS WebRTC 音视频开发总结(八十五)-- 使用WebRTC广播网络摄像头视频(下)

    本文主要介绍WebRTC (我们翻译和整理的,译者:weizhenwei,校验:blacker),最早发表在[编风网] 支持原创,转载必须注明出处,欢迎关注我的微信公众号blacker(微信ID:bl ...

  2. Android IOS WebRTC 音视频开发总结(八十三)-- 使用WebRTC广播网络摄像头视频(上)

    本文主要介绍WebRTC (我们翻译和整理的,译者:weizhenwei,校验:blacker),最早发表在[编风网] 支持原创,转载必须注明出处,欢迎关注我的微信公众号blacker(微信ID:bl ...

  3. Android IOS WebRTC 音视频开发总结(八十一)-- WebRTC靠谱吗?有没有适合的SDK推荐?

    作者:blaker,最早发表在我们的微信公众和[编风网],详见[这里] 支持原创,转载必须注明出处,欢迎关注我的微信公众号blacker(微信ID:blackerteam 或 webrtcorgcn) ...

  4. Android IOS WebRTC 音视频开发总结(五四)-- WebRTC标准之父谈WebRTC

    本文主要是整理自国内首届WebRTC大会上对Daniel的一些专访,转载必须说明出处,欢迎关注微信公众号blacker,更多说明详见www.rtc.help 说明:以下内容主要整理自InfoQ的专访, ...

  5. Android IOS WebRTC 音视频开发总结(十)-- webrtc入门002

    继续上一篇中未翻译完成的部分,主要包括下面三个部分: 1,扩展:WebRTC多方通话. 2,MCU Multipoint Control Unit. 2, 扩展:VOIP,电话,消息通讯. 注意:翻译 ...

  6. Android IOS WebRTC 音视频开发总结(八)-- ios上移植webRTCDemo

    这篇文章主要介绍ios webrtcdemo的实现及相关注意事项,转载请说明出处(博客园RTC.Blacker) 前面很多人问webrtc android下有webrtcdemo,ios上怎么找不到, ...

  7. Android IOS WebRTC 音视频开发总结(八十七)-- WebRTC中丢包重传NACK实现分析

    本文主要介绍WebRTC中丢包重传NACK的实现,作者:weizhenwei ,文章最早发表在编风网,微信ID:befoio 支持原创,转载必须注明出处,欢迎关注我的微信公众号blacker(微信ID ...

  8. Android IOS WebRTC 音视频开发总结(八十六)-- WebRTC中RTP/RTCP协议实现分析

    本文主要介绍WebRTC中的RTP/RTCP协议,作者:weizhenwei ,文章最早发表在编风网,微信ID:befoio 支持原创,转载必须注明出处,欢迎关注我的微信公众号blacker(微信ID ...

  9. Android IOS WebRTC 音视频开发总结(八十二)-- VP8对VP9,质量还是码率?

    本文主要介绍VP9(我们翻译和整理的,译者:weizhenwei,校验:blacker),最早发表在[编风网] 支持原创,转载必须注明出处,欢迎关注我的微信公众号blacker(微信ID:blacke ...

  10. Android IOS WebRTC 音视频开发总结(九)-- webrtc入门001

    下面这篇介绍webrtc的文章不错,我花了大半天翻译了一下. 翻译的时候不是逐字逐句的,而是按照自己的理解翻译的,同时为了便于理解,也加入一些自己组织的语言. 本文主要介绍webrtc的信令,stun ...

随机推荐

  1. wordmate 词典安装

    wordmate,使用 StarDict 的词典,可称为 Android 上的 StarDict 安装 wordmate 后,会在 SD 卡中生成 wordmate 文件夹,词典便放在此目录 下载词典 ...

  2. 【POJ3621】Sightseeing Cows

    Sightseeing Cows Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 8331   Accepted: 2791 ...

  3. Nginx和Apache配置日志格式记录Cookie

    记录Cookie有什么用? 有时候我们需要通过web服务器的访问日志来统计UV(独立访客),并据此分析用户的行为.而UV是依据cookie数据得出的统计.UV相对于IP的好处是:IP是一个反映网络虚拟 ...

  4. Tcp方式采集CNC兄弟设备数据

    先说下为了采集CNC兄弟设备的数据可谓是一波三折. 因为首次接触brother设备(CNC)是直接在设备上设置IP.用户名.密码,然后直连PC,用Ftp可以查看和下载CNC brother设备里的数据 ...

  5. 结构体struct 与 联合union

    1.C语言中的结构体 1.1 定义 结构体是由一系列相同或不同类型的变量组成的集合. struct 结构体名{               //struct为关键字,“结构体名”为用户定义的类型标识. ...

  6. putty远程连接ubuntu

      步骤一.在ubuntu系统中安装ssh,可使用如下的命令进行安装: sudo apt-get install openssh-server步骤二.为了保险起见,安装完成后重启一下ssh服务,命令如 ...

  7. Python中对字节流/二进制流的操作:struct

    前言 前段时间使用Python解析IDX文件格式的MNIST数据集,需要对二进制文件进行读取操作,其中我使用的是struct模块.查了网上挺多教程都写的挺好的,不过对新手不是很友好,所以我重新整理了一 ...

  8. Oracle EM 的访问方式由HTTPS改为HTTP

    打开命令提示符,依次运行以下命令: set ORACLE_HOSTNAME=%COMPUTERNAME% set ORACLE_UNQNAME=orcl rem 指向 dbhome_1\oc4j\j2 ...

  9. 高阶c++

    模板就是宏.模板能不能再往一步? http://perilla.codeplex.com/ enhanced c++ template grammar: rule 1: c++ identifier ...

  10. Unable to find messages file 'cscui.dll' 问题解决

    之前在工作机器上安装VS 2015卡死,结束进程,安装失败一直无法使用,昨天下班开着电脑把VS 2015卸载了,今天早上来,以前正确的项目现在生成都报错 "Unable to find me ...