Struct kittycad_modeling_cmds::websocket::ClientMetrics
source · pub struct ClientMetrics {
pub rtc_frames_dropped: u32,
pub rtc_frames_decoded: u64,
pub rtc_frames_received: u64,
pub rtc_frames_per_second: u8,
pub rtc_freeze_count: u32,
pub rtc_jitter_sec: f32,
pub rtc_keyframes_decoded: u32,
pub rtc_total_freezes_duration_sec: f32,
}
Expand description
ClientMetrics contains information regarding the state of the peer.
Fields§
§rtc_frames_dropped: u32
Counter of the number of WebRTC frames the client has dropped during this session.
rtc_frames_decoded: u64
Counter of the number of WebRTC frames that the client has decoded during this session.
rtc_frames_received: u64
Counter of the number of WebRTC frames that the client has received during this session.
rtc_frames_per_second: u8
Current number of frames being rendered per second. A good target is 60 frames per second, but it can fluctuate depending on network conditions.
rtc_freeze_count: u32
Number of times the WebRTC playback has frozen. This is usually due to network conditions.
rtc_jitter_sec: f32
Amount of “jitter” in the WebRTC session. 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.
rtc_keyframes_decoded: u32
Number of “key frames” decoded in the underlying 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.
rtc_total_freezes_duration_sec: f32
Number of seconds of frozen video the user has been subjected to.
Trait Implementations§
source§impl Clone for ClientMetrics
impl Clone for ClientMetrics
source§fn clone(&self) -> ClientMetrics
fn clone(&self) -> ClientMetrics
1.0.0 · source§fn clone_from(&mut self, source: &Self)
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(gen: &mut SchemaGenerator) -> Schema
fn json_schema(gen: &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§fn eq(&self, other: &ClientMetrics) -> bool
fn eq(&self, other: &ClientMetrics) -> bool
self
and other
values to be equal, and is used
by ==
.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> IntoResult<T> for T
impl<T> IntoResult<T> for T
type Err = Infallible
fn into_result(self) -> Result<T, <T as IntoResult<T>>::Err>
source§impl<T> IntoSql for T
impl<T> IntoSql for T
source§fn into_sql<T>(self) -> Self::Expression
fn into_sql<T>(self) -> Self::Expression
self
to an expression for Diesel’s query builder. Read moresource§fn as_sql<'a, T>(&'a self) -> <&'a Self as AsExpression<T>>::Expression
fn as_sql<'a, T>(&'a self) -> <&'a Self as AsExpression<T>>::Expression
&self
to an expression for Diesel’s query builder. Read more