pub struct ProcessSmapsConfig {
pub smaps_config: Option<SmapsConfig>,
pub scope: Option<Scope>,
pub read_period_ms: Option<u32>,
pub max_processes_per_period: Option<u32>,
}Expand description
Config for the “linux.smaps” data source, describes one-shot or periodic /proc/pid/smaps collection.
A valid config must specify at least one |target_cmdline| or |target_uid|. Example:
data_sources { config { name: “linux.smaps” process_smaps_config { scope { target_cmdline: “top” target_cmdline: “tmux” } } } }
Fields§
§smaps_config: Option<SmapsConfig>Which fields to record per process. If unset, defaults to {size, rss, anon, swap}, aggregated by path name.
scope: Option<Scope>§read_period_ms: Option<u32>How often to recapture the smaps, including re-evaluating which processes match the |scope|. May be overridden by the implementation (at the time of writing, [1s, 24hr] range). If zero or unset, each process is captured only once at start.
max_processes_per_period: Option<u32>Caps the number of processes handled per |read_period_ms|, or overall if the config is one-shot (period = 0). The immediate use case is to limit work if too many processes match the |scope|. Additionally, this option can be used for sampling, since the implementation inspects processes in a shuffled order (not in numeric pid order), and successive periods cover separate subsets of pids. So a config with scope=*, period=10s, and max_processes=5 would progressively scan all processes on the machine by parsing 5 processes at a time with 10s breaks in between. If zero or unset, there is no limit.
Implementations§
Source§impl ProcessSmapsConfig
impl ProcessSmapsConfig
Sourcepub fn read_period_ms(&self) -> u32
pub fn read_period_ms(&self) -> u32
Returns the value of read_period_ms, or the default value if read_period_ms is unset.
Sourcepub fn max_processes_per_period(&self) -> u32
pub fn max_processes_per_period(&self) -> u32
Returns the value of max_processes_per_period, or the default value if max_processes_per_period is unset.
Trait Implementations§
Source§impl Clone for ProcessSmapsConfig
impl Clone for ProcessSmapsConfig
Source§impl Debug for ProcessSmapsConfig
impl Debug for ProcessSmapsConfig
Source§impl Default for ProcessSmapsConfig
impl Default for ProcessSmapsConfig
Source§impl Message for ProcessSmapsConfig
impl Message for ProcessSmapsConfig
Source§fn encoded_len(&self) -> usize
fn encoded_len(&self) -> usize
Source§fn encode(&self, buf: &mut impl BufMut) -> Result<(), EncodeError>where
Self: Sized,
fn encode(&self, buf: &mut impl BufMut) -> Result<(), EncodeError>where
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(
&self,
buf: &mut impl BufMut,
) -> Result<(), EncodeError>where
Self: Sized,
fn encode_length_delimited(
&self,
buf: &mut impl BufMut,
) -> Result<(), EncodeError>where
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(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
fn decode(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
Source§fn decode_length_delimited(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
fn decode_length_delimited(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
Source§fn merge(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
fn merge(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
self. Read moreSource§fn merge_length_delimited(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
fn merge_length_delimited(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
self.