Struct opentelemetry_api::trace::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<OrderMap<Key, Value>>,
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_api::{
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<OrderMap<Key, Value>>
Span attributes
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
impl SpanBuilder
SpanBuilder methods
sourcepub fn from_name<T: Into<Cow<'static, str>>>(name: T) -> Self
pub fn from_name<T: Into<Cow<'static, str>>>(name: T) -> Self
Create a new span builder from a span name
sourcepub fn with_trace_id(self, trace_id: TraceId) -> Self
pub fn with_trace_id(self, trace_id: TraceId) -> Self
Specify trace id to use if no parent context exists
sourcepub fn with_span_id(self, span_id: SpanId) -> Self
pub fn with_span_id(self, span_id: SpanId) -> Self
Assign span id
sourcepub fn with_start_time<T: Into<SystemTime>>(self, start_time: T) -> Self
pub fn with_start_time<T: Into<SystemTime>>(self, start_time: T) -> Self
Assign span start time
sourcepub fn with_end_time<T: Into<SystemTime>>(self, end_time: T) -> Self
pub fn with_end_time<T: Into<SystemTime>>(self, end_time: T) -> Self
Assign span end time
sourcepub fn with_attributes<I>(self, attributes: I) -> Selfwhere
I: IntoIterator<Item = KeyValue>,
pub fn with_attributes<I>(self, attributes: I) -> Selfwhere I: IntoIterator<Item = KeyValue>,
Assign span attributes from an iterable.
Check out SpanBuilder::with_attributes_map
to assign span attributes
via an OrderMap
instance.
sourcepub fn with_attributes_map(self, attributes: OrderMap<Key, Value>) -> Self
pub fn with_attributes_map(self, attributes: OrderMap<Key, Value>) -> Self
Assign span attributes.
Check out SpanBuilder::with_attributes
to assign span attributes
from an iterable of KeyValue
s.
sourcepub fn with_events(self, events: Vec<Event>) -> Self
pub fn with_events(self, events: Vec<Event>) -> Self
Assign events
sourcepub fn with_links(self, links: Vec<Link>) -> Self
pub fn with_links(self, links: Vec<Link>) -> Self
Assign links
sourcepub fn with_status(self, status: Status) -> Self
pub fn with_status(self, status: Status) -> Self
Assign status code
sourcepub fn with_sampling_result(self, sampling_result: SamplingResult) -> Self
pub fn with_sampling_result(self, sampling_result: SamplingResult) -> Self
Assign sampling result
Trait Implementations§
source§impl Clone for SpanBuilder
impl Clone for SpanBuilder
source§fn clone(&self) -> SpanBuilder
fn clone(&self) -> SpanBuilder
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read more