pub struct SysStatsConfig {
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>,
}
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.
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.
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>where
B: BufMut,
Self: Sized,
fn encode<B>(&self, buf: &mut B) -> Result<(), EncodeError>where
B: BufMut,
Self: Sized,
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>where
B: BufMut,
Self: Sized,
fn encode_length_delimited<B>(&self, buf: &mut B) -> Result<(), EncodeError>where
B: BufMut,
Self: Sized,
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>where
B: Buf,
Self: Default,
fn decode<B>(buf: B) -> Result<Self, DecodeError>where
B: Buf,
Self: Default,
Source§fn decode_length_delimited<B>(buf: B) -> Result<Self, DecodeError>where
B: Buf,
Self: Default,
fn decode_length_delimited<B>(buf: B) -> Result<Self, DecodeError>where
B: Buf,
Self: Default,
Source§fn merge<B>(&mut self, buf: B) -> Result<(), DecodeError>where
B: Buf,
Self: Sized,
fn merge<B>(&mut self, buf: B) -> Result<(), DecodeError>where
B: Buf,
Self: Sized,
self
. Read moreSource§fn merge_length_delimited<B>(&mut self, buf: B) -> Result<(), DecodeError>where
B: Buf,
Self: Sized,
fn merge_length_delimited<B>(&mut self, buf: B) -> Result<(), DecodeError>where
B: Buf,
Self: Sized,
self
.Source§impl PartialEq for SysStatsConfig
impl PartialEq for SysStatsConfig
impl StructuralPartialEq for SysStatsConfig
Auto Trait Implementations§
impl Freeze for SysStatsConfig
impl RefUnwindSafe for SysStatsConfig
impl Send for SysStatsConfig
impl Sync for SysStatsConfig
impl Unpin for SysStatsConfig
impl UnwindSafe for SysStatsConfig
Blanket Implementations§
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§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)