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>,
    /* 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

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

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)

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