provisioning-platform/prov-ecosystem/crates/observability/Cargo.toml

79 lines
2.5 KiB
TOML
Raw Permalink Normal View History

[package]
name = "platform-observability"
version = "0.1.0"
edition = "2021"
rust-version = "1.75"
authors = ["Provctl Contributors"]
license = "MIT"
repository = "https://github.com/provctl"
description = "Multi-backend observability framework with logging, metrics, tracing, and health checks"
documentation = "https://docs.rs/observability"
keywords = ["observability", "logging", "metrics", "tracing", "health"]
categories = ["development-tools::debugging", "development-tools::profiling"]
[lib]
name = "observability"
[dependencies]
# Logging (always included)
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["json", "env-filter", "fmt"] }
# Metrics (optional but default)
metrics = { version = "0.22", optional = true }
metrics-exporter-prometheus = { version = "0.13", optional = true }
# OpenTelemetry (optional)
opentelemetry = { version = "0.24", features = ["metrics", "logs"], optional = true }
opentelemetry_sdk = { version = "0.24", features = ["rt-tokio"], optional = true }
opentelemetry-otlp = { version = "0.17", features = ["metrics", "logs", "grpc-tonic"], optional = true }
tracing-opentelemetry = { version = "0.25", optional = true }
opentelemetry-appender-tracing = { version = "0.5", optional = true }
# Health/HTTP
axum = { version = "0.7", optional = true }
tokio = { version = "1", features = ["sync"], optional = true }
# Core
serde = { version = "1", features = ["derive"] }
serde_json = "1.0"
serde_yaml = "0.9"
toml = "0.9"
thiserror = "2"
anyhow = "1"
# Utilities
chrono = { version = "0.4", features = ["serde"] }
parking_lot = "0.12"
lazy_static = "1.4"
[dev-dependencies]
tokio = { version = "1", features = ["full"] }
tempfile = "3"
[features]
default = ["logging", "metrics-prometheus", "health"]
# Logging (always included in default)
logging = []
# Metrics exporters
metrics-prometheus = ["dep:metrics", "dep:metrics-exporter-prometheus"]
metrics-otlp = ["dep:metrics", "dep:opentelemetry", "dep:opentelemetry_sdk", "dep:opentelemetry-otlp"]
# Tracing (distributed)
tracing-otlp = ["dep:opentelemetry", "dep:opentelemetry_sdk", "dep:opentelemetry-otlp", "dep:tracing-opentelemetry", "dep:opentelemetry-appender-tracing"]
# Health check endpoints
health = ["dep:axum", "dep:tokio"]
# Dashboard generation
dashboards = []
# OpenTelemetry core (required for otlp features)
opentelemetry = ["dep:opentelemetry", "dep:opentelemetry_sdk"]
# All features
full = ["logging", "metrics-prometheus", "metrics-otlp", "tracing-otlp", "health", "dashboards"]