[][src]Module holochain_tracing::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

Jaeger 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.

SpanSender

Sender of finished spans to the destination channel.

StartSpanOptions

Options for starting a span.