veecle-telemetry 0.1.0

Veecle OS telemetry
Documentation
#![expect(missing_docs, reason = "example")]

use veecle_telemetry::collector::ConsoleJsonExporter;
use veecle_telemetry::protocol::ExecutionId;
use veecle_telemetry::{Span, SpanContext};

fn main() {
    let execution_id = ExecutionId::random(&mut rand::rng());
    veecle_telemetry::collector::set_exporter(execution_id, &ConsoleJsonExporter)
        .expect("exporter was not set yet");

    let _span = Span::root("main", SpanContext::generate(), &[]).entered();
    nested();
}

fn nested() {
    let _span = veecle_telemetry::span!("nested").entered();
    deeply_nested();
    std::thread::sleep(std::time::Duration::from_millis(10));
    deeply_nested();
}

fn deeply_nested() {
    let _span = veecle_telemetry::span!("deeply_nested", test = true).entered();
    std::thread::sleep(std::time::Duration::from_millis(10));
}