revoke_trace/
lib.rs

1pub mod context;
2pub mod exporter;
3pub mod propagator;
4pub mod sampler;
5pub mod span;
6pub mod tracer;
7
8pub use context::{TraceContext, TraceContextExt};
9pub use exporter::{ExporterConfig, TraceExporter};
10pub use propagator::{HttpHeaders, TracePropagator};
11pub use sampler::{SamplingDecision, SamplingStrategy, TraceSampler};
12pub use span::{SpanBuilder, SpanKind, SpanStatus};
13pub use tracer::{RevokeTracer, TracerConfig};
14
15use opentelemetry_sdk::trace::TraceError;
16
17pub type Result<T> = std::result::Result<T, TraceError>;
18
19/// 初始化全局追踪器
20pub async fn init_tracer(config: TracerConfig) -> Result<()> {
21    let tracer = RevokeTracer::new(config).await?;
22    tracer.install_global()?;
23    Ok(())
24}
25
26/// 关闭全局追踪器
27pub async fn shutdown_tracer() -> Result<()> {
28    // OpenTelemetry 0.30 不再提供 shutdown_tracer_provider
29    // 关闭应该通过 TracerProvider 的 drop 来处理
30    Ok(())
31}