Documentation on how and what of RTCStats

Hi!

I regularly see some commits on RTC stats, but can’t seem to find whether it is already in stable, how to use it, what insights etc it can give? As we have quite some users that report problems with connections, freezes etc, hoping this feature could shed some light on the problems.

Any help would be greatly appreciated!

Regards,
Rick

2 Likes

+1 Looking for some insights here too.

Hello everyone,

The documentation on both the client and server repos is being worked on. Once it’s done it should make instructions on how to use the ecosystem more clear. Have a good one!

Great!
Can you already summarize what value it can bring in what situation? Like indeed understanding connection issues of clients?

Is there a rough ETA?

Hi all,

@andrei-gavrilescu

I’m also in the process of deploying rtcstats to monitor connection quality issues we’ve been having.

I assume embedding the rtcstats.js will publish the stats back to jitsi via the existing sockets? Therefore the accompanying rtcstats-server isn’t required?

Any tips to help make the implementation easier would be much appreciated, even prior to any docs become mature enough for public release?

Many thanks,
Adam

Hey guys, we’re in the process of updating the docs so they should be up in a couple of days. To answer your individual questions:
@rickgoud Basically the rtcstats client calls getStats for each established RTCPeerConnection at a configured time interval and sends the data to rtcstats-server which then processes and stores it in a medium of your choosing. That data is available for analysis whenever you chose.
@Phish-Food rtcstats needs both the client and the server component, how you interact with the resulting data depends on your own deployment of rtcstats and jitsi.

Thanks @andrei-gavrilescu, thanks to finding your merge for the integration of the client into Jitsi (thank you very much for this!) I’ve been able to get this setup and working. The integrated client is successfully publishing data to the rtcstats server and storing it in S3.

Of course the big question now is how to turn all that data into insight :wink: if you have any tips from your experience on that, that would be very helpful!

EDIT: Visualisation via fippo’s awesome tool is great: https://fippo.github.io/webrtc-dump-importer/rtcstats

I was gonna suggest that. Yeah it’s pretty cool.

Thanks @andrei-gavrilescu

Today I also built the integration with Kinesis Firehose and Redshift (which had its challenges) so we have the data flowing all the way from client into the data lake which I think is crucial to being able to get the insight we need on media path performance.

Again, and sorry to keep repeating, but if there’s anything more you can share to help on this journey it would be much appreciated (and I’d be happy to act as beta reviewer for any docs you may have that aren’t ready for public release).

Well considering that this whole thing revolves mostly around getStats, understanding the data obtained from there is probably a first step.
To help you with that the good people at https://testrtc.com/ wrote some invaluable posts around this topic https://testrtc.com/webrtc-internals-documentation/ .
From there on you can decide which stats you want to pursue.

Thanks again @andrei-gavrilescu I’ve spent a couple of days digesting all the stats and building scripts to pull out useful insight. Although it’s clear rtcstats is exposing the symptoms rather than the cause, e.g. frequent changes in resolution and frame rate (without any corresponding ICE events).

I’ve started a new thread on troubleshooting quality, in case you want to chime in :wink: