Expand description
§Observability Core
Core traits and foundational components for structured logging and observability. This crate provides zero-cost abstractions for telemetry, metrics, and structured logging that can be conditionally compiled based on feature flags.
§Features
observability: Enables all observability featuresotel-2025: OpenTelemetry 2025 integrationstructured-logging: JSON structured logging supportprometheus-federation: Prometheus metrics federationauto-instrumentation: Automatic instrumentation capabilities
Re-exports§
pub use batching::BatchingConfig;pub use batching::BatchingManager;pub use context::ContextFuture;pub use context::HeaderExtractor;pub use context::HeaderInjector;pub use context::TraceContext;pub use context::W3CTraceContext;pub use context::clear_current_context;pub use context::get_current_context;pub use context::set_current_context;pub use context::with_context;pub use context::with_context_future;pub use error::ObservabilityError;pub use error::ObservabilityResult;pub use noop::NoOpObservabilityPlugin;pub use traits::LogLevel;pub use traits::MetricsCollector;pub use traits::ObservabilityPlugin;pub use traits::SpanGuard;pub use traits::SpanStatus;pub use traits::StructuredLogger;pub use adapters::CompactJsonFormatter;pub use adapters::JsonFormatter;pub use adapters::LogDirectives;pub use adapters::StandardLogAdapter;pub use adapters::UnifiedWasmStdoutAdapter;pub use adapters::WasmStdoutAdapter;pub use adapters::WasmStdoutMetricsAdapter;pub use adapters::TracingIntegrationBuilder;pub use adapters::TracingSubscriberAdapter;pub use domain::BasicMetricType;pub use domain::EnhancedContextEnricher;pub use domain::LogEntry;pub use domain::LogKvExtractor;pub use domain::MetricsEntry;pub use domain::MetricsSource;pub use domain::ProcessorChain;pub use domain::TraceCorrelation;pub use domain::create_counter_metric;pub use domain::create_gauge_metric;pub use domain::create_histogram_metric;pub use extension::GlobalLoggerSingleton;pub use extension::ObservabilityConfig;pub use extension::ObservabilityManager;pub use extension::create_observability_manager;pub use ports::BatchingPort;pub use ports::ContextPort;pub use ports::FormatterPort;pub use ports::MetricsPort;pub use ports::StandardLoggingPort;pub use ports::TransportPort;
Modules§
- adapters
- Adapters layer - Concrete implementations of ports for external integrations
- batching
- Smart batching system for telemetry data to optimize performance
- context
- Basic trace context foundation for observability core
- domain
- Domain layer for observability core - Pure business logic
- error
- Error types for the observability plugin system
- extension
- Core observability components for structured logging
- noop
- Zero-cost no-op implementations for observability when features are disabled
- ports
- Ports layer - Abstract interfaces for hexagonal architecture
- traits
- Core traits for the observability plugin system
Macros§
- observability_
log - Conditional logging macro
- observability_
metric - Conditional metric recording macro
- observability_
plugin - Macro to conditionally create observability plugin based on features
- observability_
span - Conditional span creation macro
- shared_
observability_ plugin - Macro to conditionally create shared observability plugin based on features
Constants§
- DEFAULT_
BATCH_ SIZE - Default batch size for telemetry data
- DEFAULT_
FLUSH_ INTERVAL_ SECS - Default flush interval in seconds
- VERSION
- Version information for the observability core