SysStatsConfig

Struct SysStatsConfig 

Source
pub struct SysStatsConfig {
Show 14 fields pub meminfo_period_ms: Option<u32>, pub meminfo_counters: Vec<i32>, pub vmstat_period_ms: Option<u32>, pub vmstat_counters: Vec<i32>, pub stat_period_ms: Option<u32>, pub stat_counters: Vec<i32>, pub devfreq_period_ms: Option<u32>, pub cpufreq_period_ms: Option<u32>, pub buddyinfo_period_ms: Option<u32>, pub diskstat_period_ms: Option<u32>, pub psi_period_ms: Option<u32>, pub thermal_period_ms: Option<u32>, pub cpuidle_period_ms: Option<u32>, pub gpufreq_period_ms: Option<u32>,
}
Expand description

This file defines the configuration for the Linux /proc poller data source, which injects counters in the trace. Counters that are needed in the trace must be explicitly listed in the _counters fields. This is to avoid spamming the trace with all counters at all times. The sampling rate is configurable. All polling rates (_period_ms) need to be integer multiples of each other. OK: [10ms, 10ms, 10ms], [10ms, 20ms, 10ms], [10ms, 20ms, 60ms] Not OK: [10ms, 10ms, 11ms], [10ms, 15ms, 20ms]

Fields§

§meminfo_period_ms: Option<u32>

Polls /proc/meminfo every X ms, if non-zero. This is required to be > 10ms to avoid excessive CPU usage. Cost: 0.3 ms [read] + 0.07 ms [parse + trace injection]

§meminfo_counters: Vec<i32>

If empty all known counters are reported. Otherwise, only the counters specified below are reported.

§vmstat_period_ms: Option<u32>

Polls /proc/vmstat every X ms, if non-zero. This is required to be > 10ms to avoid excessive CPU usage. Cost: 0.2 ms [read] + 0.3 ms [parse + trace injection]

§vmstat_counters: Vec<i32>§stat_period_ms: Option<u32>

Pols /proc/stat every X ms, if non-zero. This is required to be > 10ms to avoid excessive CPU usage. Cost: 4.1 ms [read] + 1.9 ms [parse + trace injection]

§stat_counters: Vec<i32>§devfreq_period_ms: Option<u32>

Polls /sys/devfreq/*/curfreq every X ms, if non-zero. This is required to be > 10ms to avoid excessive CPU usage. This option can be used to record unchanging values. Updates from frequency changes can come from ftrace/set_clock_rate.

§cpufreq_period_ms: Option<u32>

Polls /sys/devices/system/cpu/cpu*/cpufreq/cpuinfo_cur_freq every X ms. This is required to be > 10ms to avoid excessive CPU usage.

§buddyinfo_period_ms: Option<u32>

Polls /proc/buddyinfo every X ms, if non-zero. This is required to be > 10ms to avoid excessive CPU usage.

§diskstat_period_ms: Option<u32>

Polls /proc/diskstats every X ms, if non-zero. This is required to be > 10ms to avoid excessive CPU usage.

§psi_period_ms: Option<u32>

Polls /proc/pressure/* every X ms, if non-zero. This is required to be > 10ms to avoid excessive CPU usage.

§thermal_period_ms: Option<u32>

Polls /sys/class/thermal/* every X ms, if non-zero. This is required to be > 10ms to avoid excessive CPU usage.

§cpuidle_period_ms: Option<u32>

Polls /sys/devices/system/cpu/cpu*/cpuidle/state* every X ms, if non-zero. This is required to be > 10ms to avoid excessive CPU usage.

§gpufreq_period_ms: Option<u32>

Polls device-specific GPU frequency info every X ms, if non-zero. This is required to be > 10ms to avoid excessive CPU usage.

Implementations§

Source§

impl SysStatsConfig

Source

pub fn meminfo_period_ms(&self) -> u32

Returns the value of meminfo_period_ms, or the default value if meminfo_period_ms is unset.

Source

pub fn meminfo_counters( &self, ) -> FilterMap<Cloned<Iter<'_, i32>>, fn(i32) -> Option<MeminfoCounters>>

Returns an iterator which yields the valid enum values contained in meminfo_counters.

Source

pub fn push_meminfo_counters(&mut self, value: MeminfoCounters)

Appends the provided enum value to meminfo_counters.

Source

