[][src]Struct opentracingrust::Span

pub struct Span { /* fields omitted */ }

Model of an in progress operation.

A Span is to a distributed trace what a stack frame is to a stack trace.

Spans are created by Tracers with Tracer::span. Spans can be populated with StartOptions passed to Tracer::span and with the mutating methods described below.

Once an operation is complete the span should be finished with Span::finished.

Methods

impl Span[src]

pub fn new(
    name: &str,
    context: SpanContext,
    options: StartOptions,
    sender: SpanSender
) -> Span
[src]

Creates a new Span instance and initialises any passed StartOptions.

This function is for use by TracerInterface implementations in their TracerInterface::span method.

The sender argument is the sending end of an crossbeam_channel::unbounded. The receiving end of this channel, usually returned by the tracer's initialisation routine, will gather FinishedSpans so they can be shipped to the distributed tracer.

impl Span[src]

pub fn auto_finish(self) -> AutoFinishingSpan[src]

Convert the running Span into an AutoFinishingSpan.

Spans instances need to be finished for the information to be sent. If a Span goes out of scope the information in it is lost and the span is never sent to the distributed tracer.

The AutoFinishingSpan wrapper allows a Span to be finished when it goes out of scope.

Panics

While this function never panics, keep in mind that the AutoFinishingSpan panics if Span::finish fails.

pub fn child_of(&mut self, parent: SpanContext)[src]

Marks this span as a child of the given context.

pub fn context(&self) -> &SpanContext[src]

Access the SpanContext of this span.

pub fn finish_time(&mut self, finish_time: SystemTime)[src]

Set the span finish time.

This method allows to set the finish time of an operation explicitly and still manipulate the span further. This allows to time the operation first and the populate the span with any available detail without obfuscating the duration of the real operation.

pub fn finish(self) -> Result<()>[src]

Finished a span and sends it to the tracer's receiver..

Consumes a Span to create a FinishedSpan. The finished span is then send to the tracer's crossbeam_channel::Receiver associated with the span at the time of creation.

Any error sending the span is returned to the caller.

pub fn follows(&mut self, parent: SpanContext)[src]

Marks this span as a follower of the given context.

pub fn get_baggage_item(&self, key: &str) -> Option<&String>[src]

Attempt to fetch a baggage item by key.

If there is no item with the given key this method returns None.

pub fn log(&mut self, log: Log)[src]

Attach a log event to the span.

pub fn operation_name(&self) -> &str[src]

Returns the operation name.

pub fn reference_span(&mut self, reference: SpanReference)[src]

Adds a reference to a SpanContext.

pub fn references(&self) -> &[SpanReference][src]

Access all referenced span contexts and their relationship.

pub fn set_baggage_item(&mut self, key: &str, value: &str)[src]

Adds or updates the baggage items with the given key/value pair.

Baggage items are forwarded to Spans that reference this Span and all the Spans that reference them.

Baggage items are NOT propagated backwards to Spans that reference this Span.

pub fn set_operation_name(&mut self, name: &str)[src]

Updates the operation name.

pub fn tag<TV: Into<TagValue>>(&mut self, tag: &str, value: TV)[src]

Append a tag to the span.

Examples

extern crate opentracingrust;

use opentracingrust::tracers::NoopTracer;


fn main() {
    let (tracer, _) = NoopTracer::new();
    let mut span = tracer.span("some_work");
    span.tag("client.name", "some-tracing-client");
    span.tag("client.version", 3.4);
    // ... snip ...
}

Trait Implementations

impl AsMut<Span> for AutoFinishingSpan[src]

impl AsMut<Span> for Span[src]

impl Debug for Span[src]

Auto Trait Implementations

impl !RefUnwindSafe for Span

impl Send for Span

impl !Sync for Span

impl Unpin for Span

impl !UnwindSafe for Span

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<V, T> VZip<V> for T where
    V: MultiLane<T>,