What Is New in Grafana 12.0
| Category | Highlights |
|---|---|
| New Features |
|
| Improvements |
|
| Breaking Changes |
|
| Deprecations |
|
How does Grafana 12 enable "Observability as Code" with Git Sync and a new dashboard schema?
Grafana 12 lets you version-control dashboards directly from the UI by linking a GitHub repository via Git Sync.
- Enable Git Sync in Configuration → Git Sync and select the target repo.
- All dashboard edits are committed as PRs, giving you an audit trail and CI/CD integration.
- The new dashboard schema (v2) separates layout, panels, and data sources, making JSON diffs cleaner and supporting dynamic dashboards built on the Scenes library.
# Example: Enable Git Sync via API
curl -X POST -H "Content-Type: application/json" -d '{"repoUrl":"https://github.com/org/repo","branch":"main"}' http://localhost:3000/api/git-sync
In practice this reduces manual export/import steps and aligns observability with existing code review processes.
What are the new Drilldown capabilities for Metrics, Logs, and Traces in Grafana 12?
Grafana 12 ships GA of Metrics, Logs, and Traces Drilldown apps, providing a unified, query-less exploration experience.
- Metrics Drilldown: One-click expansion of aggregated metrics into underlying series, reducing the need to maintain many individual queries.
- Logs Drilldown: Includes a JSON viewer for structured logs and new controls in Explore for better layout handling.
- Traces Drilldown: GA release offers a simplified UI without writing TraceQL, plus trace correlations that add context-aware links to any span.
- Investigations (public preview) aggregates signals from all three domains into a single view for faster root-cause analysis.
This matters if your team currently switches between separate panels or tools to correlate metrics, logs, and traces.
How has alerting changed in Grafana 12, and what migration tools are provided?
Grafana 12 introduces fully managed alerting with migration tools to bring existing data-source alerts into the new system.
- Alert rule migration UI and API import Prometheus-compatible rules (Prometheus, Mimir, Loki) into Grafana-managed alerts.
- New "Recovering" state lets you define a grace period before an alert can fire again, cutting down on flapping noise.
- Recently deleted alert rules can be restored or permanently removed via the Alerts & IRM UI.
- All alerting now lives under the Grafana backend, enabling cross-data-source alerting and tighter RBAC.
Watch out for the need to update any custom alerting scripts to use the new Grafana-managed API endpoints.
Which breaking changes and deprecations should I watch out for when upgrading to Grafana 12?
Upgrading to Grafana 12 requires attention to several breaking changes and deprecations.
- editors_can_admin config removed - Editors lose the ability to create teams unless you adjust permissions.
- Dynamic dashboards migrated to schema v2 cannot be rolled back; plan migrations carefully.
- Data source UIDs now must match the strict
^[a-zA-Z0-9_-]+$pattern; update provisioning files accordingly. - Angular plugins are no longer supported - convert any custom panels to React or use the built-in equivalents.
- Deprecated UI extension APIs have been removed; switch to the reactive APIs introduced in v11.4.
- Metric
cache_sizesplit into two new metrics and will disappear in v13. - 'Aggregate by' in Tempo is deprecated; use TraceQL metrics instead.
Most teams will need to audit their plugin inventory and provisioning scripts before the upgrade.
Frequently Asked Questions
Does Git Sync require any additional plugins to be installed?
No additional plugins are needed; Git Sync is built into Grafana 12 and enabled via the UI or API.
Can I still use Angular panels after upgrading to Grafana 12?
Angular panels are no longer supported and will be automatically migrated to their React equivalents.
How do I migrate existing Prometheus alert rules to Grafana-managed alerts?
Use the Alert rule migration tool in the UI or call the API endpoint /api/alert-migration with a JSON payload describing the source rules.
What is the new UID format requirement for data sources?
UIDs must now match the regex ^[a-zA-Z0-9_-]+$ and be unique across all Grafana objects.
Is the "Recovering" state available for all alert rule types?
Yes, the Recovering state can be configured on any Grafana-managed alert rule regardless of the data source.
How can I enable the new experimental themes?
Go to the user menu, select Change theme, and pick one of the experimental themes such as Sapphire dusk or Tron.