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_code: Option<StatusCode>,
pub status_message: Option<Cow<'static, str>>,
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
events: Option<Vec<Event>>Span events
links: Option<Vec<Link>>Span Links
status_code: Option<StatusCode>Span status code
status_message: Option<Cow<'static, str>>Span status message
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(self, attributes: Vec<KeyValue>) -> Self
pub fn with_attributes(self, attributes: Vec<KeyValue>) -> Self
Assign span attributes
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_code(self, code: StatusCode) -> Self
pub fn with_status_code(self, code: StatusCode) -> Self
Assign status code
sourcepub fn with_status_message<T: Into<Cow<'static, str>>>(self, message: T) -> Self
pub fn with_status_message<T: Into<Cow<'static, str>>>(self, message: T) -> Self
Assign status message
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
Returns a copy of the value. Read more
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
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
Returns the “default value” for a type. Read more
Auto Trait Implementations§
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
Mutably borrows from an owned value. Read more