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<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
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. Providing duplicate keys will result in multiple attributes with the same key, as there is no de-duplication performed.
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 moresource§impl Debug for SpanBuilder
impl Debug for SpanBuilder
source§impl Default for SpanBuilder
impl Default for SpanBuilder
source§fn default() -> SpanBuilder
fn default() -> SpanBuilder
Auto Trait Implementations§
impl Freeze for SpanBuilder
impl RefUnwindSafe for SpanBuilder
impl Send for SpanBuilder
impl Sync for SpanBuilder
impl Unpin for SpanBuilder
impl UnwindSafe for SpanBuilder
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)