An Introduction to WebRTC Analytics

WebRTC logo

Web Real-time Communications (WebRTC) is an open source project created by Google to enable peer-to-peer communication in web browsers and mobile applications through application programming interfaces. It empowers real-time audio, video, and data transfers without the need for plugins or native app installations. With WebRTC, you can make high-quality, real-time communications applications in Chrome, Firefox, Opera, Android, and natively on iOS and Android.

WebRTC was released in 2011, and since then has become more and more prevalent in the real-time communications space. Facebook, Google, Amazon, and many other companies use WebRTC to provide fast, reliable real-time communications.

Why do you Need Real-time Analytics?

Real-time communications is a difficult feature and service to provide. Users expect and require reliable, effective communication in their day-to-day lives. Even more than that, dependable real-time communications are crucial for businesses, especially ones with remote workers.

It is crucial that real-time systems are sufficiently fast and predictably share resources. This extends to real-time communications – it is very important that events and messages happen in real time. This leaves little room for error, especially in the moment. Thus, the need for real-time analytics.

What is WebRTC getStats?

WebRTC traffic is transported over the IP network, which is susceptible to network congestion. This can increase latency and packet loss, since routers may need to drop packets to mitigate congestion. Losing packets can result in poor video and audio quality, which may lower the user experience. To ensure the highest possible quality, WebRTC includes a real-time statistics API: WebRTC getStats.

The real-time statistics API is accessible though the webrtc-internals page directly in the browser, or by using the getStats() API call.

What Does the getStats() API Include?

The getStats() API is structured into four separate components.

  1. Sender Media Capture Statistics: Sender media capture statistics are related to media generation. This includes frame rate, frame size, clock rate of the media source, the name of the codec, and more.
  2. Sender RTP Statistics: Sender RTP statistics are related to the media sender. This includes the packets sent, bytes sent, round-trip time, and more.
  3. Receiver RTP Statistics: Receiver RTP statistics are related to the media receiver. This includes packets received, bytes received, packets discarded, packets lost, jitter, and more.
  4. Receiver Media Render Statistics: Receiver media render statistics are related to the media rendering. This includes frames lost, frames discarded, frames rendered, playout delay, and more.

The Importance of End-to-end Monitoring

At callstats.io, we gather metrics from real-time communications at the endpoints and middleboxes. By collecting data at multiple points, we are able to get a comprehensive picture of the path, and can diagnose the exact origin of the problem.

We look to measure both the network performance of the path between each pair of WebRTC devices and the media performance at each WebRTC device. This covers a slew of metrics related to the playback and rendering of the media streams to give a comprehensive picture. Metrics are aggregated independently for each connection, participant, and conference.

Get Started with WebRTC Monitoring

getStats contains powerful meetrics that can be used in any WebRTC service. To reap the full benefits of the metrics and collect fine-grained time series of a conference requires a significant amount of resources to collect the data, organize the data, and run diagnostics. There are many metrics to monitor, so if you want to roll your own solution, it’s best to start small and choose a few key metrics. Get started today!

Allie Mellen is the technical content marketer for callstats.io, a software-as-a-service company that provides products that measure and manage the performance of real-time media communication.

You can skip to the end and leave a response. Pinging is currently not allowed.

6/11/2018

Leave a Reply

Your email address will not be published.