Struct opentelemetry::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, RandomState>>,
pub events: Option<Vec<Event, Global>>,
pub links: Option<Vec<Link, Global>>,
pub status: Status,
pub sampling_result: Option<SamplingResult>,
}
trace
only.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, RandomState>>
Span attributes
events: Option<Vec<Event, Global>>
Span events
links: Option<Vec<Link, Global>>
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>(name: T) -> SpanBuilderwhere
T: Into<Cow<'static, str>>,
pub fn from_name<T>(name: T) -> SpanBuilderwhere T: Into<Cow<'static, str>>,
Create a new span builder from a span name
sourcepub fn with_trace_id(self, trace_id: TraceId) -> SpanBuilder
pub fn with_trace_id(self, trace_id: TraceId) -> SpanBuilder
Specify trace id to use if no parent context exists
sourcepub fn with_span_id(self, span_id: SpanId) -> SpanBuilder
pub fn with_span_id(self, span_id: SpanId) -> SpanBuilder
Assign span id
sourcepub fn with_kind(self, span_kind: SpanKind) -> SpanBuilder
pub fn with_kind(self, span_kind: SpanKind) -> SpanBuilder
Assign span kind
sourcepub fn with_start_time<T>(self, start_time: T) -> SpanBuilderwhere
T: Into<SystemTime>,
pub fn with_start_time<T>(self, start_time: T) -> SpanBuilderwhere T: Into<SystemTime>,
Assign span start time
sourcepub fn with_end_time<T>(self, end_time: T) -> SpanBuilderwhere
T: Into<SystemTime>,
pub fn with_end_time<T>(self, end_time: T) -> SpanBuilderwhere T: Into<SystemTime>,
Assign span end time
sourcepub fn with_attributes<I>(self, attributes: I) -> SpanBuilderwhere
I: IntoIterator<Item = KeyValue>,
pub fn with_attributes<I>(self, attributes: I) -> SpanBuilderwhere 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, RandomState>
) -> SpanBuilder
pub fn with_attributes_map( self, attributes: OrderMap<Key, Value, RandomState> ) -> SpanBuilder
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, Global>) -> SpanBuilder
pub fn with_events(self, events: Vec<Event, Global>) -> SpanBuilder
Assign events
sourcepub fn with_links(self, links: Vec<Link, Global>) -> SpanBuilder
pub fn with_links(self, links: Vec<Link, Global>) -> SpanBuilder
Assign links
sourcepub fn with_status(self, status: Status) -> SpanBuilder
pub fn with_status(self, status: Status) -> SpanBuilder
Assign status code
sourcepub fn with_sampling_result(
self,
sampling_result: SamplingResult
) -> SpanBuilder
pub fn with_sampling_result( self, sampling_result: SamplingResult ) -> SpanBuilder
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