1use dipstick::*;
5use std::thread::sleep;
6use std::time::Duration;
7
8metrics! {
9 APP = "application" => {
10 pub COUNTER: Counter = "counter";
11 }
12}
13
14fn main() {
15 let one_minute = AtomicBucket::new();
16 one_minute.flush_every(Duration::from_secs(60));
17
18 let five_minutes = AtomicBucket::new();
19 five_minutes.flush_every(Duration::from_secs(300));
20
21 let fifteen_minutes = AtomicBucket::new();
22 fifteen_minutes.flush_every(Duration::from_secs(900));
23
24 let all_buckets = MultiInputScope::new()
25 .add_target(one_minute)
26 .add_target(five_minutes)
27 .add_target(fifteen_minutes)
28 .named("machine_name");
29
30 Proxy::default().target(all_buckets);
32 AtomicBucket::default_drain(Stream::write_to_stdout());
33 AtomicBucket::default_stats(stats_all);
34
35 loop {
36 COUNTER.count(17);
37 sleep(Duration::from_secs(3));
38 }
39}