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    #[allow(clippy::print_stderr)] // Intentional console adapter for local/dev telemetry.
18    fn record_counter(&self, name: &str, labels: &[(&str, &str)], value: f64) {
19        eprintln!("[boson-telemetry] counter {name}={value} {labels:?}");
20    }
21
22    #[allow(clippy::print_stderr)] // Intentional console adapter for local/dev telemetry.
23    fn record_gauge(&self, name: &str, labels: &[(&str, &str)], value: f64) {
24        eprintln!("[boson-telemetry] gauge {name}={value} {labels:?}");
25    }
26
27    #[allow(clippy::print_stderr)] // Intentional console adapter for local/dev telemetry.
28    fn log_event(&self, name: &str, payload: &serde_json::Value) {
29        eprintln!("[boson-telemetry] event {name} {payload}");
30    }
31}