NetDeviceMetrics

Struct NetDeviceMetrics 

Source
pub struct NetDeviceMetrics {
Show 27 fields pub activate_fails: SharedIncMetric, pub cfg_fails: SharedIncMetric, pub mac_address_updates: SharedIncMetric, pub no_rx_avail_buffer: SharedIncMetric, pub no_tx_avail_buffer: SharedIncMetric, pub event_fails: SharedIncMetric, pub rx_queue_event_count: SharedIncMetric, pub rx_event_rate_limiter_count: SharedIncMetric, pub rx_rate_limiter_throttled: SharedIncMetric, pub rx_tap_event_count: SharedIncMetric, pub rx_bytes_count: SharedIncMetric, pub rx_packets_count: SharedIncMetric, pub rx_fails: SharedIncMetric, pub rx_count: SharedIncMetric, pub tap_read_fails: SharedIncMetric, pub tap_write_fails: SharedIncMetric, pub tap_write_agg: LatencyAggregateMetrics, pub tx_bytes_count: SharedIncMetric, pub tx_malformed_frames: SharedIncMetric, pub tx_fails: SharedIncMetric, pub tx_count: SharedIncMetric, pub tx_packets_count: SharedIncMetric, pub tx_queue_event_count: SharedIncMetric, pub tx_rate_limiter_event_count: SharedIncMetric, pub tx_rate_limiter_throttled: SharedIncMetric, pub tx_spoofed_mac_count: SharedIncMetric, pub tx_remaining_reqs_count: SharedIncMetric,
}
Expand description

Network-related metrics.

Fields§

§activate_fails: SharedIncMetric

Number of times when activate failed on a network device.

§cfg_fails: SharedIncMetric

Number of times when interacting with the space config of a network device failed.

§mac_address_updates: SharedIncMetric

Number of times the mac address was updated through the config space.

§no_rx_avail_buffer: SharedIncMetric

No available buffer for the net device rx queue.

§no_tx_avail_buffer: SharedIncMetric

No available buffer for the net device tx queue.

§event_fails: SharedIncMetric

Number of times when handling events on a network device failed.

§rx_queue_event_count: SharedIncMetric

Number of events associated with the receiving queue.

§rx_event_rate_limiter_count: SharedIncMetric

Number of events associated with the rate limiter installed on the receiving path.

§rx_rate_limiter_throttled: SharedIncMetric

Number of RX rate limiter throttling events.

§rx_tap_event_count: SharedIncMetric

Number of events received on the associated tap.

§rx_bytes_count: SharedIncMetric

Number of bytes received.

§rx_packets_count: SharedIncMetric

Number of packets received.

§rx_fails: SharedIncMetric

Number of errors while receiving data.

§rx_count: SharedIncMetric

Number of successful read operations while receiving data.

§tap_read_fails: SharedIncMetric

Number of times reading from TAP failed.

§tap_write_fails: SharedIncMetric

Number of times writing to TAP failed.

§tap_write_agg: LatencyAggregateMetrics

Duration of all tap write operations.

§tx_bytes_count: SharedIncMetric

Number of transmitted bytes.

§tx_malformed_frames: SharedIncMetric

Number of malformed TX frames.

§tx_fails: SharedIncMetric

Number of errors while transmitting data.

§tx_count: SharedIncMetric

Number of successful write operations while transmitting data.

§tx_packets_count: SharedIncMetric

Number of transmitted packets.

§tx_queue_event_count: SharedIncMetric

Number of events associated with the transmitting queue.

§tx_rate_limiter_event_count: SharedIncMetric

Number of events associated with the rate limiter installed on the transmitting path.

§tx_rate_limiter_throttled: SharedIncMetric

Number of RX rate limiter throttling events.

§tx_spoofed_mac_count: SharedIncMetric

Number of packets with a spoofed mac, sent by the guest.

§tx_remaining_reqs_count: SharedIncMetric

Number of remaining requests in the TX queue.

Implementations§

Source§

impl NetDeviceMetrics

Source

pub fn new() -> Self

Const default construction.

Source

pub fn aggregate(&mut self, other: &Self)

Net metrics are SharedIncMetric where the diff of current vs old is serialized i.e. serialize_u64(current-old). So to have the aggregate serialized in same way we need to fetch the diff of current vs old metrics and add it to the aggregate.

Trait Implementations§

Source§

impl Debug for NetDeviceMetrics

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for NetDeviceMetrics

Source§

fn default() -> NetDeviceMetrics

Returns the “default value” for a type. Read more
Source§

impl Serialize for NetDeviceMetrics

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> AsAny for T
where T: Any,

Source§

