Grafana 12 minor upgrades from 12.1 to 12.4

Moving Grafana from 12.1 to 12.4 needs action on the 12.4 Alertmanager metric prefix, the deprecated Helm plugin install variable and a planned upgrade cadence. This page sets out what changes and how to sequence the work.

On this page

How to upgrade Grafana 12.1 to 12.4 without breaking alerts

A team running self-hosted Grafana 12.1 that needs to reach 12.4 should plan around one known break: starting in Grafana 12.4, the Alertmanager cluster metrics carry the grafana_ prefix, so any dashboard panel or alert rule that queries the older metric names will stop returning data until it is updated. That makes cluster health monitoring the main risk in this move, not the core upgrade itself. Before changing the binary, export your dashboards and alert rules, search them for Alertmanager cluster metric names, and list the owners who will edit each one. The same check should cover any external monitoring that scrapes Grafana's own metrics, since those queries live outside the Grafana database and will not be caught by a dashboard review alone.

Grafana's upgrade guidance describes minor releases arriving roughly every other month and patch releases at least monthly, and each minor release is supported for 9 months. The last minor release of a major version is supported for 15 months, so a team that stays on a late 12.x minor gets a longer window than one on an earlier minor. Minor releases should be applied in order, one at a time, with a rollback point taken before each step. Read the release notes for every minor between 12.1 and 12.4, not only the last one, because a change in an intermediate release still applies when you skip ahead. Confirm the current support dates on the Grafana when to upgrade guidance before you fix a target version, since the window depends on the release dates in that guidance.

Run the sequence in a staging copy built from a recent backup of your database and plugin set. In staging, confirm that the Alertmanager cluster panels show data after the metric rename, that alert rules referencing cluster health evaluate without errors, and that notifications still reach their contact points. Repeat the check after each minor so a problem is traced to one step. Make sure the team that owns on-call routing signs off on the renamed metrics before production cutover. If your instance runs in high availability, review the Grafana alerting high availability documentation so that any change to cluster behavior is tested across nodes, not only on one server.

What changes between Grafana 12.1 and 12.4

This table lists the two changes the supplied research confirms for the 12.1 to 12.4 range, with the affected artifact and the action each one needs. Read it as a checklist: work through each row against your dashboards, alert rules, Helm values and automation before moving to the next minor.

ChangeIntroduced inImpactAction needed
GF_PLUGINS_INSTALL variable (Helm chart)Deprecated in 12.1.0Helm values that set GF_PLUGINS_INSTALL keep working for now but are deprecated, so they will need changing before the variable is removed.Move plugin lists to the plugins field or to GF_PLUGINS_PREINSTALL_SYNC, then confirm the install in a test release.
Alertmanager cluster metric prefix12.4Cluster health dashboards and alert rules that query the earlier Alertmanager cluster metric names stop returning data.Rename the metrics to the grafana_ prefixed names in dashboard queries and alert rules, then confirm each panel shows data after the upgrade.
Automation and scripts referencing plugin install settings12.1.0 onwardPipelines, Terraform or scripts that pass the deprecated variable may fail or silently drift once it is removed.Search repositories for GF_PLUGINS_INSTALL and update the templates and pipeline variables together with the Helm values.
Automation and scripts referencing Alertmanager metric names12.4 onwardExports, recording rules and external monitors that read the old metric names will show gaps.Search monitoring-as-code and recording rules for the old names and update them in the same change window as the upgrade.
Changes in 12.2 and 12.312.2 and 12.3This page does not list them. Other changes may affect your environment.Confirm the full release notes for 12.2 and 12.3 on the grafana/grafana releases page before planning each step.

Which parts of the stack each environment touches

