pub struct TelemetryConfigBuilder<S: State = Empty> { /* private fields */ }Expand description
Use builder syntax to set the inputs and finish with build().
Implementations§
Source§impl<S: State> TelemetryConfigBuilder<S>
impl<S: State> TelemetryConfigBuilder<S>
Sourcepub fn build(self) -> TelemetryConfigwhere
S: IsComplete,
pub fn build(self) -> TelemetryConfigwhere
S: IsComplete,
Finish building and return the requested object
Sourcepub fn enable_fmt_layer(
self,
value: bool,
) -> TelemetryConfigBuilder<SetEnableFmtLayer<S>>where
S::EnableFmtLayer: IsUnset,
pub fn enable_fmt_layer(
self,
value: bool,
) -> TelemetryConfigBuilder<SetEnableFmtLayer<S>>where
S::EnableFmtLayer: IsUnset,
Optional (Some / Option setters). Default: false.
Enable console output for debugging.
When enabled, spans and events will be printed to the console in addition to being exported through the configured span processors. This is useful for debugging but adds overhead and should be disabled in production.
This can also be controlled via the LAMBDA_TRACING_ENABLE_FMT_LAYER environment variable,
which takes precedence over this setting when present:
- Setting the env var to “true” will enable console output even if this field is false
- Setting the env var to “false” will disable console output even if this field is true
- Invalid values will log a warning and fall back to this code setting
This environment variable override allows toggling logging for debugging without code changes.
Default: false
Sourcepub fn maybe_enable_fmt_layer(
self,
value: Option<bool>,
) -> TelemetryConfigBuilder<SetEnableFmtLayer<S>>where
S::EnableFmtLayer: IsUnset,
pub fn maybe_enable_fmt_layer(
self,
value: Option<bool>,
) -> TelemetryConfigBuilder<SetEnableFmtLayer<S>>where
S::EnableFmtLayer: IsUnset,
Optional (Some / Option setters). Default: false.
Enable console output for debugging.
When enabled, spans and events will be printed to the console in addition to being exported through the configured span processors. This is useful for debugging but adds overhead and should be disabled in production.
This can also be controlled via the LAMBDA_TRACING_ENABLE_FMT_LAYER environment variable,
which takes precedence over this setting when present:
- Setting the env var to “true” will enable console output even if this field is false
- Setting the env var to “false” will disable console output even if this field is true
- Invalid values will log a warning and fall back to this code setting
This environment variable override allows toggling logging for debugging without code changes.
Default: false
Sourcepub fn set_global_provider(
self,
value: bool,
) -> TelemetryConfigBuilder<SetSetGlobalProvider<S>>where
S::SetGlobalProvider: IsUnset,
pub fn set_global_provider(
self,
value: bool,
) -> TelemetryConfigBuilder<SetSetGlobalProvider<S>>where
S::SetGlobalProvider: IsUnset,
Optional (Some / Option setters). Default: true.
Set this provider as the global OpenTelemetry provider.
When enabled, the provider will be registered as the global provider for the OpenTelemetry API. This allows using the global tracer API without explicitly passing around the provider.
Default: true
Sourcepub fn maybe_set_global_provider(
self,
value: Option<bool>,
) -> TelemetryConfigBuilder<SetSetGlobalProvider<S>>where
S::SetGlobalProvider: IsUnset,
pub fn maybe_set_global_provider(
self,
value: Option<bool>,
) -> TelemetryConfigBuilder<SetSetGlobalProvider<S>>where
S::SetGlobalProvider: IsUnset,
Optional (Some / Option setters). Default: true.
Set this provider as the global OpenTelemetry provider.
When enabled, the provider will be registered as the global provider for the OpenTelemetry API. This allows using the global tracer API without explicitly passing around the provider.
Default: true
Sourcepub fn resource(self, value: Resource) -> TelemetryConfigBuilder<SetResource<S>>where
S::Resource: IsUnset,
pub fn resource(self, value: Resource) -> TelemetryConfigBuilder<SetResource<S>>where
S::Resource: IsUnset,
Optional (Some / Option setters).
Custom resource attributes for all spans.
If not provided, resource attributes will be automatically detected from the Lambda environment. Custom resources will override any automatically detected attributes with the same keys.
Default: None (auto-detected from Lambda environment)
Sourcepub fn maybe_resource(
self,
value: Option<Resource>,
) -> TelemetryConfigBuilder<SetResource<S>>where
S::Resource: IsUnset,
pub fn maybe_resource(
self,
value: Option<Resource>,
) -> TelemetryConfigBuilder<SetResource<S>>where
S::Resource: IsUnset,
Optional (Some / Option setters).
Custom resource attributes for all spans.
If not provided, resource attributes will be automatically detected from the Lambda environment. Custom resources will override any automatically detected attributes with the same keys.
Default: None (auto-detected from Lambda environment)
Sourcepub fn env_var_name(
self,
value: String,
) -> TelemetryConfigBuilder<SetEnvVarName<S>>where
S::EnvVarName: IsUnset,
pub fn env_var_name(
self,
value: String,
) -> TelemetryConfigBuilder<SetEnvVarName<S>>where
S::EnvVarName: IsUnset,
Optional (Some / Option setters).
Environment variable name to use for log level configuration.
This field specifies which environment variable should be used to configure
the tracing subscriber’s log level filter. If not specified, the system will
first check for RUST_LOG and then fall back to AWS_LAMBDA_LOG_LEVEL.
Default: None (uses RUST_LOG or AWS_LAMBDA_LOG_LEVEL)
Sourcepub fn maybe_env_var_name(
self,
value: Option<String>,
) -> TelemetryConfigBuilder<SetEnvVarName<S>>where
S::EnvVarName: IsUnset,
pub fn maybe_env_var_name(
self,
value: Option<String>,
) -> TelemetryConfigBuilder<SetEnvVarName<S>>where
S::EnvVarName: IsUnset,
Optional (Some / Option setters).
Environment variable name to use for log level configuration.
This field specifies which environment variable should be used to configure
the tracing subscriber’s log level filter. If not specified, the system will
first check for RUST_LOG and then fall back to AWS_LAMBDA_LOG_LEVEL.
Default: None (uses RUST_LOG or AWS_LAMBDA_LOG_LEVEL)
Sourcepub fn processor_mode(
self,
value: ProcessorMode,
) -> TelemetryConfigBuilder<SetProcessorMode<S>>where
S::ProcessorMode: IsUnset,
pub fn processor_mode(
self,
value: ProcessorMode,
) -> TelemetryConfigBuilder<SetProcessorMode<S>>where
S::ProcessorMode: IsUnset,
Optional (Some / Option setters).
Span processing mode (sync/async/finalize)
Controls how spans are exported from the processor. This can be overridden by the LAMBDA_EXTENSION_SPAN_PROCESSOR_MODE environment variable, which takes precedence.
Default: None (uses environment variable or defaults to ProcessorMode::Sync)
Sourcepub fn maybe_processor_mode(
self,
value: Option<ProcessorMode>,
) -> TelemetryConfigBuilder<SetProcessorMode<S>>where
S::ProcessorMode: IsUnset,
pub fn maybe_processor_mode(
self,
value: Option<ProcessorMode>,
) -> TelemetryConfigBuilder<SetProcessorMode<S>>where
S::ProcessorMode: IsUnset,
Optional (Some / Option setters).
Span processing mode (sync/async/finalize)
Controls how spans are exported from the processor. This can be overridden by the LAMBDA_EXTENSION_SPAN_PROCESSOR_MODE environment variable, which takes precedence.
Default: None (uses environment variable or defaults to ProcessorMode::Sync)
Source§impl<S: State> TelemetryConfigBuilder<S>
Builder methods for adding span processors and other configuration
impl<S: State> TelemetryConfigBuilder<S>
Builder methods for adding span processors and other configuration
Sourcepub fn with_span_processor<T>(self, processor: T) -> Selfwhere
T: SpanProcessor + 'static,
pub fn with_span_processor<T>(self, processor: T) -> Selfwhere
T: SpanProcessor + 'static,
Add a span processor to the tracer provider.
This method allows adding custom span processors for trace data processing. Multiple processors can be added by calling this method multiple times.
§Arguments
processor- A span processor implementing theSpanProcessortrait
§Examples
use lambda_otel_lite::TelemetryConfig;
use opentelemetry_sdk::trace::SimpleSpanProcessor;
use otlp_stdout_span_exporter::OtlpStdoutSpanExporter;
// Only use builder when adding custom processors
let config = TelemetryConfig::builder()
.with_span_processor(SimpleSpanProcessor::new(
Box::new(OtlpStdoutSpanExporter::default())
))
.build();Sourcepub fn with_propagator<T>(self, propagator: T) -> Self
pub fn with_propagator<T>(self, propagator: T) -> Self
Add a propagator to the list of propagators.
Multiple propagators can be added and will be combined into a composite propagator. The default propagator is TraceContextPropagator.
§Arguments
propagator- A propagator implementing theTextMapPropagatortrait
§Examples
use lambda_otel_lite::TelemetryConfig;
use opentelemetry_sdk::propagation::BaggagePropagator;
let config = TelemetryConfig::builder()
.with_propagator(BaggagePropagator::new())
.build();pub fn with_named_propagator(self, name: &str) -> Self
Sourcepub fn with_id_generator<T>(self, id_generator: T) -> Selfwhere
T: IdGenerator + 'static,
pub fn with_id_generator<T>(self, id_generator: T) -> Selfwhere
T: IdGenerator + 'static,
Add a custom ID generator to the tracer provider.
This method allows setting a custom ID generator for trace and span IDs. This is particularly useful when integrating with AWS X-Ray, which requires a specific ID format.
§Arguments
id_generator- An ID generator implementing theIdGeneratortrait
§Examples
use lambda_otel_lite::TelemetryConfig;
use opentelemetry_aws::trace::XrayIdGenerator;
// Configure with X-Ray compatible ID generator
let config = TelemetryConfig::builder()
.with_id_generator(XrayIdGenerator::default())
.build();Auto Trait Implementations§
impl<S> Freeze for TelemetryConfigBuilder<S>
impl<S = Empty> !RefUnwindSafe for TelemetryConfigBuilder<S>
impl<S> Send for TelemetryConfigBuilder<S>
impl<S> Sync for TelemetryConfigBuilder<S>
impl<S> Unpin for TelemetryConfigBuilder<S>
impl<S = Empty> !UnwindSafe for TelemetryConfigBuilder<S>
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