Struct Span
pub struct Span { /* private fields */ }
Expand description
Single operation within a trace.
Implementations§
§impl Span
impl Span
pub fn exported_data(&self) -> Option<SpanData>
pub fn exported_data(&self) -> Option<SpanData>
Convert information in this span into exporter::trace::SpanData
.
This function copies all data from the current span, which will create a
overhead.
Trait Implementations§
§impl Span for Span
impl Span for Span
§fn add_event_with_timestamp<T>(
&mut self,
name: T,
timestamp: SystemTime,
attributes: Vec<KeyValue>,
)
fn add_event_with_timestamp<T>( &mut self, name: T, timestamp: SystemTime, attributes: Vec<KeyValue>, )
Records events at a specific time in the context of a given Span
.
Note that the OpenTelemetry project documents certain “standard event names and keys” which have prescribed semantic meanings.
§fn span_context(&self) -> &SpanContext
fn span_context(&self) -> &SpanContext
Returns the SpanContext
for the given Span
.
§fn is_recording(&self) -> bool
fn is_recording(&self) -> bool
Returns true if this Span
is recording information like events with the add_event
operation, attributes using set_attributes
, status with set_status
, etc.
Always returns false after span end
.
§fn set_attribute(&mut self, attribute: KeyValue)
fn set_attribute(&mut self, attribute: KeyValue)
Sets a single Attribute
where the attribute properties are passed as arguments.
Note that the OpenTelemetry project documents certain “standard attributes” that have prescribed semantic meanings.
§fn set_status(&mut self, status: Status)
fn set_status(&mut self, status: Status)
Sets the status of this Span
.
If used, this will override the default span status, which is Status::Unset
.
§fn update_name<T>(&mut self, new_name: T)
fn update_name<T>(&mut self, new_name: T)
Updates the Span
’s name.
§fn add_link(&mut self, span_context: SpanContext, attributes: Vec<KeyValue>)
fn add_link(&mut self, span_context: SpanContext, attributes: Vec<KeyValue>)
Add Link
to this Span
§fn end_with_timestamp(&mut self, timestamp: SystemTime)
fn end_with_timestamp(&mut self, timestamp: SystemTime)
Finishes the span with given timestamp.
§fn add_event<T>(&mut self, name: T, attributes: Vec<KeyValue>)
fn add_event<T>(&mut self, name: T, attributes: Vec<KeyValue>)
§fn record_error(&mut self, err: &dyn Error)
fn record_error(&mut self, err: &dyn Error)
§fn set_attributes(&mut self, attributes: impl IntoIterator<Item = KeyValue>)
fn set_attributes(&mut self, attributes: impl IntoIterator<Item = KeyValue>)
Auto Trait Implementations§
impl Freeze for Span
impl !RefUnwindSafe for Span
impl Send for Span
impl Sync for Span
impl Unpin for Span
impl !UnwindSafe for Span
Blanket Implementations§
§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
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
§impl<T> FutureExt for T
impl<T> FutureExt for T
§fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
§fn with_current_context(self) -> WithContext<Self> ⓘ
fn with_current_context(self) -> WithContext<Self> ⓘ
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more§impl<T> ObjectSafeSpan for Twhere
T: Span,
impl<T> ObjectSafeSpan for Twhere
T: Span,
§fn add_event_with_timestamp(
&mut self,
name: Cow<'static, str>,
timestamp: SystemTime,
attributes: Vec<KeyValue>,
)
fn add_event_with_timestamp( &mut self, name: Cow<'static, str>, timestamp: SystemTime, attributes: Vec<KeyValue>, )
Span
. Read more§fn span_context(&self) -> &SpanContext
fn span_context(&self) -> &SpanContext
SpanContext
for the given Span
. The returned value may be used even after
the Span is finished. The returned value MUST be the same for the entire
Span` lifetime.§fn is_recording(&self) -> bool
fn is_recording(&self) -> bool
Span
is recording information like events with the add_event
operation, attributes using set_attributes
, status with set_status
, etc. Read more§fn set_attribute(&mut self, attribute: KeyValue)
fn set_attribute(&mut self, attribute: KeyValue)
Attribute
where the attribute properties are passed
as arguments. To avoid extra allocations some implementations may offer a separate API for
each of the possible value types. Read more§fn set_status(&mut self, status: Status)
fn set_status(&mut self, status: Status)
§fn update_name(&mut self, new_name: Cow<'static, str>)
fn update_name(&mut self, new_name: Cow<'static, str>)
Span
’s name. After this update, any sampling behavior based on the
name will depend on the implementation. Read more§fn add_link(&mut self, span_context: SpanContext, attributes: Vec<KeyValue>)
fn add_link(&mut self, span_context: SpanContext, attributes: Vec<KeyValue>)
§fn end_with_timestamp(&mut self, timestamp: SystemTime)
fn end_with_timestamp(&mut self, timestamp: SystemTime)
Span
with given timestamp Read more§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
§fn and<P, B, E>(self, other: P) -> And<T, P>
fn and<P, B, E>(self, other: P) -> And<T, P>
Policy
that returns Action::Follow
only if self
and other
return
Action::Follow
. Read more