Files
rustytorch/crates/production/rtx-monitoring/Cargo.toml
T
2026-03-04 00:08:42 +00:00

91 lines
3.0 KiB
TOML

[package]
name = "rtx-monitoring"
version = "1.0.0"
edition.workspace = true
rust-version = "1.92"
authors.workspace = true
license.workspace = true
repository.workspace = true
description = "Observability and metrics collection for RustyTorch production deployments"
[dependencies]
# Essential dependencies
anyhow = { workspace = true }
thiserror = { workspace = true }
tokio = { workspace = true, features = ["full", "rt-multi-thread"] }
async-trait = { workspace = true }
# Serialization
serde = { workspace = true, features = ["derive"] }
serde_json = { workspace = true }
# Metrics collection - Prometheus
prometheus = { version = "0.13", features = ["process"] }
prometheus-hyper = { version = "0.1" }
# Metrics collection - OpenTelemetry (temporarily commented out due to version conflicts)
# opentelemetry = { version = "0.21", features = ["rt-tokio"], optional = true }
# opentelemetry-prometheus = { version = "0.14", optional = true }
# opentelemetry-jaeger = { version = "0.20", optional = true }
# opentelemetry-otlp = { version = "0.14", optional = true }
# opentelemetry_sdk = { version = "0.21", features = ["rt-tokio"], optional = true }
# opentelemetry-semantic-conventions = { version = "0.13", optional = true }
# Tracing integration
tracing = { workspace = true }
tracing-subscriber = { workspace = true, features = ["env-filter", "json"] }
# tracing-opentelemetry = { version = "0.22", optional = true }
tracing-appender = "0.2"
# HTTP server for metrics endpoint
axum = "0.7"
hyper = "1.0"
tower = "0.4"
tower-http = { version = "0.5", features = ["cors", "trace"] }
# Time handling
chrono = { workspace = true, features = ["serde"] }
# System metrics
sysinfo = { version = "0.30", optional = true }
# Health checking
uuid = { workspace = true, features = ["v4", "serde"] }
# Concurrent data structures
dashmap = { workspace = true }
parking_lot = { workspace = true }
# Configuration
config = { workspace = true }
# Alerting
lettre = { version = "0.11", optional = true, features = ["tokio1", "tokio1-native-tls"] }
# Database for storing metrics
sqlx = { workspace = true, features = ["runtime-tokio-rustls", "postgres", "sqlite", "chrono"], optional = true }
# Linux-only system metrics (procfs is not available on macOS/Windows)
[target.'cfg(target_os = "linux")'.dependencies]
procfs = { version = "0.16", optional = true }
[dev-dependencies]
tokio-test = { workspace = true }
tempfile = { workspace = true }
criterion = { workspace = true, features = ["html_reports"] }
proptest = { workspace = true }
test-log = "0.2"
[features]
default = ["health-checks", "system-metrics"]
# prometheus is now a required dependency, not optional
# OpenTelemetry temporarily disabled due to version conflicts
# opentelemetry = ["dep:opentelemetry", "dep:opentelemetry-prometheus", "dep:opentelemetry-jaeger", "dep:opentelemetry-otlp", "dep:opentelemetry_sdk", "dep:opentelemetry-semantic-conventions", "dep:tracing-opentelemetry"]
health-checks = []
system-metrics = ["dep:sysinfo", "dep:procfs"]
alerting = ["dep:lettre"]
persistence = ["dep:sqlx"]
[lints]
workspace = true