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