Package installs run Grafana as a system service on a host you manage directly. The changes in this range reach these hosts through the package version you pin and the environment the service reads when it starts, so the plugin variable has to be located in the service configuration on that host.

  • Plugin variables: Search the service environment and any drop-in overrides for GF_PLUGINS_INSTALL. It has been deprecated since Grafana 12.1.0, so move plugin installation to the settings the plugin install docs describe before the next upgrade.
  • Plugin install sync: If you install plugins at startup, review how GF_PLUGINS_PREINSTALL_SYNC is set and confirm it matches the plugin list you expect.
  • Alertmanager metrics: Grafana serves the Alertmanager cluster metrics on its own metrics endpoint. From 12.4, those names carry the grafana_ prefix, so update the Prometheus scrape configuration, recording rules and dashboards that reference the old names.
  • Metrics endpoint access: Confirm the endpoint requires authentication, as the hardening guidance recommends, before Prometheus scrapes it under the new names.
  • Version pinning: Hold the package at a known 12.x minor version until dashboards and alert rules have been checked.

Check the service environment and each host's Prometheus configuration before restarting, because a package upgrade alone does not rename the metrics your queries use.

Why the 12.4 metric prefix change breaks cluster health dashboards

Starting in Grafana 12.4, the Alertmanager cluster metrics carry the grafana_ prefix, so any dashboard panel or alert rule on cluster health that still queries the earlier metric names will stop returning data or start firing on the wrong condition. The change is easy to miss because the panels do not error. They show empty series, and an alert rule that compares against a missing series may resolve, stay silent or misfire depending on how it handles no data. Treat the upgrade to 12.4 as a change to your alerting estate, not only to the Grafana binary.

Start by inventorying every place the old names appear. Search dashboard JSON, Grafana-managed alert rules, provisioning files and any external Prometheus rule files for the Alertmanager cluster metric names your instances export, and compare the list against the names your Grafana 12.4 instances actually expose. Also check whether the same panels are used on NOC wallboards or in reports, since those copies are often outside the folder structure you searched. Record each affected rule with its owner so the fix can be reviewed, not just edited.

Cluster health matters here because high availability alerting relies on these metrics to show whether Alertmanager peers see each other. Without a working view of peer state, a team can miss a split cluster and get duplicate or missing notifications. Before you change any query, read the Grafana alerting high availability documentation to confirm the exact metric names, the labels they carry and the recommended peer and notification checks for your topology. Then update queries in a non-production instance, verify that the series return data and that a deliberately triggered test alert still routes once, and only then promote the change.

What to prepare before moving to 12.4

Most of the work before a Grafana 12.4 move is inventory and rollback readiness, not the upgrade itself. The items below cover what you must back up, what you must find, and what you must be able to undo, so the change window is spent on verification rather than discovery.

Back up the configuration database

Take a backup of the Grafana configuration database before anything changes. SQLite is the default, but the Grafana installation docs state it does not scale for production, so a production or high availability instance should run MySQL 8.0 or later or PostgreSQL 12 or later. Confirm you can restore the backup to a separate host and log in with a known user before you rely on it. Test the restore, not just the file copy.

Inventory alerts and dashboards using Alertmanager metrics

Starting in Grafana 12.4, Alertmanager cluster metrics carry the grafana_ prefix. Search every dashboard panel query and alert rule for the earlier metric names, including cluster health panels and any alert on peer or cluster state. Record each match with its folder, owner and notification path. Update the queries in staging first, then confirm the panels return data after the change.

List Helm values that set GF_PLUGINS_INSTALL

The GF_PLUGINS_INSTALL variable has been deprecated since Grafana 12.1.0. Search your Helm values files, environment overrides and pipeline variables for it. Replace it with the plugins field or GF_PLUGINS_PREINSTALL_SYNC, following the plugin install docs. Record the plugin names and versions currently installed so the replacement installs the same set.

Build a staging environment that matches HA

Stage the upgrade on a copy of the production layout: the same number of Grafana servers behind the same load balancer, the same MySQL or PostgreSQL database, and the same alerting high availability settings. Single-node staging hides duplicate notifications and session problems that appear across nodes. Run the Alertmanager metric check and a sample of alert notifications in staging before the production window.

