revoke-trace 0.3.0

Distributed tracing with OpenTelemetry for Revoke framework
Documentation
pub mod context;
pub mod exporter;
pub mod propagator;
pub mod sampler;
pub mod span;
pub mod tracer;

pub use context::{TraceContext, TraceContextExt};
pub use exporter::{ExporterConfig, TraceExporter};
pub use propagator::{HttpHeaders, TracePropagator};
pub use sampler::{SamplingDecision, SamplingStrategy, TraceSampler};
pub use span::{SpanBuilder, SpanKind, SpanStatus};
pub use tracer::{RevokeTracer, TracerConfig};

use opentelemetry_sdk::trace::TraceError;

pub type Result<T> = std::result::Result<T, TraceError>;

/// 初始化全局追踪器
pub async fn init_tracer(config: TracerConfig) -> Result<()> {
    let tracer = RevokeTracer::new(config).await?;
    tracer.install_global()?;
    Ok(())
}

/// 关闭全局追踪器
pub async fn shutdown_tracer() -> Result<()> {
    // OpenTelemetry 0.30 不再提供 shutdown_tracer_provider
    // 关闭应该通过 TracerProvider 的 drop 来处理
    Ok(())
}