opentelemetry::trace

Struct SpanBuilder

source
pub struct SpanBuilder {
    pub trace_id: Option<TraceId>,
    pub span_id: Option<SpanId>,
    pub span_kind: Option<SpanKind>,
    pub name: Cow<'static, str>,
    pub start_time: Option<SystemTime>,
    pub end_time: Option<SystemTime>,
    pub attributes: Option<Vec<KeyValue>>,
    pub events: Option<Vec<Event>>,
    pub links: Option<Vec<Link>>,
    pub status: Status,
    pub sampling_result: Option<SamplingResult>,
}
Expand description

SpanBuilder allows span attributes to be configured before the span has started.

use opentelemetry::{
    global,
    trace::{TracerProvider, SpanBuilder, SpanKind, Tracer},
};

let tracer = global::tracer("example-tracer");

// The builder can be used to create a span directly with the tracer
let _span = tracer.build(SpanBuilder {
    name: "example-span-name".into(),
    span_kind: Some(SpanKind::Server),
    ..Default::default()
});

// Or used with builder pattern
let _span = tracer
    .span_builder("example-span-name")
    .with_kind(SpanKind::Server)
    .start(&tracer);

Fields§

§trace_id: Option<TraceId>

Trace id, useful for integrations with external tracing systems.

§span_id: Option<SpanId>

Span id, useful for integrations with external tracing systems.

§span_kind: Option<SpanKind>

Span kind

§name: Cow<'static, str>

Span name

§start_time: Option<SystemTime>

Span start time

§end_time: Option<SystemTime>

Span end time

§attributes: Option<Vec<KeyValue>>

Span attributes that are provided at the span creation time. More attributes can be added afterwards. Providing duplicate keys will result in multiple attributes with the same key, as there is no de-duplication performed.

§events: Option<Vec<Event>>

Span events

§links: Option<Vec<Link>>

Span Links

§status: Status

Span status

§sampling_result: Option<SamplingResult>

Sampling result

Implementations§

source§

impl SpanBuilder

SpanBuilder methods

source

pub fn from_name<T: Into<Cow<'static, str>>>(name: T) -> Self

Create a new span builder from a span name

source

pub fn with_trace_id(self, trace_id: TraceId) -> Self

Specify trace id to use if no parent context exists

source

pub fn with_span_id(self, span_id: SpanId) -> Self

Assign span id

source

pub fn with_kind(self, span_kind: SpanKind) -> Self

Assign span kind

source

pub fn with_start_time<T: Into<SystemTime>>(self, start_time: T) -> Self

Assign span start time

source

pub fn with_end_time<T: Into<SystemTime>>(self, end_time: T) -> Self

Assign span end time

source

pub fn with_attributes<I>(self, attributes: I) -> Self
where I: IntoIterator<Item = KeyValue>,

Assign span attributes from an iterable. Providing duplicate keys will result in multiple attributes with the same key, as there is no de-duplication performed.

source

pub fn with_events(self, events: Vec<Event>) -> Self

Assign events

Assign links

source

pub fn with_status(self, status: Status) -> Self

Assign status code

source

pub fn with_sampling_result(self, sampling_result: SamplingResult) -> Self

Assign sampling result

source

pub fn start<T: Tracer>(self, tracer: &T) -> T::Span

Builds a span with the given tracer from this configuration.

source

pub fn start_with_context<T: Tracer>( self, tracer: &T, parent_cx: &Context, ) -> T::Span

Builds a span with the given tracer from this configuration and parent.

Trait Implementations§

source§

impl Clone for SpanBuilder

source§

fn clone(&self) -> SpanBuilder

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for SpanBuilder

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for SpanBuilder

source§

fn default() -> SpanBuilder

Returns the “default value” for a type. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> CloneToUninit for T
where T: Clone,

source§

unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T> FutureExt for T

source§

fn with_context(self, otel_cx: Context) -> WithContext<Self>

Attaches the provided Context to this type, returning a WithContext wrapper. Read more
source§

fn with_current_context(self) -> WithContext<Self>

Attaches the current Context to this type, returning a WithContext wrapper. Read more
source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> ToOwned for T
where T: Clone,

source§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

source§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.