Keep provisioning files under version control

Data sources, dashboards, plugins and alerting resources defined in YAML or JSON provisioning files load at startup, so they show what the instance should contain after the upgrade. Store these files in Git, review changes through pull requests and confirm that a clean instance loads them without manual edits. Any dashboard edited only in the UI is a gap to close before the move.

Document a rollback owner and steps

Name one person who can call a rollback and one who executes it, and write the steps in the change record. The steps should restore the database backup, the Grafana package or container image version, and the plugin set. Agree the decision point in advance, such as a failed dashboard check or missing alert notification, so the team is not debating it during the window.

The upgrade sequence for each minor release

This sequence moves a self-hosted Grafana instance from 12.1 to 12.4 one minor release at a time, with a tested restore point after each move. It clears the deprecated plugin variable and the Alertmanager metric rename before any production node changes.

  1. Inventory the running deployment

    The platform owner records the installed version, the database type and the installation method, whether packages, containers or the Helm chart. List every plugin, data source, provisioning file and alert rule, and search environment files and Helm values for GF_PLUGINS_INSTALL, which has been deprecated since Grafana 12.1.0. Done when the team has a written inventory that the platform owner and the dashboard owners have reviewed and signed off.

  2. Back up the database, configuration and plugins

    Take a consistent backup of the Grafana database (grafana.db for SQLite, or the MySQL or PostgreSQL database), the configuration file, the provisioning directories and the plugins directory. Store the copy outside the instance, then restore it into a separate test instance to confirm it works. A restore test is the only proof that the backup is usable. Output: a tested restore point, with its location recorded in the change record.

  3. Upgrade staging from 12.1 to 12.2

    The platform team deploys Grafana 12.2 to a staging copy of production, using a restored copy of the production database and the same plugins and provisioning files. Read the 12.2 release notes for changes that affect your data sources, plugins or provisioning, then review startup logs for plugin and provisioning errors. Open the main dashboards and confirm sample alert rules evaluate. Rollback checkpoint: keep the 12.1 package or image and the step 2 backup until step 8 is complete.

  4. Upgrade staging from 12.2 to 12.3

    The platform team repeats the staging check on 12.3, starting from the 12.2 staging build. Confirm that plugins install and load from the configuration used in your environment, and that provisioned data sources connect. Review the 12.3 release notes for any change that touches your dashboards or alert rules, and test the top dashboards again. Rollback checkpoint: keep the 12.2 package or image and the step 2 backup in place. Done when the staging dashboards render and no plugin or provisioning errors appear in the logs.

  5. Upgrade staging to 12.4 and update metric names

    Move staging to 12.4, then search dashboards, alert rules and recording rules for Alertmanager cluster metrics. From 12.4 these metrics carry the grafana_ prefix, so queries built on earlier names return no data until they are updated. Update the panels and rules, and confirm the plugin install settings use the plugins field or GF_PLUGINS_PREINSTALL_SYNC. Rollback checkpoint: keep the 12.3 build and the step 2 backup. Done when the updated queries show values against the staging Alertmanager cluster.

  6. Upgrade high availability nodes one at a time

    Take one Grafana node out of the load balancer, upgrade it to 12.4, then confirm it starts, passes health checks and accepts logins before returning it to the pool. Move to the next node only after the first one is healthy. The nodes share a MySQL or PostgreSQL database and use database-backed auth tokens, so users can reach any node during the rolling change. Confirm the release notes for the supported mixed-version period and keep it short. Done when every node reports 12.4 and all are healthy at the load balancer.

  7. Verify alert notifications are not duplicated

    Grafana's high availability documentation notes that alerting needs additional configuration to avoid duplicate notifications. Confirm the high availability alerting settings are present on every node, then send a test alert through each contact point and count the notifications received. Check that the Alertmanager cluster metrics show the expected peers under their grafana_ names. Done when each test notification arrives once. See Configure high availability for alerting for the settings to check.

  8. Promote the tested sequence to production

    Repeat the tested sequence on production during an agreed change window, starting from the step 1 inventory and the step 2 backup, and using the same installation method and version pins as staging. After the change, check dashboards, alert rules, plugin loading and notification delivery against the staging checklist. Plan support around the upgrade guidance: each minor release is supported for 9 months, and the last minor release of a major version for 15 months. Keep the 12.1 restore point until the production checks are signed off.

