79 lines
2.5 KiB
TOML
79 lines
2.5 KiB
TOML
|
|
[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"]
|