cf-gears-toolkit-trace-context 0.1.0
“W3C Trace Context propagation (parse, seed span parent, inject) shared by CF/Gears crates”
Package first published within seven daysPackage under two months old
SHA-2560ad4842e806ca1d1c2bae71bbf6d24739f60c9b00d2a94fc4c96d6355c7bf76d
MaleculeMd₂(In₃Pa)
Evidence
21:2… ![cfg_attr(coverage_nightly, feature(coverage_attribute))]
22
23use http::HeaderMap;
24
25/// The `(trace_id, span_id)` of the currently active `OTel` span, if valid.
26///
27/// Returns the raw `Copy` id types rather t …
42:63… aceId, opentelemetry::trace::SpanId)>
43{
44 use opentelemetry::trace::TraceContextExt as _;
45
46 let context = opentelemetry::Context::current();
47 let span = context.span();
48 …
147:26… )
148}
149
150#[cfg(feature = "otel")]
151mod imp {
152 use super::parse_trace_id;
153 use http::{HeaderMap, HeaderName, HeaderValue};
154 use opentelemetry::{
155 Context, global,
156 propagation::{Extractor, Injector},
157 };
158 use tracing::Span;
159 use tracing_opentelemetry::OpenTelemetrySpanExt as _;
160
161 /// Adapter for extracting W3C Trace Context from HTTP headers.
162 struct HeadersEx …
239:30… n(_headers: &mut HeaderMap) {}
240}
241
242pub use imp::{inject_current_span, set_parent_from_headers};
243
244#[cfg(test)]
245#[cfg_attr(coverage_nightly, coverage(off))]
246mod tests {
247 use super::*;
248 use http::HeaderMap;
249 use tracing::info_span;
250
251 const TID: &str = "4bf92f3577b34da6a3ce929d0e0e4736";
252
253 #[test]
254 fn get_traceparent_none_when_absent() {
255 assert!(get_traceparent(&HeaderMap::new()).is_none());
⋯4 lines
352:46…
353 use opentelemetry::global;
354 use opentelemetry_sdk::propagation::TraceContextPropagator;
355
356 global::set_text_map_propagator(TraceContextPropagator::new());
357 let mut heade …
No evidence locations were recorded for this file. Raw result