[package] name = "hive-metric" version.workspace = true edition.workspace = true [[bin]] name = "hive-metric" path = "src/main.rs" [dependencies] anyhow.workspace = true clap.workspace = true # OTEL SDK — only used by this crate, so kept local rather than in workspace.dependencies. opentelemetry = "0.32" opentelemetry_sdk = { version = "0.32", features = ["metrics"] } # Blocking (not async) reqwest client on purpose: the metrics SDK drives the # OTLP push from a `PeriodicReader` background thread that has no Tokio runtime, # so the async client panics there with "no reactor running". The blocking # client sends on that thread directly — and for a fire-and-forget CLI that # records one point then `shutdown()`s, a synchronous send is exactly right. opentelemetry-otlp = { version = "0.32", default-features = false, features = [ "metrics", "http-json", "reqwest-blocking-client", "reqwest-rustls", ] }