pub struct Config<T> {
pub sample_rate: f64,
pub duration: usize,
pub windows: usize,
pub max_tau: usize,
pub capacity: usize,
pub batch_size: usize,
pub service_mode: bool,
pub poll_delay: Option<Duration>,
pub trace_file: Option<String>,
pub waterfall_file: Option<String>,
pub heatmap_config: Config,
pub histogram_config: Config,
/* private fields */
}
Expand description
a configuration struct for customizing Receiver
Fields§
§sample_rate: f64
the nominal sampling rate in Hertz
duration: usize
duration of a reporting interval (window) in seconds typical values are 1 or 60 for secondly or minutely reporting
windows: usize
the number of reporting intervals (windows) to aggregate in heatmap and traces. NOTE: The receiver will halt if service_mode is false and the total number of windows have elapsed
max_tau: usize
the largest Tau used in producing Allan Deviation meta-metrics
capacity: usize
the capacity of the stats queue. Default: 256
batch_size: usize
the default batch size of a Sender
. Default: 512
service_mode: bool
set continuous-run mode. heatmaps and traces will generate
every N windows when this is set to true. If it is set to false,
the Receiver
will halt after N windows
poll_delay: Option<Duration>
set an optional delay between calls to poll
trace_file: Option<String>
save a latency heatmap trace to the given file
waterfall_file: Option<String>
save a waterfal png of the latency heatmap to the given file
heatmap_config: Config
the shared Heatmap
configuration
histogram_config: Config
the shared Histogram
configuration
Implementations§
Source§impl<T: Hash + Eq + Send + Display + Clone> Config<T>
impl<T: Hash + Eq + Send + Display + Clone> Config<T>
Sourcepub fn sample_rate(self, frequency: f64) -> Self
pub fn sample_rate(self, frequency: f64) -> Self
set sampling rate in Hertz: default 1 Hz
§Example
let mut c = Receiver::<usize>::configure();
c.sample_rate(1.0); // set to 1 Hz sample rate
Sourcepub fn duration(self, duration: usize) -> Self
pub fn duration(self, duration: usize) -> Self
set integration window in seconds: default 60
§Example
let mut c = Receiver::<usize>::configure();
c.duration(60); // set to 60 second integration window
Sourcepub fn windows(self, windows: usize) -> Self
pub fn windows(self, windows: usize) -> Self
set number of windows to collect: default 60
§Example
let mut c = Receiver::<usize>::configure();
c.windows(60); // collect for 60 x duration and terminate
Sourcepub fn max_tau(self, tau: usize) -> Self
pub fn max_tau(self, tau: usize) -> Self
set max Tau used in calculating Allan Deviation: default 300
§Example
let mut c = Receiver::<usize>::configure();
c.max_tau(300); // produce ADEV from 1-300 inclusive
Sourcepub fn capacity(self, capacity: usize) -> Self
pub fn capacity(self, capacity: usize) -> Self
set capacity of the queue: default 256
§Example
let mut c = Receiver::<usize>::configure();
c.capacity(256); // buffer for 256 batches of samples
Sourcepub fn batch_size(self, batch_size: usize) -> Self
pub fn batch_size(self, batch_size: usize) -> Self
set batch size of the sender: default 512
§Example
let mut c = Receiver::<usize>::configure();
c.batch_size(512); // batch 512 samples in one queue write
Sourcepub fn trace_file(self, path: String) -> Self
pub fn trace_file(self, path: String) -> Self
set the heatmap trace file
§Example
let mut c = Receiver::<usize>::configure();
c.trace_file("/tmp/heatmap.trace".to_owned()); // heatmap trace will write here
Sourcepub fn waterfall_file(self, path: String) -> Self
pub fn waterfall_file(self, path: String) -> Self
set the heatmap trace file
§Example
let mut c = Receiver::<usize>::configure();
c.waterfall_file("/tmp/waterfall.png".to_owned()); // waterfall png will render here
Sourcepub fn poll_delay(self, delay: Option<Duration>) -> Self
pub fn poll_delay(self, delay: Option<Duration>) -> Self
set the poll delay
§Example
let mut c = Receiver::<usize>::configure();
c.poll_delay(Some(Duration::new(0, 100_000)));