Skip to main content

Runtime

Struct Runtime 

Source
pub struct Runtime { /* private fields */ }
Expand description

Shared telemetry runtime.

Share one runtime across crate boundaries so metric registration, span collection, and export setup are owned once per service. Register metric groups during construction, then keep updating the returned metric handles directly on hot paths.

Implementations§

Source§

impl Runtime

Source

pub fn new(config: RuntimeConfig) -> Arc<Self>

Create a runtime wrapped in Arc for parent/child sharing.

Source

pub fn config(&self) -> &RuntimeConfig

Return this runtime’s configuration.

Source

pub fn span_collector(&self) -> &Arc<SpanCollector>

Return the shared span collector owned by this runtime.

Clone this once when wiring exporters. Hot-path span creation should use start_span or keep this borrowed through the shared runtime rather than cloning an Arc per operation.

Source

pub fn start_span( &self, name: impl Into<Cow<'static, str>>, kind: SpanKind, ) -> Span

Create a new root span with a fresh trace ID.

This forwards to the runtime’s shared SpanCollector, keeping the collector service shared across crate boundaries.

Source

pub fn start_span_from_traceparent( &self, traceparent: Option<&str>, name: impl Into<Cow<'static, str>>, kind: SpanKind, ) -> Span

Create a root span from an incoming W3C traceparent header.

This forwards to the runtime’s shared SpanCollector.

Source

pub fn flush_local_spans(&self)

Flush spans recorded on the current thread into the shared collector.

Source

pub fn drain_spans_into(&self, buf: &mut Vec<CompletedSpan>)

Drain completed spans from the shared collector into buf.

Source

pub fn register_metrics<M>( &self, scope: MetricScope, metrics: M, ) -> RegisteredMetrics<M>
where M: ExportMetrics + Send + Sync + 'static,

Register a metric group and return direct handles to it.

Registry work happens here. Recording should use the returned RegisteredMetrics value, or handles pre-resolved inside metrics.

Source

pub fn visit_metrics<V>(&self, visitor: &mut V)
where V: MetricVisitor,

Visit all registered metric groups as structured cumulative metrics.

Source

pub fn visit_metrics_for_scope<V>(&self, scope: &MetricScope, visitor: &mut V)
where V: MetricVisitor,

Visit registered metric groups that match scope.

Source

pub fn registered_metrics_len(&self) -> usize

Return the number of registered metric groups.

Source

pub fn scopes(&self) -> Vec<MetricScope>

Return the registered metric scopes.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> FutureExt for T

Source§

fn with_context(self, otel_cx: Context) -> WithContext<Self>

Attaches the provided Context to this type, returning a WithContext wrapper. Read more
Source§

fn with_current_context(self) -> WithContext<Self>

Attaches the current Context to this type, returning a WithContext wrapper. Read more
Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoRequest<T> for T

Source§

fn into_request(self) -> Request<T>

Wrap the input message T in a tonic::Request
Source§

impl<L> LayerExt<L> for L

Source§

fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>
where L: Layer<S>,

Applies the layer to a service and wraps it in Layered.
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

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

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

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

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more