pub fn vmstat_period_ms(&self) -> u32

Returns the value of vmstat_period_ms, or the default value if vmstat_period_ms is unset.

Source

pub fn vmstat_counters( &self, ) -> FilterMap<Cloned<Iter<'_, i32>>, fn(i32) -> Option<VmstatCounters>>

Returns an iterator which yields the valid enum values contained in vmstat_counters.

Source

pub fn push_vmstat_counters(&mut self, value: VmstatCounters)

Appends the provided enum value to vmstat_counters.

Source

pub fn stat_period_ms(&self) -> u32

Returns the value of stat_period_ms, or the default value if stat_period_ms is unset.

Source

pub fn stat_counters( &self, ) -> FilterMap<Cloned<Iter<'_, i32>>, fn(i32) -> Option<StatCounters>>

Returns an iterator which yields the valid enum values contained in stat_counters.

Source

pub fn push_stat_counters(&mut self, value: StatCounters)

Appends the provided enum value to stat_counters.

Source

pub fn devfreq_period_ms(&self) -> u32

Returns the value of devfreq_period_ms, or the default value if devfreq_period_ms is unset.

Source

pub fn cpufreq_period_ms(&self) -> u32

Returns the value of cpufreq_period_ms, or the default value if cpufreq_period_ms is unset.

Source

pub fn buddyinfo_period_ms(&self) -> u32

Returns the value of buddyinfo_period_ms, or the default value if buddyinfo_period_ms is unset.

Source

pub fn diskstat_period_ms(&self) -> u32

Returns the value of diskstat_period_ms, or the default value if diskstat_period_ms is unset.

Source

pub fn psi_period_ms(&self) -> u32

Returns the value of psi_period_ms, or the default value if psi_period_ms is unset.

Source

pub fn thermal_period_ms(&self) -> u32

Returns the value of thermal_period_ms, or the default value if thermal_period_ms is unset.

Source

pub fn cpuidle_period_ms(&self) -> u32

Returns the value of cpuidle_period_ms, or the default value if cpuidle_period_ms is unset.

Source

pub fn gpufreq_period_ms(&self) -> u32

Returns the value of gpufreq_period_ms, or the default value if gpufreq_period_ms is unset.

Trait Implementations§

Source§

impl Clone for SysStatsConfig

Source§

fn clone(&self) -> SysStatsConfig

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for SysStatsConfig

Source§

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

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

impl Default for SysStatsConfig

Source§

fn default() -> Self

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

impl Hash for SysStatsConfig

Source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl Message for SysStatsConfig

Source§

fn encoded_len(&self) -> usize

Returns the encoded length of the message without a length delimiter.
Source§

fn clear(&mut self)

Clears the message, resetting all fields to their default.
Source§

fn encode(&self, buf: &mut impl BufMut) -> Result<(), EncodeError>
where Self: Sized,

Encodes the message to a buffer. Read more
Source§

fn encode_to_vec(&self) -> Vec<u8>
where Self: Sized,

Encodes the message to a newly allocated buffer.
Source§

fn encode_length_delimited( &self, buf: &mut impl BufMut, ) -> Result<(), EncodeError>
where Self: Sized,

Encodes the message with a length-delimiter to a buffer. Read more
Source§

fn encode_length_delimited_to_vec(&self) -> Vec<u8>
where Self: Sized,

Encodes the message with a length-delimiter to a newly allocated buffer.
Source§

fn decode(buf: impl Buf) -> Result<Self, DecodeError>
where Self: Default,

Decodes an instance of the message from a buffer. Read more
Source§

fn decode_length_delimited(buf: impl Buf) -> Result<Self, DecodeError>
where Self: Default,

Decodes a length-delimited instance of the message from the buffer.
Source§

fn merge(&mut self, buf: impl Buf) -> Result<(), DecodeError>
where Self: Sized,

Decodes an instance of the message from a buffer, and merges it into self. Read more
Source§

fn merge_length_delimited(&mut self, buf: impl Buf) -> Result<(), DecodeError>
where Self: Sized,

Decodes a length-delimited instance of the message from buffer, and merges it into self.
Source§

impl PartialEq for SysStatsConfig

Source§

fn eq(&self, other: &SysStatsConfig) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Eq for SysStatsConfig

Source§

impl StructuralPartialEq for SysStatsConfig

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> 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
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. 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.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. 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.