Module rustracing_jaeger::span
source · Expand description
Span.
§How to inject/extract a span
You can inject/extract the context of a span by using SpanContext::inject_to_xxx
and
SpanContext::extract_from_xxx
methods respectively.
The simplest way is to use HashMap
as the carrier as follows:
use std::collections::HashMap;
use rustracing_jaeger::span::SpanContext;
// Extraction
let mut carrier = HashMap::new();
carrier.insert(
"uber-trace-id".to_string(), // NOTE: The key must be lower-case
"6309ab92c95468edea0dc1a9772ae2dc:409423a204bc17a8:0:1".to_string(),
);
let context = SpanContext::extract_from_text_map(&carrier)?.unwrap();
let trace_id = context.state().trace_id();
assert_eq!(trace_id.to_string(), "6309ab92c95468edea0dc1a9772ae2dc");
// Injection
let mut injected_carrier = HashMap::new();
context.inject_to_text_map(&mut injected_carrier)?;
assert_eq!(injected_carrier, carrier);
§References
Structs§
- Jaeger specific span context state.
SpanContextState
builder.- Unique 128bit identifier of a trace.
Type Aliases§
- Candidate span for tracing.
- Finished span.
- Span.
- Span context.
- Span handle.
- Span receiver.
- Span reference.
- Sender of finished spans to the destination channel.
- Options for starting a span.