fn as_any(&self) -> &(dyn Any + 'static)

Return the immutable any encapsulated object.
Source§

fn as_mut_any(&mut self) -> &mut (dyn Any + 'static)

Return the mutable encapsulated any object.
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> Conv for T

§

fn conv<T>(self) -> T
where Self: Into<T>,

Converts self into T using Into<T>. Read more
§

impl<T> FmtForward for T

§

fn fmt_binary(self) -> FmtBinary<Self>
where Self: Binary,

Causes self to use its Binary implementation when Debug-formatted.
§

fn fmt_display(self) -> FmtDisplay<Self>
where Self: Display,

Causes self to use its Display implementation when Debug-formatted.
§

fn fmt_lower_exp(self) -> FmtLowerExp<Self>
where Self: LowerExp,

Causes self to use its LowerExp implementation when Debug-formatted.
§

fn fmt_lower_hex(self) -> FmtLowerHex<Self>
where Self: LowerHex,

Causes self to use its LowerHex implementation when Debug-formatted.
§

fn fmt_octal(self) -> FmtOctal<Self>
where Self: Octal,

Causes self to use its Octal implementation when Debug-formatted.
§

fn fmt_pointer(self) -> FmtPointer<Self>
where Self: Pointer,

Causes self to use its Pointer implementation when Debug-formatted.
§

fn fmt_upper_exp(self) -> FmtUpperExp<Self>
where Self: UpperExp,

Causes self to use its UpperExp implementation when Debug-formatted.
§

fn fmt_upper_hex(self) -> FmtUpperHex<Self>
where Self: UpperHex,

Causes self to use its UpperHex implementation when Debug-formatted.
§

fn fmt_list(self) -> FmtList<Self>
where &'a Self: for<'a> IntoIterator,

Formats each item in a sequence. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

§

impl<T> Pipe for T
where T: ?Sized,

§

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
where Self: Sized,

Pipes by value. This is generally the method you want to use. Read more
§

fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> R
where R: 'a,

Borrows self and passes that borrow into the pipe function. Read more
§

fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> R
where R: 'a,

Mutably borrows self and passes that borrow into the pipe function. Read more
§

fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
where Self: Borrow<B>, B: 'a + ?Sized, R: 'a,

Borrows self, then passes self.borrow() into the pipe function. Read more
§

fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
where Self: BorrowMut<B>, B: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.borrow_mut() into the pipe function. Read more
§

fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
where Self: AsRef<U>, U: 'a + ?Sized, R: 'a,

Borrows self, then passes self.as_ref() into the pipe function.
§

fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
where Self: AsMut<U>, U: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.as_mut() into the pipe function.
§

fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
where Self: Deref<Target = T>, T: 'a + ?Sized, R: 'a,

Borrows self, then passes self.deref() into the pipe function.
§

fn pipe_deref_mut<'a, T, R>( &'a mut self, func: impl FnOnce(&'a mut T) -> R, ) -> R
where Self: DerefMut<Target = T> + Deref, T: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.deref_mut() into the pipe function.
§

impl<T> Tap for T

§

fn tap(self, func: impl FnOnce(&Self)) -> Self

Immutable access to a value. Read more
§

fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

Mutable access to a value. Read more
§

fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
where Self: Borrow<B>, B: ?Sized,

Immutable access to the Borrow<B> of a value. Read more
§

fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
where Self: BorrowMut<B>, B: ?Sized,

Mutable access to the BorrowMut<B> of a value. Read more
§

fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
where Self: AsRef<R>, R: ?Sized,

Immutable access to the AsRef<R> view of a value. Read more
§

fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
where Self: AsMut<R>, R: ?Sized,

Mutable access to the AsMut<R> view of a value. Read more
§

fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
where Self: Deref<Target = T>, T: ?Sized,

Immutable access to the Deref::Target of a value. Read more
§

fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
where Self: DerefMut<Target = T> + Deref, T: ?Sized,

Mutable access to the Deref::Target of a value. Read more
§

fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self

Calls .tap() only in debug builds, and is erased in release builds.
§

fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self

Calls .tap_mut() only in debug builds, and is erased in release builds.
§

fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
where Self: Borrow<B>, B: ?Sized,

Calls .tap_borrow() only in debug builds, and is erased in release builds.
§

fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
where Self: BorrowMut<B>, B: ?Sized,

Calls .tap_borrow_mut() only in debug builds, and is erased in release builds.
§

fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
where Self: AsRef<R>, R: ?Sized,

Calls .tap_ref() only in debug builds, and is erased in release builds.
§

fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
where Self: AsMut<R>, R: ?Sized,

Calls .tap_ref_mut() only in debug builds, and is erased in release builds.
§

fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
where Self: Deref<Target = T>, T: ?Sized,

Calls .tap_deref() only in debug builds, and is erased in release builds.
§

fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self
where Self: DerefMut<Target = T> + Deref, T: ?Sized,

Calls .tap_deref_mut() only in debug builds, and is erased in release builds.
§

impl<T> TryConv for T

§

fn try_conv<T>(self) -> Result<T, Self::Error>
where Self: TryInto<T>,

Attempts to convert self into T using TryInto<T>. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V