How to test 12.4 and roll back if an alert stops firing

Test the 12.4 upgrade against the failures that matter most to an operations team: dashboards that go blank, alert rules that stop evaluating, and notifications that arrive twice or not at all. Run the tests on a copy of production that includes your real data sources, your high availability layout and your provisioned resources, not a fresh install with a few demo dashboards. The most important case is the Alertmanager cluster health metrics, which carry the grafana_ prefix from 12.4 onward. Search every dashboard, alert rule and recording rule for the older metric names, then confirm that the replacement panels show data after the upgrade. An alert that references an old name can keep evaluating without error while it reads no series, so check the rule state, not only whether the rule saved.

Next, test notification routing in your high availability setup. Trigger a test alert and confirm that each contact point receives exactly one notification, since duplicate delivery is the failure the high availability documentation warns about when alerting is not configured for it. Then confirm that provisioned data sources, dashboards, plugins and alerting resources load at startup from the files you deploy, and that a restart on each node produces the same state. Check that the upgraded instance reads the same provisioning directory on every node, because drift between nodes can show up only after a failover.

Plan the rollback before you start the upgrade. Restoring the previous Grafana binary or image is not enough on its own: you need the database backup and the configuration, including provisioning files and plugin versions, restored together so the running version matches the schema it expects. Take the backup while Grafana is stopped or from a consistent database snapshot, and record which Grafana version and plugin versions were running. The grafana upgrade rollback topic covers the downgrade traps in depth, so read it before you rehearse a rollback. Confirm in your own environment whether your Grafana version supports the downgrade path you intend to use between these minors, and whether your database engine and plugins behave the same after a restore.

What makes a 12.x minor upgrade take longer

This table lists the factors that most change how much work a Grafana 12.1 to 12.4 minor upgrade takes, with what raises effort and what lowers it. Read each row against your own estate, since the same version step can be a small change on one instance and a multi-team task on another.

DriverWhat raises effortWhat lowers effort
Alertmanager cluster metric referencesMany dashboards and alert rules query Alertmanager cluster metrics, which need the grafana_ prefix from 12.4 onwardFew or no references, or references already kept in version-controlled provisioning files that can be updated in one change
GF_PLUGINS_INSTALL in Helm or scriptsHelm values or startup scripts still set GF_PLUGINS_INSTALL, which has been deprecated since 12.1.0Plugins already declared in the plugins field or handled through GF_PLUGINS_PREINSTALL_SYNC
HA node countSeveral active-active nodes behind a load balancer, each needing the same version and plugin set, plus alerting configured to avoid duplicate notificationsA single node or a small, uniformly built pool that is upgraded one node at a time with a documented rollback point
Database type and sizeLarge SQLite-free MySQL or PostgreSQL databases that need a verified backup and a tested restore before each stepModest database size with a current, restore-tested backup taken immediately before the upgrade
Provisioning versus manual configurationDashboards, data sources and alert rules built by hand in the UI, so each change must be found and checked after upgradeData sources, dashboards and alerting defined in YAML or JSON provisioning files that load at startup and can be diffed and reapplied
Installed plugin countMany plugins, including community or abandoned ones, each needing a compatibility check against the target minorA short, approved plugin list with current versions and a known source for each plugin
Verification scopeMany dashboards and alert rules across teams, each needing a post-upgrade review by its ownerA defined set of critical dashboards and alerts checked against a staging copy before production

Questions teams ask before upgrading Grafana 12.x

How long does a Grafana 12 minor upgrade take?

