Struct TelemetryConfig

Source
pub struct TelemetryConfig {
    pub enable_fmt_layer: bool,
    pub set_global_provider: bool,
    pub resource: Option<Resource>,
    pub env_var_name: Option<String>,
    pub processor_mode: Option<ProcessorMode>,
    /* private fields */
}
Expand description

Configuration for OpenTelemetry initialization.

Provides configuration options for telemetry setup. Use TelemetryConfig::default() for standard Lambda configuration, or the builder pattern for customization.

§Fields

  • enable_fmt_layer - Enable console output for debugging (default: false)
  • set_global_provider - Set as global tracer provider (default: true)
  • resource - Custom resource attributes (default: auto-detected from Lambda)
  • env_var_name - Environment variable name for log level configuration
  • id_generator - Custom ID generator for trace and span IDs
  • processor_mode - Span processing mode (sync/async/finalize)

§Examples

Basic usage with default configuration:

use lambda_otel_lite::telemetry::TelemetryConfig;

let config = TelemetryConfig::default();

Custom configuration with resource attributes:

use lambda_otel_lite::telemetry::TelemetryConfig;
use opentelemetry::KeyValue;
use opentelemetry_sdk::Resource;

let config = TelemetryConfig::builder()
    .resource(Resource::builder()
        .with_attributes(vec![KeyValue::new("version", "1.0.0")])
        .build())
    .build();

Custom configuration with logging options:

use lambda_otel_lite::telemetry::TelemetryConfig;

let config = TelemetryConfig::builder()
    .enable_fmt_layer(true)  // Enable console output for debugging
    .env_var_name("MY_CUSTOM_LOG_LEVEL".to_string())  // Custom env var for log level
    .build();

Fields§

§enable_fmt_layer: bool

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

§set_global_provider: bool

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

§resource: Option<Resource>

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)

§env_var_name: Option<String>

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)

§processor_mode: Option<ProcessorMode>

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)

Implementations§

Source§

impl TelemetryConfig

Source

pub fn builder() -> TelemetryConfigBuilder

Create an instance of TelemetryConfig using the builder syntax

Trait Implementations§

Source§

impl Debug for TelemetryConfig

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for TelemetryConfig

Source§

fn default() -> Self

Returns the “default value” for a type. Read more

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<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