Struct SdkTracerProvider
pub struct SdkTracerProvider { /* private fields */ }Expand description
Creator and registry of named [SdkTracer] instances.
TracerProvider is a container holding pointers to SpanProcessor and other components.
Cloning a TracerProvider instance and dropping it will not stop span processing. To stop span processing, users
must either call the shutdown method explicitly or allow the last reference to the TracerProvider
to be dropped. When the last reference is dropped, the shutdown process will be automatically triggered
to ensure proper cleanup.
Implementations§
§impl SdkTracerProvider
impl SdkTracerProvider
pub fn builder() -> TracerProviderBuilder
pub fn builder() -> TracerProviderBuilder
Create a new SdkTracerProvider builder.
pub fn force_flush(&self) -> Result<(), OTelSdkError>
pub fn force_flush(&self) -> Result<(), OTelSdkError>
Force flush all remaining spans in span processors and return results.
§Examples
use opentelemetry::global;
use opentelemetry_sdk::trace::SdkTracerProvider;
fn init_tracing() -> SdkTracerProvider {
let provider = SdkTracerProvider::default();
// Set provider to be used as global tracer provider
let _ = global::set_tracer_provider(provider.clone());
provider
}
fn main() {
let provider = init_tracing();
// create spans..
// force all spans to flush
if let Err(err) = provider.force_flush() {
// .. handle flush error
}
// create more spans..
// dropping provider ensures all remaining spans are exported
drop(provider);
}pub fn shutdown_with_timeout(
&self,
timeout: Duration,
) -> Result<(), OTelSdkError>
pub fn shutdown_with_timeout( &self, timeout: Duration, ) -> Result<(), OTelSdkError>
Shuts down the current TracerProvider.
Note that shut down doesn’t means the TracerProvider has dropped
Trait Implementations§
§impl Clone for SdkTracerProvider
impl Clone for SdkTracerProvider
§fn clone(&self) -> SdkTracerProvider
fn clone(&self) -> SdkTracerProvider
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more§impl Debug for SdkTracerProvider
impl Debug for SdkTracerProvider
§impl Default for SdkTracerProvider
impl Default for SdkTracerProvider
§fn default() -> SdkTracerProvider
fn default() -> SdkTracerProvider
§impl TracerProvider for SdkTracerProvider
impl TracerProvider for SdkTracerProvider
§fn tracer(
&self,
name: impl Into<Cow<'static, str>>,
) -> <SdkTracerProvider as TracerProvider>::Tracer
fn tracer( &self, name: impl Into<Cow<'static, str>>, ) -> <SdkTracerProvider as TracerProvider>::Tracer
§fn tracer_with_scope(
&self,
scope: InstrumentationScope,
) -> <SdkTracerProvider as TracerProvider>::Tracer
fn tracer_with_scope( &self, scope: InstrumentationScope, ) -> <SdkTracerProvider as TracerProvider>::Tracer
Auto Trait Implementations§
impl !RefUnwindSafe for SdkTracerProvider
impl !UnwindSafe for SdkTracerProvider
impl Freeze for SdkTracerProvider
impl Send for SdkTracerProvider
impl Sync for SdkTracerProvider
impl Unpin for SdkTracerProvider
impl UnsafeUnpin for SdkTracerProvider
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§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> ⓘ
§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request§impl<L> LayerExt<L> for L
impl<L> LayerExt<L> for L
§fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
Layered].§impl<S, T, P> ObjectSafeTracerProvider for P
impl<S, T, P> ObjectSafeTracerProvider for P
§fn boxed_tracer(
&self,
scope: InstrumentationScope,
) -> Box<dyn ObjectSafeTracer + Sync + Send>
fn boxed_tracer( &self, scope: InstrumentationScope, ) -> Box<dyn ObjectSafeTracer + Sync + Send>
Return a versioned boxed tracer
§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
§impl<T> WithSubscriber for T
impl<T> WithSubscriber for T
§fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘwhere
S: Into<Dispatch>,
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘwhere
S: Into<Dispatch>,
§fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ
fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ
Layout§
Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...) attributes. Please see the Rust Reference's “Type Layout” chapter for details on type layout guarantees.
Size: 8 bytes