Imported from wiremind/wiremind-grafana-dashboards (
AGENTS.md). Install upstream withnpx skills add wiremind/wiremind-grafana-dashboards. Copyright stays with the author.
Dashboard conventions
Grafana dashboard JSONs, one kebab-case file per dashboard at the repo root.
Dashboards are provisioned onto the Wiremind clusters by kube-prometheus-stack
(wiremind-services-configuration): the Grafana sidecar downloads the raw JSON
from master, so merging here deploys everywhere the dashboard is referenced.
- Classic v1 schema only (
schemaVersion+panels/gridPos). Grafana's file provisioner rejects the v2 resource format (elements/layout,apiVersion: dashboard.grafana.app/v2). When exporting from the Grafana UI, pick the Classic export option, and avoid v2-only features (tabs, conditional panels). - Never hardcode a datasource: declare a
datasourcetemplate variable (type: datasource,query: prometheus) and reference${datasource}everywhere. Enable the cleanup hook:git config core.hooksPath .githooks. - Multi-cluster by default: queries go through Thanos, so add a
clusterquery variable (label_values(<metric>, cluster), multi + include-all) and filter every query withcluster=~"$cluster". Addnamespace(chained on$cluster) when it makes sense. - Give each dashboard a stable
uidandtags; keep theuidunchanged when updating, it is part of dashboard URLs. - On stat/gauge/bar-gauge panels, set the field default
displayName: ${__series.name}if the series name must stay visible when a query returns a single series (Grafana hides it by default). - To provision a new dashboard, add a
dashboards:entry pointing at the rawmasterURL inhelmfile/services/monitoring/kube-prometheus-stack/values/base/kube-prometheus-stack.chart.yaml.gotmplinwiremind-services-configuration.
