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
impl SysStatsConfig
Sourcepub fn meminfo_period_ms(&self) -> u32
pub fn meminfo_period_ms(&self) -> u32
Returns the value of meminfo_period_ms
, or the default value if meminfo_period_ms
is unset.
Sourcepub fn meminfo_counters(
&self,
) -> FilterMap<Cloned<Iter<'_, i32>>, fn(_: i32) -> Option<MeminfoCounters>>
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
.
Sourcepub fn push_meminfo_counters(&mut self, value: MeminfoCounters)
pub fn push_meminfo_counters(&mut self, value: MeminfoCounters)
Appends the provided enum value to meminfo_counters
.
Sourcepub fn vmstat_period_ms(&self) -> u32
pub fn vmstat_period_ms(&self) -> u32
Returns the value of vmstat_period_ms
, or the default value if vmstat_period_ms
is unset.
Sourcepub fn vmstat_counters(
&self,
) -> FilterMap<Cloned<Iter<'_, i32>>, fn(_: i32) -> Option<VmstatCounters>>
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
.
Sourcepub fn push_vmstat_counters(&mut self, value: VmstatCounters)
pub fn push_vmstat_counters(&mut self, value: VmstatCounters)
Appends the provided enum value to vmstat_counters
.
Sourcepub fn stat_period_ms(&self) -> u32
pub fn stat_period_ms(&self) -> u32
Returns the value of stat_period_ms
, or the default value if stat_period_ms
is unset.
Sourcepub fn stat_counters(
&self,
) -> FilterMap<Cloned<Iter<'_, i32>>, fn(_: i32) -> Option<StatCounters>>
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
.
Sourcepub fn push_stat_counters(&mut self, value: StatCounters)
pub fn push_stat_counters(&mut self, value: StatCounters)
Appends the provided enum value to stat_counters
.
Sourcepub fn devfreq_period_ms(&self) -> u32
pub fn devfreq_period_ms(&self) -> u32
Returns the value of devfreq_period_ms
, or the default value if devfreq_period_ms
is unset.
Sourcepub fn cpufreq_period_ms(&self) -> u32
pub fn cpufreq_period_ms(&self) -> u32
Returns the value of cpufreq_period_ms
, or the default value if cpufreq_period_ms
is unset.
Sourcepub fn buddyinfo_period_ms(&self) -> u32
pub fn buddyinfo_period_ms(&self) -> u32
Returns the value of buddyinfo_period_ms
, or the default value if buddyinfo_period_ms
is unset.
Sourcepub fn diskstat_period_ms(&self) -> u32
pub fn diskstat_period_ms(&self) -> u32
Returns the value of diskstat_period_ms
, or the default value if diskstat_period_ms
is unset.
Sourcepub fn psi_period_ms(&self) -> u32
pub fn psi_period_ms(&self) -> u32
Returns the value of psi_period_ms
, or the default value if psi_period_ms
is unset.
Sourcepub fn thermal_period_ms(&self) -> u32
pub fn thermal_period_ms(&self) -> u32
Returns the value of thermal_period_ms
, or the default value if thermal_period_ms
is unset.
Sourcepub fn cpuidle_period_ms(&self) -> u32
pub fn cpuidle_period_ms(&self) -> u32
Returns the value of cpuidle_period_ms
, or the default value if cpuidle_period_ms
is unset.
Sourcepub fn gpufreq_period_ms(&self) -> u32
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
impl Clone for SysStatsConfig
Source§fn clone(&self) -> SysStatsConfig
fn clone(&self) -> SysStatsConfig
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreSource§impl Debug for SysStatsConfig
impl Debug for SysStatsConfig
Source§impl Default for SysStatsConfig
impl Default for SysStatsConfig
Source§impl Message for SysStatsConfig
impl Message for SysStatsConfig
Source§fn encoded_len(&self) -> usize
fn encoded_len(&self) -> usize
Source§fn encode<B>(&self, buf: &mut B) -> Result<(), EncodeError>
fn encode<B>(&self, buf: &mut B) -> Result<(), EncodeError>
Source§fn encode_to_vec(&self) -> Vec<u8>where
Self: Sized,
fn encode_to_vec(&self) -> Vec<u8>where
Self: Sized,
Source§fn encode_length_delimited<B>(&self, buf: &mut B) -> Result<(), EncodeError>
fn encode_length_delimited<B>(&self, buf: &mut B) -> Result<(), EncodeError>
Source§fn encode_length_delimited_to_vec(&self) -> Vec<u8>where
Self: Sized,
fn encode_length_delimited_to_vec(&self) -> Vec<u8>where
Self: Sized,
Source§fn decode<B>(buf: B) -> Result<Self, DecodeError>
fn decode<B>(buf: B) -> Result<Self, DecodeError>
Source§fn decode_length_delimited<B>(buf: B) -> Result<Self, DecodeError>
fn decode_length_delimited<B>(buf: B) -> Result<Self, DecodeError>
Source§fn merge<B>(&mut self, buf: B) -> Result<(), DecodeError>
fn merge<B>(&mut self, buf: B) -> Result<(), DecodeError>
self
. Read moreSource§fn merge_length_delimited<B>(&mut self, buf: B) -> Result<(), DecodeError>
fn merge_length_delimited<B>(&mut self, buf: B) -> Result<(), DecodeError>
self
.