Skip to main content

chronon_telemetry/
console.rs

1use super::TelemetrySink;
2
3/// Writes telemetry via `tracing` (development and bench).
4///
5/// Prefer installing a `tracing` subscriber in the host. Events use target
6/// `chronon_telemetry` so they are filterable without raw stderr prints.
7#[derive(Debug, Default, Clone, Copy)]
8pub struct ConsoleSink;
9
10impl TelemetrySink for ConsoleSink {
11    fn record_counter(&self, name: &str, labels: &[(&str, &str)], delta: u64) {
12        tracing::info!(
13            target: "chronon_telemetry",
14            name,
15            delta,
16            ?labels,
17            "counter"
18        );
19    }
20
21    fn record_gauge(&self, name: &str, labels: &[(&str, &str)], value: f64) {
22        tracing::info!(
23            target: "chronon_telemetry",
24            name,
25            value,
26            ?labels,
27            "gauge"
28        );
29    }
30
31    fn log_event(&self, schema: &str, fields: &[(&str, &str)]) {
32        tracing::info!(
33            target: "chronon_telemetry",
34            schema,
35            ?fields,
36            "telemetry event"
37        );
38    }
39}