arrstack: add exportarr metrics sidecars to sonarr and radarr #395

Merged
benvin merged 1 commits from benvin/exportarr into main 2026-08-23 12:35:56 +10:00
Member

Sonarr and radarr currently expose no Prometheus metrics, so queue depth, indexer health, and library stats are invisible to the observability stack. This adds the standard exportarr exporter as a sidecar to both Deployments.

  • Adds an exportarr sidecar (ghcr.io/onedr0p/exportarr v2.3.0, pulled through the artifactapi ghcr remote, which already whitelists ^onedr0p/) to the sonarr and radarr Deployments
  • Points each exporter at its local replica via env (URL=http://localhost:8989/sonarr / :7878/radarr, matching the apps' UrlBase) and reuses the existing VSO-synced API-key Secrets (sonarr-apikey/radarr-apikey, key apitoken) via APIKEY secretKeyRef — no key in argv
  • Serves metrics on 9707 (sonarr) / 9708 (radarr) with /healthz liveness+readiness probes and small resources (25m/32Mi requests, 100m/128Mi limits)
  • Adds per-app VMPodScrape objects (picked up by the observability VMAgent, selectAllByDefault); pod-level rather than VMServiceScrape because the app Services don't expose the metrics port

Validated with kustomize build apps/base/arrstack + kubeconform (0 invalid).

Note: with 3 replicas per app, each pod's exporter reports the same shared-Postgres-backed stats, so series are duplicated across the pod label; dashboards should aggregate with max or filter to one pod.

Sonarr and radarr currently expose no Prometheus metrics, so queue depth, indexer health, and library stats are invisible to the observability stack. This adds the standard exportarr exporter as a sidecar to both Deployments. - Adds an exportarr sidecar (ghcr.io/onedr0p/exportarr v2.3.0, pulled through the artifactapi `ghcr` remote, which already whitelists `^onedr0p/`) to the sonarr and radarr Deployments - Points each exporter at its local replica via env (`URL=http://localhost:8989/sonarr` / `:7878/radarr`, matching the apps' UrlBase) and reuses the existing VSO-synced API-key Secrets (`sonarr-apikey`/`radarr-apikey`, key `apitoken`) via `APIKEY` secretKeyRef — no key in argv - Serves metrics on 9707 (sonarr) / 9708 (radarr) with `/healthz` liveness+readiness probes and small resources (25m/32Mi requests, 100m/128Mi limits) - Adds per-app VMPodScrape objects (picked up by the observability VMAgent, selectAllByDefault); pod-level rather than VMServiceScrape because the app Services don't expose the metrics port Validated with `kustomize build apps/base/arrstack` + kubeconform (0 invalid). Note: with 3 replicas per app, each pod's exporter reports the same shared-Postgres-backed stats, so series are duplicated across the `pod` label; dashboards should aggregate with `max` or filter to one pod.
unkin-agent added 1 commit 2026-08-23 12:31:07 +10:00
arrstack: add exportarr metrics sidecars to sonarr and radarr
ci/woodpecker/pr/vector-test Pipeline was successful
ci/woodpecker/pr/pre-commit Pipeline was successful
ci/woodpecker/pr/kubeconform Pipeline was successful
2d498662ea
Exposes Prometheus metrics for both apps via ghcr.io/onedr0p/exportarr
(through the artifactapi ghcr remote), scraped by per-app VMPodScrapes.
benvin merged commit b3d202b8fa into main 2026-08-23 12:35:56 +10:00
benvin deleted branch benvin/exportarr 2026-08-23 12:35:57 +10:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: unkin/argocd-apps#395