1use dipstick::{Input, InputScope, Prefixed, Stream, time};
5use std::io;
6use std::thread::sleep;
7use std::time::Duration;
8
9fn main() {
10 let app_metrics = Stream::write_to(io::stdout()).metrics();
12
13 let counter = app_metrics.counter("counter_a");
15 let level = app_metrics.level("level_a");
16 let timer = app_metrics.timer("timer_b");
17
18 app_metrics.counter("just_once").count(4);
20
21 let prefixed_metrics = app_metrics.named("subsystem");
23 let event = prefixed_metrics.marker("event_c");
24 let gauge = prefixed_metrics.gauge("gauge_d");
25
26 counter.count(11);
28 level.adjust(-4);
29 level.adjust(5);
30
31 gauge.value(22);
32 gauge.value(-24);
33
34 event.mark();
35
36 timer.interval_us(35573);
39
40 time!(timer, sleep(Duration::from_millis(5)));
42
43 timer.time(|| sleep(Duration::from_millis(5)));
45
46 let start_time = timer.start();
48 sleep(Duration::from_millis(5));
49 timer.stop(start_time);
50}