wire the authenticated OTLP push into vcs_metrics and hive-jobq-metrics

This commit is contained in:
damocles 2026-08-26 22:56:44 +02:00 committed by mara
commit 361396cab8
6 changed files with 147 additions and 10 deletions

View file

@ -65,7 +65,13 @@ hive-types.workspace = true
# `auth`'s bridge client — same crate the bridge itself uses to define the
# request/response shape, so the two ends cannot drift. `forge.rs` also
# uses this directly for `StatusCode` in its error-classification helpers.
reqwest.workspace = true
#
# `blocking` on top of the workspace default: `vcs_metrics`'s OTLP exporter
# runs on a thread with no tokio reactor (see that module's doc), so the
# `reqwest::blocking::Client` it hands to `AuthenticatedHttpClient` has to
# come from the blocking half of this crate, not the async one every other
# consumer here uses.
reqwest = { workspace = true, features = ["blocking"] }
serde.workspace = true
serde_json.workspace = true
swarm-authelia-bridge-sock.workspace = true
@ -77,7 +83,17 @@ swarm-authelia-bridge-sock.workspace = true
# `kv` for the same reason one level in: the status bucket's name and
# creation config are shared with the hive that writes it, so this end does
# not get to declare them privately.
swarm-queue-client = { workspace = true, features = ["kv"] }
#
# `otel-auth` for `vcs_metrics`'s `AuthenticatedHttpClient` — see that
# feature's own comment in `swarm-queue-client`'s Cargo.toml.
swarm-queue-client = { workspace = true, features = ["kv", "otel-auth"] }
# The `HttpClient` trait itself, so `main.rs` can name
# `Box<dyn opentelemetry_http::HttpClient>` when handing
# `vcs_metrics::authenticated_http_client()`'s output to
# `hive_jobq_metrics::spawn_exporter` — a transitive dependency (via
# `swarm-queue-client`'s `otel-auth` feature above) isn't enough to `use`
# it directly, Cargo requires a direct entry for that.
opentelemetry-http.workspace = true
tokio.workspace = true
tracing.workspace = true
tracing-subscriber.workspace = true