Skip to main content

Crate observability_core

Crate observability_core 

Source
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 features
  • otel-2025: OpenTelemetry 2025 integration
  • structured-logging: JSON structured logging support
  • prometheus-federation: Prometheus metrics federation
  • auto-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