Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement PeerConnection GetStats API #610

Closed
6 of 45 tasks
maxhawkins opened this issue Apr 10, 2019 · 12 comments
Closed
6 of 45 tasks

Implement PeerConnection GetStats API #610

maxhawkins opened this issue Apr 10, 2019 · 12 comments
Assignees

Comments

@maxhawkins
Copy link
Contributor

maxhawkins commented Apr 10, 2019

Summary

Add support for the PeerConnection GetStats method, conforming to the dom-rtcstats spec.

Motivation

Exposing this API makes it easier to debug connection problems by exposing statistics on lower-level components of the API. Using this standard format will allow our implementation to be interoperable with stats analysis tooling created for the browser's getStats method.

Mandatory Stats

An implementation MUST support generating statistics of the following types when the corresponding objects exist on a PeerConnection, with the attributes that are listed when they are valid for that object:

  • RTCRTPStreamStats
  • RTCReceivedRTPStreamStats
  • RTCInboundRTPStreamStats
  • RTCRemoteInboundRTPStreamStats
  • RTCSentRTPStreamStats
  • RTCOutboundRTPStreamStats
  • RTCRemoteOutboundRTPStreamStats
  • RTCPeerConnectionStats
  • RTCDataChannelStats
  • RTCMediaStreamStats
  • RTCMediaStreamTrackStats
  • RTCMediaHandlerStats
  • RTCAudioHandlerStats
  • RTCVideoHandlerStats
  • RTCVideoSenderStats
  • RTCVideoReceiverStats
  • RTCCodecStats
  • RTCTransportStats
  • RTCIceCandidatePairStats
  • RTCIceCandidateStats
  • RTCCertificateStats

Missing attributes on implemented stats

The fields are there, but they are not actually properly loaded

RTCICECandidatePairStats

  • PacketsSent
  • PacketsReceived
  • BytesSent
  • BytesReceived
  • LastPacketSentTimestamp
  • LastPacketReceivedTimestamp
  • FirstRequestTimestamp
  • LastRequestTimestamp
  • LastResponseTimestamp
  • TotalRoundTripTime
  • CurrentRoundTripTime
  • AvailableOutgoingBitrate
  • AvailableIncomingBitrate
  • CircuitBreakerTriggerCount
  • RequestsReceived
  • RequestsSent
  • ResponsesReceived
  • ResponsesSent
  • RetransmissionsReceived
  • RetransmissionsSent
  • ConsentRequestsSent
  • ConsentExpiredTimestamp

RTCIceCandidateStats

  • URL
  • Deleted (for local candidates only)
@maxhawkins maxhawkins changed the title Implement getStats API Implement PeerConnection GetStats API Apr 10, 2019
maxhawkins added a commit that referenced this issue Apr 10, 2019
maxhawkins added a commit that referenced this issue Apr 10, 2019
maxhawkins added a commit that referenced this issue Apr 10, 2019
maxhawkins added a commit that referenced this issue Apr 10, 2019
maxhawkins added a commit that referenced this issue Apr 10, 2019
maxhawkins added a commit that referenced this issue Apr 10, 2019
maxhawkins added a commit that referenced this issue Apr 10, 2019
maxhawkins added a commit that referenced this issue Apr 10, 2019
maxhawkins added a commit that referenced this issue Apr 10, 2019
maxhawkins added a commit that referenced this issue Apr 10, 2019
maxhawkins added a commit that referenced this issue Apr 10, 2019
This was referenced Apr 12, 2019
maxhawkins added a commit that referenced this issue Apr 17, 2019
maxhawkins added a commit that referenced this issue Apr 17, 2019
maxhawkins added a commit that referenced this issue Apr 18, 2019
maxhawkins added a commit that referenced this issue Apr 18, 2019
Sean-Der pushed a commit that referenced this issue Apr 19, 2019
Sean-Der pushed a commit that referenced this issue Apr 19, 2019
maxhawkins added a commit that referenced this issue Apr 21, 2019
maxhawkins added a commit that referenced this issue Apr 21, 2019
maxhawkins added a commit that referenced this issue Apr 21, 2019
maxhawkins added a commit that referenced this issue Apr 21, 2019
@xsbchen
Copy link
Member

xsbchen commented May 14, 2019

