dipstick/examples/async_queue.rs

23 lines
671 B
Rust
Executable File

//! A sample application asynchronously printing metrics to stdout.
use dipstick::{Input, InputScope, QueuedInput, Stream};
use std::thread;
use std::thread::sleep;
use std::time::Duration;
fn main() {
let async_metrics = Stream::write_to_stdout().queued(100).metrics();
let counter = async_metrics.counter("counter_a");
for _ in 0..4 {
let counter = counter.clone();
thread::spawn(move || {
loop {
// report some metric values from our "application" loop
counter.count(11);
sleep(Duration::from_millis(50));
}
});
}
sleep(Duration::from_secs(5000));
}