No fixed duration applies, because the time depends on what is running. The main drivers are the number of Grafana servers or pods, the database (SQLite for a single node, or MySQL or PostgreSQL for production and high availability), the number of dashboards, alert rules, data sources and plugins, and how the instance is deployed (packages, Docker or the Helm chart). Changes to dashboards and alerts that reference renamed metrics add review time. Your change process also sets the pace, including how many staging cycles and approval steps you require. Ask for the schedule to be written into the scope, with each milestone and the window you need from your own change calendar. Grafana publishes minor releases roughly every other month, so a repeatable process is worth building once.

What does a Grafana upgrade cost, and what should a quote cover?

The cost is the labor to assess, stage, change, verify and hand over the upgrade. DeployOpen does not publish a price list. A quote follows from the written scope. The one-time work usually includes an inventory of the current version, plugins, data sources and alert rules, a rebuilt staging copy, the change itself, a rollback plan, post-upgrade checks and documentation. Recurring costs appear only if you buy ongoing support, which is offered as a retainer and covers later minor and patch upgrades. Ask the quote to state which versions it covers, which environments are included, how many dashboards and alert rules are reviewed, whether work happens outside business hours, whether a rollback is rehearsed, and what happens after the handover. Those items are what move the price most.

Can our in-house team upgrade Grafana 12.x without a partner?

Yes, many teams do this themselves, and a minor upgrade is a routine task for a team that already runs Grafana. The skills needed are the ones you already use for the platform: reading release notes, taking a database backup, editing provisioning files or Helm values, and checking dashboards and alerts after the change. A partner is most useful when the instance is a high availability cluster with alerting configured for it, when custom plugins need testing, or when there is no spare staging environment and no one to own the rollback. Before you start, confirm that someone can take and restore a database backup, that the plugin list is current, and that the team has time to review alert rules that reference renamed metrics.

What does the client need to provide for a Grafana upgrade engagement?

The engagement needs access, a safe place to test, and named owners who can make decisions. In practice that means:

  • Administrative access to the Grafana hosts, containers or Kubernetes namespace, with rights to change configuration and restart services.
  • Database access or a current backup path for the SQLite file, MySQL or PostgreSQL database.
  • A staging instance that mirrors production configuration, data source connections and plugin versions.
  • A current list of data sources, plugins, provisioning files and alert contact points.
  • A named owner for the dashboards and alert rules that matter most, who can confirm they work after the change.
  • Your change calendar, approval path and a window for the cutover.

Without these, the work stalls at discovery, and the quote should show the cost of waiting.

How long is each Grafana 12 minor release supported?

Each minor release is supported for 9 months, and the last minor release of a major version is supported for 15 months. Grafana releases a new major version once a year, in April or May, and 12.0.0 shipped on May 5, 2025. Patch releases come at least monthly, so a supported minor receives fixes on that cadence. Check the grafana/grafana releases page to confirm which 12.x release was the last minor of the 12 line, and count the windows from each release date. The release guidance is the best reference for planning, and the schedule is set by Grafana Labs, so confirm it against the current documentation before you commit a change window.

What happens if we stay on Grafana 12.1?

Grafana 12.1 keeps running, but it moves toward the end of its support window on a fixed schedule. Once a minor falls outside its 9-month window, it stops receiving patch releases, so known vulnerabilities and bugs are left in place. Staying on 12.1 also leaves you on the deprecated Helm variable GF_PLUGINS_INSTALL, which has been deprecated since Grafana 12.1.0. That is not an emergency, but it is a migration task you will eventually need to plan. Alertmanager cluster metric names keep their earlier form until you move past 12.3, so dashboards and alerts built on them keep working for now. Check the release date of 12.1 on the releases page to see how much of the window remains.

Which Grafana 12.x changes break dashboards and alerts?

