Skip to main content

Crate otel_rs

Crate otel_rs 

Source
Expand description

Modern OpenTelemetry observability helpers for Rust.

Provides composable configuration, dynamic layer composition, and async-aware shutdown for traces, logs, and metrics.

§Quick Start

use otel_rs::OtelConfig;

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let mut guard = OtelConfig::builder()
        .service_name("my-service")
        .service_version("1.0.0")
        .allow_crate("my_service")
        .init()
        .await?;

    tracing::info!("Hello from my-service!");

    // Graceful async shutdown (or let Drop handle it).
    guard.shutdown().await?;
    Ok(())
}

§Error Recording

use otel_rs::{SpanExt, InstrumentedResult};

#[tracing::instrument]
async fn work() -> Result<(), MyError> {
    // Automatically records errors to the current span:
    fallible_call().await.record_to_span()?;

    // Or use the macro:
    let val = otel_rs::try_record_return!(another_call().await);
    Ok(())
}

Re-exports§

pub use config::ExporterConfig;
pub use config::ExporterConfigBuilder;
pub use config::LogLevel;
pub use config::MetricsConfig;
pub use config::MetricsConfigBuilder;
pub use config::OtelConfig;
pub use config::OtelConfigBuilder;
pub use config::OtlpCredentials;
pub use config::OtlpProtocol;
pub use config::OutputFormat;
pub use config::SamplingStrategy;
pub use config::TracingConfig;
pub use config::TracingConfigBuilder;
pub use error::ErrorContext;
pub use error::OtelError;
pub use error::OtelResult;
pub use filter::FilterBuilder;
pub use metrics::Metrics;
pub use span::InstrumentedResult;
pub use span::SpanExt;
pub use span::TimingContext;

Modules§

config
Configuration for the observability stack.
error
Error types for the observability library.
filter
Allow-list based log filtering.
macros
Convenience macros for instrumented operations.
metrics
Thin metrics wrapper around the OpenTelemetry SDK.
span
Span extensions for error recording and status management.

Macros§

try_record
Record any error from an expression to the current span.
try_record_return
Record any error and early-return on Err (like ? with span recording).

Structs§

OtelGuard
Guard managing the lifecycle of the observability stack.

Functions§

init_with_config
Initialize the observability stack with a pre-built configuration.