pub mod lifecycle;
pub mod metrics;
pub mod spans;
pub use metrics::{
record_workflow_finished, record_workflow_started, record_workflow_step_completed,
};
pub use spans::{
ProcessTraceContext, TraceCarrier, extract_context, inject_context, inject_current_context,
};
#[must_use]
pub fn current_trace_context() -> TraceCarrier {
inject_current_context()
}
#[cfg(test)]
pub(crate) mod test_lock {
use std::sync::{Mutex, MutexGuard};
static TELEMETRY_TEST_LOCK: Mutex<()> = Mutex::new(());
pub(crate) fn guard() -> MutexGuard<'static, ()> {
TELEMETRY_TEST_LOCK
.lock()
.unwrap_or_else(std::sync::PoisonError::into_inner)
}
}