/grafana. Instead of editing dashboards and alerts in the Grafana UI and relying on a persistent volume to keep them, you define them as Kubernetes custom resources (CRs), commit those manifests to source control, and let the operator reconcile them into Grafana. This mirrors how Domino ships its own dashboards, keeps your customizations under version control, and makes them easy to reproduce across deployments.
This workflow applies to self-managed deployments where you can apply Kubernetes manifests in the Domino cluster. On Domino Cloud you do not have cluster access, so this page is not applicable. Continue to work with your Domino contact for changes on Cloud.
Prerequisites
- Domino 6.3.0 or later, with the platform Grafana instance managed by the Grafana Operator.
kubectlaccess to the Domino cluster, and permission to create resources in thedomino-platformnamespace (or the namespace where Grafana is deployed in your environment).- The Grafana Operator custom resource definitions installed in the cluster. Domino installs these automatically as part of the platform Grafana instance.
Custom resource types
The Grafana Operator provides several custom resource kinds under thegrafana.integreatly.org/v1beta1 API group. The ones you use to add or override content are:
Domino ships its standard dashboards and alerts as these same CRs, so any dashboard or alert you can view in the Grafana UI is defined as a manifest somewhere in the platform.
How CRs attach to the Grafana instance
A single Kubernetes cluster can host more than one Grafana instance. The operator uses label selectors to decide which CRs belong to which instance. Every dashboard, alert, and data source CR must both:- Carry the label the target Grafana instance selects on.
- Set
spec.instanceSelector.matchLabelsto the same label.
dashboards: grafana-platform label for dashboards and datasources: grafana-platform for data sources. If the labels on your CR do not match exactly, the operator does not attach it to the instance and the dashboard or alert does not appear in the Grafana UI.
Add a custom dashboard
- Build the dashboard in the Grafana UI as usual and export it as JSON (Dashboard settings > JSON Model).
- Save the JSON to a file in your infrastructure repository, next to your other Kubernetes manifests.
-
Create a
GrafanaDashboardmanifest that references the JSON and carries the platform selector label. For example: -
Apply the manifest:
-
Open Grafana at
https://<your-domino-domain>/grafanaand confirm the dashboard appears in the folder you set. If it does not, see Troubleshoot label and selector mismatches below.
Add a custom alert rule
Add aGrafanaAlertRule manifest in the same repository with the same label contract. Apply it with kubectl apply and confirm the rule appears under Alerting in the Grafana UI.
Override a Domino-shipped dashboard or alert
The operator reconciles the CR whose name matches an existing dashboard or alert, so to override a standard Domino dashboard you create a CR of your own with the same title in the same folder and different content. You do not edit the Domino-managed CR directly; changes to that CR are overwritten on the next upgrade. Keeping your override in your own repository preserves it across Domino upgrades.Troubleshoot label and selector mismatches
If a dashboard or alert CR does not appear in Grafana after you apply it, the most common cause is a label or selector that does not match the platform instance. Confirm the labels the platform instance selects on:spec.allowCrossNamespaceImport: true on the CR.