Skip to main content

boson_telemetry/
console.rs

1use super::OpsLog;
2
3/// stderr structured lines (default dev adapter).
4///
5/// # Examples
6///
7/// ```
8/// use boson_telemetry::{ConsoleOpsLog, OpsLog};
9///
10/// let log = ConsoleOpsLog;
11/// log.record_counter("boson_tasks_enqueued", &[("task_name", "ping")], 1.0);
12/// ```
13#[derive(Debug, Default, Clone, Copy)]
14pub struct ConsoleOpsLog;
15
16impl OpsLog for ConsoleOpsLog {
17    fn record_counter(&self, name: &str, labels: &[(&str, &str)], value: f64) {
18        eprintln!("[boson-telemetry] counter {name}={value} {labels:?}");
19    }
20
21    fn record_gauge(&self, name: &str, labels: &[(&str, &str)], value: f64) {
22        eprintln!("[boson-telemetry] gauge {name}={value} {labels:?}");
23    }
24
25    fn log_event(&self, name: &str, payload: &serde_json::Value) {
26        eprintln!("[boson-telemetry] event {name} {payload}");
27    }
28}