Jorge Turbica / blog · Blog ← All articles ES · Leer en español
Technologies

Grafana 13.3: one variable for all your dashboards, and an RBAC change to review

Grafana 13.3 adds cross-dashboard variables, Notebooks and Alertmanager import, and widens who can revoke access. What changes and how to upgrade.

If twenty dashboards share the same cluster selector, you've been maintaining twenty copies of that variable by hand. Grafana 13.3, announced on October 29, 2026, lets you define it once and reuse it across the whole organization. It ships alongside Notebooks for writing up investigations, the biggest visual refresh since Grafana 7, and a set of alerting changes that matter more to whoever is on call than to whoever designs dashboards.

Variables shared across dashboards

This is the change that saves the most work. You create variables under Dashboards > Variables with one of two scopes:

  • Global: available to every dashboard in the organization.
  • Folder: only for dashboards in that folder.

When editing a dashboard, you add it from the sidebar as a Global or folder variable. Viewers can still change its value, but the definition (query, options, default) lives in one place. The problem it solves is configuration drift: the one team dashboard that filters env with a slightly different regex, which nobody notices until the numbers don't match during an incident.

It's in public preview in all editions. On self-managed Grafana you turn it on with the grafana.dashboardGlobalVariables feature toggle.

Notebooks for investigations and postmortems

An investigation usually ends up scattered across a panel, an Explore query, a Grafana Assistant chat and screenshots in the incident channel. Notebooks pull it into one editable document: panels from dashboards or Explore, Assistant findings and your notes next to the data. You can save and share them, and search, filter and export them from their own page.

The clearest use for an SRE is preparing the post-incident review with the relevant panels already in place, instead of rebuilding them days later. Also in public preview; the toggle is dashboard.notebooks.

Alerting: less manual migration, rules with required context

Three changes that didn't make the headline but matter more day to day:

  • Import your Alertmanager configuration. When you move rules from Prometheus or Mimir into Grafana Alerting, you can now bring routing and notification settings along instead of rebuilding them.
  • Alert Advisor. Define which labels and annotations Grafana-managed rules must carry (a runbook_url, a team label for routing), find the rules missing them and, optionally, enforce the requirement on provisioning writes.
  • Prometheus Alerting plugin. Managing Prometheus, Mimir and Loki rules (groups, routes, receivers, silences) moves to a separate app. Old links keep working and land in the plugin; Grafana-managed alerting stays in core.

Other useful additions

  • Panel time settings and time comparison are now GA: override or shift a single panel's time range, or compare it against an earlier period, without entering edit mode.
  • Thresholds with variables: a threshold step can be $my-var, handy for reusing one dashboard across services with different SLOs.
  • Static refIds in transformations: Merge, Join by field, Join by labels and Series to rows used to generate a refId like merge-A-B that changed when you renamed or removed a query, silently breaking later transformations. The chain now stays stable.
  • Git Sync renders every Markdown file in a provisioned folder as a tab, Mermaid diagrams included: runbooks right next to the dashboard.
  • Visual refresh (public preview, toggle grafana.visualDesignRefresh): new colors, typography and components, no navigation changes and no plugin breakage. You can switch back at any time.

The breaking change: revoking access you don't hold

The only entry in the breaking changes list touches RBAC. Anyone allowed to manage roles or role assignments can now revoke access they don't hold themselves, when updating or deleting a role or removing assignments through the /api/access-control/ APIs. If you delegate role management to teams or automation, review who holds those permissions before upgrading: their power to remove access just got broader.

How to upgrade to Grafana 13.3

Back up first. With the default SQLite database, stop the service before copying it:

bash
sudo systemctl stop grafana-server
sudo cp /var/lib/grafana/grafana.db /var/lib/grafana/grafana.db.bak-13.2
sudo cp /etc/grafana/grafana.ini /etc/grafana/grafana.ini.bak-13.2

On MySQL or PostgreSQL, use mysqldump or pg_dump on the grafana database. Then, depending on how you installed it:

bash
# Grafana Labs APT repository
sudo apt-get update
sudo apt-get upgrade

# Docker
docker pull grafana/grafana:13.3.0

To try the preview features, enable each toggle as its own entry in the [feature_toggles] section of grafana.ini (the enable = a,b option is deprecated and will be removed in a future major release):

ini
[feature_toggles]
grafana.dashboardGlobalVariables = true
dashboard.notebooks = true
grafana.visualDesignRefresh = true

On Docker, mount that file at /etc/grafana/grafana.ini, the image's default config path.

Checklist before production

  1. Upgrade a staging instance first, using a copy of the production database.
  2. Review who holds role-management permissions and whether any automation calls /api/access-control/.
  3. Open dashboards with chained transformations (Merge, Join) and check that panels still show data.
  4. If you use data-source-managed rules (Prometheus, Mimir, Loki), check that links in your runbooks and notifications land on the right page.
  5. Turn on previews in staging only: these features can still change.

Sources

Jorge Turbica

Software Engineer and SRE. I write about the real challenges I run into in production.

See portfolio ↗