pub struct HttpTracerProviderBuilder<C: HttpClient = StdoutClient, I: IdGenerator = RandomIdGenerator, P: TextMapPropagator = TraceContextPropagator> { /* private fields */ }Expand description
A type-safe builder for configuring and initializing a TracerProvider.
Implementations§
Source§impl<C, I, P> HttpTracerProviderBuilder<C, I, P>where
C: HttpClient + 'static,
I: IdGenerator + Send + Sync + 'static,
P: TextMapPropagator + Send + Sync + 'static,
impl<C, I, P> HttpTracerProviderBuilder<C, I, P>where
C: HttpClient + 'static,
I: IdGenerator + Send + Sync + 'static,
P: TextMapPropagator + Send + Sync + 'static,
Sourcepub fn new() -> HttpTracerProviderBuilder<StdoutClient, RandomIdGenerator, TraceContextPropagator>
pub fn new() -> HttpTracerProviderBuilder<StdoutClient, RandomIdGenerator, TraceContextPropagator>
Creates a new HttpTracerProviderBuilder with default settings.
The default exporter type is determined by the LAMBDA_OTEL_SPAN_PROCESSOR environment variable:
- “batch” - Uses batch span processor
- “simple” - Uses simple span processor (default)
- Any other value will default to simple span processor with a warning
§Examples
use lambda_otel_utils::HttpTracerProviderBuilder;
use otlp_stdout_client::StdoutClient;
use opentelemetry_sdk::propagation::TraceContextPropagator;
use opentelemetry_sdk::trace::RandomIdGenerator;
let builder = HttpTracerProviderBuilder::default();Sourcepub fn with_stdout_client(self) -> HttpTracerProviderBuilder<StdoutClient, I, P>
pub fn with_stdout_client(self) -> HttpTracerProviderBuilder<StdoutClient, I, P>
Configures the builder to use a stdout client for exporting traces.
§Examples
use lambda_otel_utils::HttpTracerProviderBuilder;
let builder = HttpTracerProviderBuilder::default()
.with_stdout_client();Sourcepub fn with_http_client<NewC>(
self,
client: NewC,
) -> HttpTracerProviderBuilder<NewC, I, P>where
NewC: HttpClient + 'static,
pub fn with_http_client<NewC>(
self,
client: NewC,
) -> HttpTracerProviderBuilder<NewC, I, P>where
NewC: HttpClient + 'static,
Sets a custom HTTP client for exporting traces.
§Examples
use lambda_otel_utils::HttpTracerProviderBuilder;
use reqwest::Client;
use opentelemetry_sdk::propagation::TraceContextPropagator;
use opentelemetry_sdk::trace::RandomIdGenerator;
let client = Client::new();
let builder = HttpTracerProviderBuilder::default()
.with_http_client(client);Sourcepub fn with_text_map_propagator<NewP>(
self,
propagator: NewP,
) -> HttpTracerProviderBuilder<C, I, NewP>
pub fn with_text_map_propagator<NewP>( self, propagator: NewP, ) -> HttpTracerProviderBuilder<C, I, NewP>
Adds a custom text map propagator.
§Examples
use lambda_otel_utils::HttpTracerProviderBuilder;
use opentelemetry_sdk::propagation::TraceContextPropagator;
let builder = HttpTracerProviderBuilder::default()
.with_text_map_propagator(TraceContextPropagator::new());Sourcepub fn with_default_text_map_propagator(self) -> Self
pub fn with_default_text_map_propagator(self) -> Self
Adds the default text map propagator (TraceContextPropagator).
§Examples
use lambda_otel_utils::HttpTracerProviderBuilder;
let builder = HttpTracerProviderBuilder::default()
.with_default_text_map_propagator();Sourcepub fn with_xray_text_map_propagator(self) -> Self
pub fn with_xray_text_map_propagator(self) -> Self
Adds the XRay text map propagator.
§Examples
use lambda_otel_utils::HttpTracerProviderBuilder;
let builder = HttpTracerProviderBuilder::default()
.with_xray_text_map_propagator();Sourcepub fn with_id_generator<NewI>(
self,
id_generator: NewI,
) -> HttpTracerProviderBuilder<C, NewI, P>
pub fn with_id_generator<NewI>( self, id_generator: NewI, ) -> HttpTracerProviderBuilder<C, NewI, P>
Sets a custom ID generator.
§Examples
use lambda_otel_utils::HttpTracerProviderBuilder;
use opentelemetry_sdk::trace::RandomIdGenerator;
let builder = HttpTracerProviderBuilder::default()
.with_id_generator(RandomIdGenerator::default());Sourcepub fn with_default_id_generator(
self,
) -> HttpTracerProviderBuilder<C, RandomIdGenerator, P>
pub fn with_default_id_generator( self, ) -> HttpTracerProviderBuilder<C, RandomIdGenerator, P>
Sets the default ID generator (RandomIdGenerator).
§Examples
use lambda_otel_utils::HttpTracerProviderBuilder;
let builder = HttpTracerProviderBuilder::default()
.with_default_id_generator();Sourcepub fn with_xray_id_generator(
self,
) -> HttpTracerProviderBuilder<C, XrayIdGenerator, P>
pub fn with_xray_id_generator( self, ) -> HttpTracerProviderBuilder<C, XrayIdGenerator, P>
Sets the XRay ID generator.
§Examples
use lambda_otel_utils::HttpTracerProviderBuilder;
let builder = HttpTracerProviderBuilder::default()
.with_xray_id_generator();Sourcepub fn with_simple_exporter(self) -> Self
pub fn with_simple_exporter(self) -> Self
Configures the builder to use a simple exporter.
§Examples
use lambda_otel_utils::HttpTracerProviderBuilder;
let builder = HttpTracerProviderBuilder::default()
.with_simple_exporter();Sourcepub fn with_batch_exporter(self) -> Self
pub fn with_batch_exporter(self) -> Self
Configures the builder to use a batch exporter.
§Examples
use lambda_otel_utils::HttpTracerProviderBuilder;
let builder = HttpTracerProviderBuilder::default()
.with_batch_exporter();Sourcepub fn enable_global(self, set_global: bool) -> Self
pub fn enable_global(self, set_global: bool) -> Self
Enables or disables global installation of the tracer provider.
§Examples
use lambda_otel_utils::HttpTracerProviderBuilder;
let builder = HttpTracerProviderBuilder::default()
.enable_global(true);Sourcepub fn build(self) -> Result<SdkTracerProvider, BuilderError>
pub fn build(self) -> Result<SdkTracerProvider, BuilderError>
Builds the TracerProvider with the configured settings.
§Errors
Returns a BuilderError if the exporter fails to build
Trait Implementations§
Source§impl Default for HttpTracerProviderBuilder<StdoutClient, RandomIdGenerator, TraceContextPropagator>
Provides a default implementation for HttpTracerProviderBuilder.
impl Default for HttpTracerProviderBuilder<StdoutClient, RandomIdGenerator, TraceContextPropagator>
Provides a default implementation for HttpTracerProviderBuilder.
This implementation creates a new HttpTracerProviderBuilder with default settings
by calling the new() method.
§Examples
use lambda_otel_utils::HttpTracerProviderBuilder;
let default_builder = HttpTracerProviderBuilder::default();Auto Trait Implementations§
impl<C, I, P> Freeze for HttpTracerProviderBuilder<C, I, P>
impl<C = StdoutClient, I = RandomIdGenerator, P = TraceContextPropagator> !RefUnwindSafe for HttpTracerProviderBuilder<C, I, P>
impl<C, I, P> Send for HttpTracerProviderBuilder<C, I, P>where
P: Send,
impl<C, I, P> Sync for HttpTracerProviderBuilder<C, I, P>where
P: Sync,
impl<C, I, P> Unpin for HttpTracerProviderBuilder<C, I, P>
impl<C = StdoutClient, I = RandomIdGenerator, P = TraceContextPropagator> !UnwindSafe for HttpTracerProviderBuilder<C, I, P>
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
Source§impl<T> FutureExt for T
impl<T> FutureExt for T
Source§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
Source§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request