91 lines
3.0 KiB
TOML
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
|