The main breaking change in this range is in 12.4, where Alertmanager cluster metrics gain the grafana_ prefix. Dashboards and alert rules that query the earlier metric names will show gaps or stop evaluating, so they need updating before or during the upgrade. The second change affects deployment automation: the GF_PLUGINS_INSTALL variable for the Helm chart has been deprecated since 12.1.0, in favor of the plugins field or GF_PLUGINS_PREINSTALL_SYNC. Before the upgrade, search your dashboards and alert rules for Alertmanager cluster metric names, and review your Helm values and plugin install settings. The plugin install documentation lists the current options.

Which Grafana 12 minor to target and when

Target the newest 12.x minor that your upgrade window can absorb, and check its support status before you commit a date. Grafana's upgrade guidance says minor releases arrive about every other month, and each minor is supported for 9 months. The last minor release of a major version gets 15 months instead. That means a minor you stay on past its window stops receiving fixes, so a team that moves from 12.1 to 12.4 in one step is working against a clock that started when each minor shipped, not when your change board approved the work. Confirm the current end-of-support dates for 12.1 through 12.4 on the grafana/grafana releases page rather than relying on a calendar estimate, because the release list is the record you can point an auditor or manager to.

Grafana 13.x is already released, with 13.0 through 13.2 patch and minor builds visible on the same releases page. That changes the planning question. A move from 12.x to 13.x is a major upgrade with its own preparation work, so the team should decide now whether a major upgrade is planned in the next budget cycle. If it is, staying on the last 12.x minor for a short period may be the simpler path, and the 15-month window for the final minor of a major version becomes relevant. If no major upgrade is planned, the 9-month window for each minor is the constraint to watch. Either way, record the chosen target version, its support end date and the date you will next review the decision, so the choice is visible to security and operations owners.

Plan the minor upgrade as a sequence of checks, not a version number change. Before selecting 12.4 or any later minor, review the alerting metric prefix change in that release, the deprecated plugin install settings if you deploy with the Helm chart, and any dashboards or alerts that read Alertmanager cluster metrics. Ask whether your environment runs in a single-node or high-availability setup, because that affects which alerting checks apply. Confirm these items with your own inventory and the release notes for each target version, and treat the minor you choose as a documented commitment with a named owner and a review date.

How DeployOpen works on this

DeployOpen scopes each Grafana 12 minor upgrade from 12.1 to 12.4 in writing before work starts, starting from your current version, plugins, database and automation. We then test the path in a non-production copy and hand over the changes, evidence and rollback plan with the instance.

How we scope

  • Confirm your current Grafana 12.x version, target minor, and whether the path crosses 12.4's Alertmanager metric prefix change.
  • Inventory data sources, plugins, dashboards and alert rules that query Alertmanager cluster health metrics.
  • Record how Grafana is installed (packages, Docker, or Helm chart) and which plugin install variables are in use.

How we build

  • Rehearse the upgrade on a restored copy of your production database, whether SQLite, MySQL or PostgreSQL, before touching production.
  • Update dashboards and alert rules to the grafana_ prefixed Alertmanager metric names and check them against live data.
  • Move deprecated GF_PLUGINS_INSTALL settings to the plugins field or GF_PLUGINS_PREINSTALL_SYNC in your deployment code.

How we hand over

  • Deliver a written change record listing versions, plugin changes, query fixes and the tested rollback steps.
  • Provide updated provisioning files or infrastructure code so the new settings survive the next deployment.
  • Document the upgrade calendar using the published minor support window so your team knows when the next move is due.

How we support

  • Offer ongoing support, patch handling and upgrades under a retainer if you want DeployOpen to track future minor releases.
  • Review each new minor release notes for changes to plugins, data sources and alerting before scheduling work.
  • Confirm support arrangements and response expectations in the written agreement, since these vary by engagement.

Sources and further reading

Talk to our team.

Tell us what you're working on, whether it's a deployment, an audit, a security test or a cyber range. You'll speak with an engineer who can help you scope it.

  • 30-minute call: free, with no obligation.
  • NDA on request: we can sign before you share details.
  • Clear next steps: a scope and plan after the call.