feagi-observability 0.0.21

Unified observability infrastructure for FEAGI (logging, telemetry, profiling)
Documentation
[package]
name = "feagi-observability"
version.workspace = true
edition.workspace = true
authors.workspace = true
license.workspace = true
repository.workspace = true
homepage.workspace = true
description = "Unified observability infrastructure for FEAGI (logging, telemetry, profiling)"

[dependencies]
# Logging
tracing = "0.1"
# tracing-subscriber: json feature may pull in tokio - use fmt instead for WASM
tracing-subscriber = { version = "0.3", default-features = false, features = ["env-filter", "fmt", "std", "registry"] }
tracing-appender = { version = "0.2", optional = true }  # File rotation and appending (desktop only)

# Errors
anyhow = "1.0"
thiserror.workspace = true

# Metrics (desktop only - prometheus depends on tokio)
prometheus = { version = "0.13", optional = true }

# Utilities
chrono = "0.4"
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
parking_lot = "0.12"

# Optional: OpenTelemetry support
opentelemetry = { version = "0.21", optional = true }
opentelemetry_sdk = { version = "0.21", optional = true }
opentelemetry-otlp = { version = "0.14", optional = true }
tracing-opentelemetry = { version = "0.21", optional = true }

# Profiling
tracing-chrome = { version = "0.6", optional = true }
pprof = { version = "0.12", optional = true }

[features]
default = []
# Desktop-only features (require tokio)
file-logging = ["dep:tracing-appender"]
metrics = ["dep:prometheus"]
opentelemetry = [
    "dep:opentelemetry",
    "dep:opentelemetry_sdk",
    "dep:opentelemetry-otlp",
    "dep:tracing-opentelemetry"
]
profiling = ["dep:tracing-chrome", "dep:pprof"]