Available on crate feature trace only.
Expand description

OpenTelemetry Trace SDK

The tracing SDK consist of a few main structs:

  • The Tracer struct which performs all tracing operations.
  • The Span struct with is a mutable object storing information about the current operation execution.
  • The TracerProvider struct which configures and produces Tracers.


Batch span processor configuration

A SpanProcessor that asynchronously buffers finished spans and reports them at a preconfigured interval.

A builder for creating BatchSpanProcessor instances.

Builder for provider attributes.

Tracer configuration

A hash map with a capped number of attributes that retains the most recently set entries.

This queue maintains an ordered list of elements, and a count of dropped elements. Elements are removed from the queue in a first in first out fashion.

Default IdGenerator implementation.

A SpanProcessor that exports synchronously when spans are finished.

Single operation within a trace.

Span limit configuration to keep attributes, events and links to a span in a reasonable number.

Tracer implementation to create and manage spans

Creator and registry of named Tracer instances.

Generates AWS X-Ray compliant Trace and Span ids.


Messages sent between application thread and batch span processor’s work thread.

Default Sampling options


Interface for generating IDs

The ShouldSample interface allows implementations to provide samplers which will return a sampling SamplingResult based on information that is typically available just before the Span was created.

SpanProcessor is an interface which allows hooks for span start and end method invocations. The span processors are invoked only when is_recording is true.

Trace runtime is an extension to Runtime. Currently it provides a channel that used by BatchSpanProcessor.

TrySend is an abstraction of sender that is capable to send BatchMessage with reference.


Default trace configuration