any updates?

@maxhawkins
Copy link
Contributor Author

I got pulled away to another project so I'm not working on this currently, unfortunately.

If you want to take a stab at wiring up some of the structs I'd be happy to do a code review.

@maxhawkins
Copy link
Contributor Author

maxhawkins commented Jun 27, 2019

Work has started on this. Thank you @hugoArregui!

Only RTCPeerConnectionStats, RTCIceCandidatePairStats, and RTCIceCandidateStats are implemented at the moment. We're looking for help implementing the other stat types.

Here's the commit adding GetStats: 9326196

obasajujoshua31 added a commit that referenced this issue Sep 21, 2020
Add an API to get basic stats around certificate

Relates to #610
obasajujoshua31 added a commit that referenced this issue Sep 22, 2020
Add an API to get basic stats around certificate

Relates to #610
obasajujoshua31 added a commit that referenced this issue Sep 22, 2020
Add an API to get basic stats around rtpsender.

Relates to #610
obasajujoshua31 added a commit that referenced this issue Sep 22, 2020
Add an API to get basic stats around certificate

Relates to #610
obasajujoshua31 added a commit that referenced this issue Sep 22, 2020
Add an API to get basic stats around certificate

Relates to #610
obasajujoshua31 added a commit that referenced this issue Sep 22, 2020
Add an API to get basic stats around certificate

Relates to #610
obasajujoshua31 added a commit that referenced this issue Sep 22, 2020
Add an API to get basic stats around certificate

Relates to #610
tarrencev pushed a commit that referenced this issue Sep 22, 2020
Add an API to get basic stats around certificate

Relates to #610
obasajujoshua31 added a commit that referenced this issue Sep 22, 2020
Add an API to get basic stats around media.

Relates to #610
obasajujoshua31 added a commit that referenced this issue Sep 22, 2020
Add an API to get basic stats around media.

Relates to #610

mend
tarrencev pushed a commit that referenced this issue Sep 22, 2020
Add an API to get basic stats around media.

Relates to #610

mend
obasajujoshua31 added a commit that referenced this issue Sep 23, 2020
Add an API to get basic stats around rtpsender.

Add an API to get basic stats around rtpreceiver

Relates to #610
obasajujoshua31 added a commit that referenced this issue Sep 23, 2020
Add an API to get basic stats around rtpsender.

Add an API to get basic stats around rtpreceiver

Relates to #610
obasajujoshua31 added a commit that referenced this issue Sep 23, 2020
Add an API to get basic stats around rtpsender.

Add an API to get basic stats around rtpreceiver

Relates to #610
obasajujoshua31 added a commit that referenced this issue Sep 23, 2020
Add an API to get basic stats around rtpsender.

Add an API to get basic stats around rtpreceiver

Relates to #610
obasajujoshua31 added a commit that referenced this issue Sep 24, 2020
Relates to #610

stats around outboundrtpstreamstats

Description
Reference issue
Fixes #...
obasajujoshua31 added a commit that referenced this issue Sep 24, 2020
Relates to #610

Description
Reference issue
Fixes #...
obasajujoshua31 added a commit that referenced this issue Sep 24, 2020
Relates to #610

Description
Reference issue
Fixes #...
obasajujoshua31 added a commit that referenced this issue Sep 24, 2020
Relates to #610

Description
Reference issue
Fixes #...
obasajujoshua31 added a commit that referenced this issue Sep 25, 2020
Added stats to support inboundrtpstreamstats

added helper function and test for atomicuint

Relates to #610

Description
Reference issue
Fixes #...
obasajujoshua31 added a commit that referenced this issue Sep 25, 2020
Added stats to support inboundrtpstreamstats

added helper function and test for atomicuint

Relates to #610

Description
Reference issue
Fixes #...
@hiteshgarg14
Copy link

Hi, is there any plan to work on this ticket?

@Sean-Der Sean-Der removed the triaged label Mar 29, 2024
@Sean-Der
Copy link
Member

Sean-Der commented Apr 4, 2024

Hi @hiteshgarg14

I think this is a task that will never be done. It can always be better. I am resolving since we don't have anything actionable out of this.

@Sean-Der Sean-Der closed this as not planned Won't fix, can't repro, duplicate, stale Apr 4, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

8 participants