pub struct ClientMetrics {Show 15 fields
pub rtc_frames_dropped: Option<u32>,
pub rtc_frames_decoded: Option<u64>,
pub rtc_frames_received: Option<u64>,
pub rtc_frames_per_second: Option<u8>,
pub rtc_freeze_count: Option<u32>,
pub rtc_jitter_sec: Option<f64>,
pub rtc_keyframes_decoded: Option<u32>,
pub rtc_total_freezes_duration_sec: Option<f32>,
pub rtc_frame_height: Option<u32>,
pub rtc_frame_width: Option<u32>,
pub rtc_packets_lost: Option<u32>,
pub rtc_pli_count: Option<u32>,
pub rtc_pause_count: Option<u32>,
pub rtc_total_pauses_duration_sec: Option<f32>,
pub rtc_stun_rtt_sec: Option<f32>,
}
Expand description
ClientMetrics contains information regarding the state of the peer.
Fields§
§rtc_frames_dropped: Option<u32>
Counter of the number of WebRTC frames the client has dropped from the inbound video stream.
https://www.w3.org/TR/webrtc-stats/#dom-rtcinboundrtpstreamstats-framesdropped
rtc_frames_decoded: Option<u64>
Counter of the number of WebRTC frames that the client has decoded from the inbound video stream.
https://www.w3.org/TR/webrtc-stats/#dom-rtcinboundrtpstreamstats-freezecount
rtc_frames_received: Option<u64>
Counter of the number of WebRTC frames that the client has received from the inbound video stream.
https://www.w3.org/TR/webrtc-stats/#dom-rtcinboundrtpstreamstats-freezecount
rtc_frames_per_second: Option<u8>
Current number of frames being rendered in the last second. A good target is 60 frames per second, but it can fluctuate depending on network conditions.
https://www.w3.org/TR/webrtc-stats/#dom-rtcinboundrtpstreamstats-freezecount
rtc_freeze_count: Option<u32>
Number of times the inbound video playback has frozen. This is usually due to network conditions.
https://www.w3.org/TR/webrtc-stats/#dom-rtcinboundrtpstreamstats-freezecount
rtc_jitter_sec: Option<f64>
Amount of “jitter” in the inbound video stream. Network latency is the time it takes a packet to traverse the network. The amount that the latency varies is the jitter. Video latency is the time it takes to render a frame sent by the server (including network latency). A low jitter means the video latency can be reduced without impacting smooth playback. High jitter means clients will increase video latency to ensure smooth playback.
https://www.w3.org/TR/webrtc-stats/#dom-rtcreceivedrtpstreamstats-jitter
rtc_keyframes_decoded: Option<u32>
Number of “key frames” decoded in the inbound h.264 stream. A key frame is an expensive (bandwidth-wise) “full image” of the video frame. Data after the keyframe become – effectively – “diff” operations on that key frame. The Engine will only send a keyframe if required, which is an indication that some of the “diffs” have been lost, usually an indication of poor network conditions. We like this metric to understand times when the connection has had to recover.
https://www.w3.org/TR/webrtc-stats/#dom-rtcinboundrtpstreamstats-keyframesdecoded
rtc_total_freezes_duration_sec: Option<f32>
Number of seconds of frozen video the user has been subjected to.
https://www.w3.org/TR/webrtc-stats/#dom-rtcinboundrtpstreamstats-totalfreezesduration
rtc_frame_height: Option<u32>
The height of the inbound video stream in pixels.
https://www.w3.org/TR/webrtc-stats/#dom-rtcinboundrtpstreamstats-frameheight
rtc_frame_width: Option<u32>
The width of the inbound video stream in pixels.
https://www.w3.org/TR/webrtc-stats/#dom-rtcinboundrtpstreamstats-framewidth
rtc_packets_lost: Option<u32>
Amount of packets lost in the inbound video stream.
https://www.w3.org/TR/webrtc-stats/#dom-rtcreceivedrtpstreamstats-packetslost
rtc_pli_count: Option<u32>
Count the total number of Picture Loss Indication (PLI) packets.
https://www.w3.org/TR/webrtc-stats/#dom-rtcinboundrtpstreamstats-plicount
rtc_pause_count: Option<u32>
Count of the total number of video pauses experienced by this receiver.
https://www.w3.org/TR/webrtc-stats/#dom-rtcinboundrtpstreamstats-pausecount
rtc_total_pauses_duration_sec: Option<f32>
Count of the total number of video pauses experienced by this receiver.
https://www.w3.org/TR/webrtc-stats/#dom-rtcinboundrtpstreamstats-totalpausesduration
rtc_stun_rtt_sec: Option<f32>
Total duration of pauses in seconds.
This is the “ping” between the client and the STUN server. Not to be confused with the E2E RTT documented here
https://www.w3.org/TR/webrtc-stats/#dom-rtcicecandidatepairstats-currentroundtriptime
Trait Implementations§
Source§impl Clone for ClientMetrics
impl Clone for ClientMetrics
Source§fn clone(&self) -> ClientMetrics
fn clone(&self) -> ClientMetrics
1.0.0 · Source§const fn clone_from(&mut self, source: &Self)
const fn clone_from(&mut self, source: &Self)
source
. Read moreSource§impl Debug for ClientMetrics
impl Debug for ClientMetrics
Source§impl Default for ClientMetrics
impl Default for ClientMetrics
Source§fn default() -> ClientMetrics
fn default() -> ClientMetrics
Source§impl<'de> Deserialize<'de> for ClientMetrics
impl<'de> Deserialize<'de> for ClientMetrics
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl JsonSchema for ClientMetrics
impl JsonSchema for ClientMetrics
Source§fn schema_name() -> String
fn schema_name() -> String
Source§fn schema_id() -> Cow<'static, str>
fn schema_id() -> Cow<'static, str>
Source§fn json_schema(generator: &mut SchemaGenerator) -> Schema
fn json_schema(generator: &mut SchemaGenerator) -> Schema
Source§fn is_referenceable() -> bool
fn is_referenceable() -> bool
$ref
keyword. Read moreSource§impl PartialEq for ClientMetrics
impl PartialEq for ClientMetrics
Source§impl Serialize for ClientMetrics
impl Serialize for ClientMetrics
impl StructuralPartialEq for ClientMetrics
Auto Trait Implementations§
impl Freeze for ClientMetrics
impl RefUnwindSafe for ClientMetrics
impl Send for ClientMetrics
impl Sync for ClientMetrics
impl Unpin for ClientMetrics
impl UnwindSafe for ClientMetrics
Blanket Implementations§
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> FutureExt for T
impl<T> FutureExt for T
Source§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
Source§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more