[][src]Module rustracing_jaeger::span

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

SpanContextState

Jager specific span context state.

SpanContextStateBuilder

SpanContextState builder.

TraceId

Unique 128bit identifier of a trace.

Type Definitions

CandidateSpan

Candidate span for tracing.

FinishedSpan

Finished span.

Span

Span.

SpanContext

Span context.

SpanHandle

Span handle.

SpanReceiver

Span receiver.

SpanReference

Span reference.

StartSpanOptions

Options for starting a span.