本文主要介绍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. python之购物车的编写(熬夜撸代码中。。。)

    购物车的编写对于我这种不是很精通函数的小白来说,简直太难了.各种坑,各种无奈啊!不过总算也是写出来了! 不多说,直接上代码! #!/usr/bin/env python#用户名 sanjiang#密码 ...

  2. 数迹学——Asp.Net MVC4入门指南(5):从控制器访问数据模型

    MovieController中的方法Index()代码,初认识,应该有很多理解错误的地方,暂时这么记忆吧,待随后修改 Index()代码: @model IEnumerable<MVCMovi ...

  3. 【转】android 属性动画之 ObjectAnimator

    原文网址:http://blog.csdn.net/feiduclear_up/article/details/39255083 前面一篇博客讲解了 android 简单动画之 animtion,这里 ...

  4. Torch 日志文件的保存 logroll

    Torch 日志文件的保存 logroll 怎样将 Torch 在终端显示的信息,保存到 log 文件中 ?   现在介绍一种方法:利用 logroll 的方式.  参考 https://github ...

  5. 数据注解和验证 – ASP.NET MVC 4 系列

           不仅在客户端浏览器中需要执行验证逻辑,在服务器端也需要执行.客户端验证能即时给出一个错误反馈(阻止请求发送至服务器),是时下 Web 应用程序所期望的特性.服务器端验证,主要是因为来自网 ...

  6. SQL Server 连接字符串备忘

    今天把服务器上的远程访问关了,把连接字符串中的IP地址改成了.,然后就一直连不上.弄了半天,原来是本地连接时非默认实例,不能带端口号. 1.原来的连接服务器地址是:192.168.0.1SQL2005 ...

  7. linq语法大全(转集)

     Join操作符 适用场景:在我们表关系中有一对一关系,一对多关系,多对多关系等.对各个表之间的关系,就用这些实现对多个表的操作. 说明:在Join操作中,分别为Join(Join查询), Selec ...

  8. SynchronousQueue类

    介绍 Java 6的并发编程包中的SynchronousQueue是一个没有数据缓冲的BlockingQueue,生产者线程对其的插入操作put必须等待消费者的移除操作take,反过来也一样.不像Ar ...

  9. ABBYY PDF Transformer+怎么标志注释

    ABBYY PDF Transformer+是一款可创建.编辑.添加注释及将PDF文件转换为其他可编辑格式的通用工具,可用来在PDF页面的任何位置添加注释(关于如何通过ABBYY PDF Transf ...

  10. tomcat解决加载JSP文件过大错误

    当遇到多个Jsp include一起的时候加载时遇到如下错误: Error:SEVERE: Servlet.service() for servlet jsp threw exception org. ...