feat(dashboards): an Overview board as the folder's entry point - #617
Merged
Merged
Conversation
Published Helm chart
|
| Chart | agent-platform |
| Version | 4.51.1-dev.feat-overview-dashboard.2026-09-22.08-58-35.h8505e28 |
| OCI reference | oci://gsoci.azurecr.io/charts/giantswarm/agent-platform:4.51.1-dev.feat-overview-dashboard.2026-09-22.08-58-35.h8505e28 |
| Digest | sha256:74105b3341f3fdc3d606361f1510adfff872f8d2f0b0722172d30ea707aae465 |
| Registry | public — gsoci.azurecr.io |
| Git catalog | giantswarm-test-catalog (index) |
Pull this chart
helm pull oci://gsoci.azurecr.io/charts/giantswarm/agent-platform --version 4.51.1-dev.feat-overview-dashboard.2026-09-22.08-58-35.h8505e28Posted by architect-orb · build 11027 · commit 8505e28 · updated in place on every push
Published Helm chart
|
| Chart | agent-platform-connectivity |
| Version | 4.51.1-dev.feat-overview-dashboard.2026-09-22.08-58-35.h8505e28 |
| OCI reference | oci://gsoci.azurecr.io/charts/giantswarm/agent-platform-connectivity:4.51.1-dev.feat-overview-dashboard.2026-09-22.08-58-35.h8505e28 |
| Digest | sha256:53897754b2e382b4c2e779f5d4de066c16308a869f42d45e21dfa34766741dd1 |
| Registry | public — gsoci.azurecr.io |
| Git catalog | giantswarm-test-catalog (index) |
Pull this chart
helm pull oci://gsoci.azurecr.io/charts/giantswarm/agent-platform-connectivity --version 4.51.1-dev.feat-overview-dashboard.2026-09-22.08-58-35.h8505e28Posted by architect-orb · build 11026 · commit 8505e28 · updated in place on every push
QuentinBisson
force-pushed
the
feat/overview-dashboard
branch
from
September 22, 2026 08:35
45bda74 to
f6493fc
Compare
The six alerts of agent-platform.rules.yml hand on-call a runbook and no graph: the platform had no board of its own health, and Postgres and Valkey had no board at all. dashboards renders one ConfigMap per JSON under the connectivity chart's dashboards/ directory, discovered by observability-operator through the app.giantswarm.io/kind label and placed by the organization and folder annotations — both values carry a space, so neither can be a label. overview.json is the first board: what the platform is and which board covers what, component health, what it is doing, and the Postgres and Valkey rows. Every health panel reads the same series as the alert that pages for it, so a panel and a page cannot disagree. The ConfigMaps render under the resolved global.observability.metrics.serviceMonitor.enabled: the operator that picks them up is part of the observability platform the monitors write to, and a board over series nobody collects is worse than no board. A component's own board still comes from that component's chart. The golden comparisons of verify-modes, verify-wiring and verify-target drop the board by name: GOLDEN_REF's schema has no dashboards key, so a --set hold would fail its render outright. The stripper of verify-modes also lost the leading document separator whenever the dropped document was the first one.
QuentinBisson
force-pushed
the
feat/overview-dashboard
branch
from
September 22, 2026 08:59
f6493fc to
8505e28
Compare
QuentinBisson
marked this pull request as ready for review
September 22, 2026 09:02
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
The six alerts in
agent-platform.rules.ymlpage with a runbook and no graph. The platform has no board of its own health, and Postgres and Valkey have no board at all — the one board that exists readsagentgateway_gen_ai_*, so it is an LLM cost and latency view, not a platform view.Change
dashboardsin both charts renders one ConfigMap per JSON under the connectivity chart'sdashboards/directory, discovered by observability-operator through theapp.giantswarm.io/kind: dashboardlabel and placed by theobservability.giantswarm.io/organizationand.../folderannotations. Both values are display names carrying a space, so neither can be a label.It ships one board: Overview, uid
agent-platform-overview, inShared Org / Agent Platform.Every health panel reads the same series as the alert that pages for it —
gotk_resource_info,kube_deployment_status_replicas_available,muster_mcpserver_state,kube_cnpg_cluster_info,kube_pod_container_status_restarts_total,muster_session_store_backend,redis_memory_used_bytes— and each panel description names that alert. A panel and a page cannot disagree.Postgres gets rows here rather than a board:
giantswarm/cloudnative-pg-app(Team Shield) already ships the full CloudNativePG board fleet-wide, and duplicating its JSON into our folder would be the worst of both. Its board is in the staff-onlyGiant Swarmorganization, so for a customer these rows are the whole Postgres story.The ConfigMaps render under the resolved
global.observability.metrics.serviceMonitor.enabled: the operator that picks them up is part of the observability platform the monitors write to, and a board over series nobody collects is worse than no board. A component's own board still comes from that component's chart.A row only renders where its data exists
A default installation runs neither CloudNativePG nor the agentgateway data plane, and several run no Valkey. The board shipped verbatim, so those rows opened as tiles of "No data" for the customers who reach this folder.
Each component-owned row now repeats over a hidden variable,
label_values(<metric>, __name__), which yields exactly one value while the metric exists and none while it does not:postgres_presentkube_cnpg_cluster_infovalkey_presentredis_memory_used_bytesagentgateway_presentagentgateway_requests_totalThe agentgateway gate is per panel, not per row:
MCP serversandtool calls by MCP serverin the same row read muster's series, which every installation has.This gates on data rather than on
components.<name>.enabled. A component that is enabled but not yet scraped is hidden the same way, and the JSON stays a file that can be pasted into Grafana.Checks
dashboard-linter --strictwithgiantswarm/dashboards' own lint config, at the version itsinstall-tools.shpins: clean, exit 0.schemaVersion: 41, no stripped v2 envelope),editable: false,uidandowner:team-bumblebeetag present — whatcheck-dashboard-schema.shandvalidate-dashboards.shassert.verify-*targets pass. Re-run after the rebase on feat(dashboards): load the muster board into Shared Org / Agent Platform #615 and the gating:verify-target,verify-modes,verify-wiring, anddashboard-linter --strict(exit 0).Note on the golden comparisons
verify-modes,verify-wiringandverify-targetdrop the board by name, not with--set:GOLDEN_REF's schema has nodashboardskey, so a values hold fails its render outright and then every document reads as added. While fixing that I found theverify-modesstripper loses the leading---whenever the dropped document is the first one; it now keeps it.Third of three PRs putting every agent platform board in one folder, after #615 (merged) and #616. Rebased on #615. Part of giantswarm/giantswarm#36711.