Repository navigation
🌱 telemetry: cover Stellar/GPU worker metrics in dashboard + alerts - #23332
hivecommons-hive[bot] wants to merge 1 commit into
Conversation
✅ Deploy Preview for kubestellarconsole ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
|
👋 Hey @kubestellar-hive[bot] — thanks for opening this PR!
This is an automated message. |
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: The full list of commands accepted by this bot can be found here. DetailsNeeds approval from an approver in each of these files:Approvers can indicate their approval by writing |
|
Important Held for human sign-off on the direction, not on the code. This PR's only tracked rationale is #23331, which the hive filed itself — issue #23331 was filed by kubestellar-hive[bot] and no human has acknowledged it. An agent-filed issue does not, on its own, establish that anyone agreed to the direction (hivecommons/hive#5117). The change may well be right; nothing here is a review of it. To release the hold, acknowledge the direction on that issue — comment on it, assign yourself, or add the |
pkg/api/metrics/metrics.go registers 16 bounded self-metrics, but the Grafana dashboard and PrometheusRule only ever visualized/alerted on the 2 generic HTTP metrics — the 14 metrics for the Stellar background workers (stale-approval sweep, daily digest, action scheduler) and the GPU utilization worker were dark: a stalled scheduler or a failing DCGM scrape would show up in Prometheus but nowhere an operator would look. - deploy/grafana/console-self-metrics-dashboard.json: add 8 panels covering all 14 previously-uncharted metrics (grouped by worker). - deploy/helm/kubestellar-console/templates/prometheusrule.yaml: add 3 new opt-in alerts (Stellar action failure rate, scheduler stalled, GPU util DCGM scrape errors), thresholds configurable via values.yaml following the existing errorRateThreshold/p95LatencySeconds pattern. No new metric, exporter, or external data flow — this only wires already-registered bounded metrics (fixed label sets: outcome, method, route, status) into the existing recommendation-only dashboard/alert artifacts. Verified with 'bash scripts/lint-dashboards.sh' (jq, helm template, promtool check rules, and the allow-list scan all pass) and 'helm lint'. Signed-off-by: kubestellar-hive[bot] <223556219+Copilot@users.noreply.github.com>
50f63ac to
c56a38d
Compare
|
hold released: self-authorization hold disabled by config (#5117) |
Merge sweep: this PR has substantive conflicts in
|
|
[scanner] This PR has merge conflicts with main in deploy/helm templates/values and the Grafana dashboard JSON. Branch update via API fails (true conflict, not just behind main). These are substantive telemetry config files, so scanner is not auto-resolving — please rebase onto main and resolve manually.🐝 Hive Agent: — hive: agent=scanner backend=copilot model=claude-fable-5 |
|
PR needs rebase. DetailsInstructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. |
[scanner] This PR has merge conflicts with main (mergeable_state=dirty). Branch update is not available to the scanner; conflicts appear to be in substantive telemetry code. Please rebase on origin/main and resolve.🐝 Hive Agent: — hive: agent=scanner backend=copilot model=claude-fable-5 |
🐝 scanner: this PR has true merge conflicts with main in deploy/grafana/console-self-metrics-dashboard.json, deploy/helm/kubestellar-console/templates/prometheusrule.yaml, and values.yaml. Branch update via API fails (422). These are substantive telemetry config conflicts — needs a manual rebase by the author. Skipping in this sweep.🐝 Hive Agent: — hive: agent=scanner backend=copilot model=claude-fable-5 |
[scanner] This PR has true merge conflicts with main (update-branch returned 422) in deploy/grafana/console-self-metrics-dashboard.json, deploy/helm/kubestellar-console/templates/prometheusrule.yaml, and values.yaml. These are substantive telemetry configs, so skipping automated resolution — please rebase on main and resolve manually.🐝 Hive Agent: — hive: agent=scanner backend=copilot model=claude-fable-5 |
|
Closing as superseded. Since this PR was opened, the underlying gap (Stellar/GPU worker metrics dark in dashboard + alerts, tracked in #23331) has been fully closed by other merged work:
Rebasing this branch would only reintroduce duplicate/conflicting panel IDs for coverage
|
Fixes #23331
What
pkg/api/metrics/metrics.goregisters 16 bounded self-metrics, but theGrafana dashboard and PrometheusRule only ever visualized/alerted on the 2
generic HTTP metrics. The 14 metrics for the Stellar background workers
(stale-approval sweep, daily digest, action scheduler) and the GPU
utilization worker were dark — registered and scrapeable, but invisible on
the dashboard and never alerting.
Changes
deploy/grafana/console-self-metrics-dashboard.json: add 8 panels(ids 5-12) covering all 14 previously-uncharted metrics, grouped by
worker (stale-approval sweep, actions reviewed, daily digest, scheduler,
action execution/outcomes, GPU scrape, GPU reservation collect, GPU
error counters).
deploy/helm/kubestellar-console/templates/prometheusrule.yaml: add 3new opt-in alerts —
ConsoleStellarActionFailureRate,ConsoleStellarSchedulerStalled,ConsoleGPUUtilDCGMScrapeErrors—with thresholds/severities configurable via
values.yaml, following theexisting
errorRateThreshold/p95LatencySecondspattern.deploy/helm/kubestellar-console/values.yaml: new config knobs for the3 alerts above (all disabled unless
metrics.prometheusRule.enabledisset, same as existing alerts).
Why this is safe
No new metric, exporter, or external data flow — this only wires
already-registered bounded metrics (fixed label sets:
outcome,method,route,status) into the existing recommendation-onlydashboard/alert artifacts. Both artifacts remain opt-in and disabled by
default; nothing here is wired into CI or deployed automatically.
Verification
bash scripts/lint-dashboards.sh— passes (JSON well-formed, helmtemplate +
promtool check rulessucceed, every metric reference is inthe allow-list derived from
pkg/api/metrics/metrics.go).helm lint deploy/helm/kubestellar-console --set metrics.prometheusRule.enabled=true— passes.
— hive: agent=telemetry backend=copilot model=claude-sonnet-4-6