Help build the future of open source observability software Open positions

Check out the open source projects we support Downloads

Grafana dashboards as code: How to manage your dashboards with Git

Grafana dashboards as code: How to manage your dashboards with Git

2025-05-07 4 min

As your Grafana instance scales, so does the challenge of maintaining dashboards. Managing dozens—or hundreds—of dashboards through the UI alone can quickly become overwhelming. Tracking changes gets murky, dashboards multiply, and consistency suffers.

To regain control, many teams turn to managing dashboards as code, applying the same proven practices that have helped them successfully manage complex software systems. The as code approach offers greater visibility and version control, but it comes with trade-offs: The setup is often complex and not as user-friendly as managing dashboards from an engaging user interface. Plus the burden of change management shifts to a few admins, creating bottlenecks.

Watching customers wrestle with this again and again made something clear—what they really needed was a simple, integrated way to store dashboards in Git, track changes, and manage approvals.

That’s when the idea sparked: What if Grafana could handle this natively? What if we could bring the GitOps workflow into Grafana—leveraging familiar tools like GitHub pull requests—and make saving dashboards effortless?

The solution: Git Sync, a new feature in Grafana 12 that provides you with the power of Git version control right in your Grafana instance. A highlight in the Grafana 12 release, Git Sync—which is an experimental feature in Grafana OSS and Grafana Enterprise and available to a limited number of users in private preview in Grafana Cloud—enables you to submit changes in your dashboards as pull requests and get them reviewed by your team directly from Grafana or from Git.

How Git Sync in Grafana 12 works

When building Git Sync, our North Star was to replace custom-made CIs with a simple way to synchronize Grafana content with GitHub. In order to remove the set up burden for our users, your dashboard configuration is now synchronized directly into a Git repository.

After configuration, the feature becomes part of your Save workflow, and enables a seamless experience for saving dashboards directly to your selected repository. The edited dashboard is only visible to the editor, or through a preview link in the PR, and becomes available to everyone if the PR is merged to main.

New workflow started in Git Sync in Grafana 12
Once Git Sync is set up, the Save button will trigger a new workflow to save your dashboard directly to the configured GitHub repository.

Once the dashboard is saved, it’s easy to open a pull request to submit the changes with just the click of a button. After the PR is opened, Grafana will automatically add a comment with links to the original dashboards, as well as the preview and a screenshot of the edited version so that actual changes can be quickly reviewed at a glance.

Opening a PR in Git Sync in Grafana 12

But we are not stopping there. Over the course of the upcoming year, we plan to expand the feature capabilities, such as adding support to additional Grafana resources. We will also add support for more upstream connections with other tools, like GitLab and BitBucket, as well as connections to storage such as Amazon S3. And, of course, we want to hear your feedback about Git Sync to better plan for improvements so please share your thoughts in the #git-sync channel in the Grafana Labs Community Slack.

To learn more about this feature, you can review our Git Sync documentation.

How to get started with Git Sync in Grafana 12 

Git Sync is designed to make it easy to save and manage your dashboards as code—no complex setup required. It is a great fit if you don’t yet have an as code pipeline in place—or if your current setup is becoming difficult to maintain. 

Git Sync is currently available as experimental for all our on-prem Grafana OSS and Grafana Enterprise users, and in private preview for Grafana Cloud users. If you are interested in trying out the feature, please complete this Git Sync interest form, and we will help you get started, or let you know if you are eligible for the private preview in Grafana Cloud.

However, since this is still an experimental feature, we strongly recommend that you should not use Git Sync in production environments at this time. Instead, try it out safely in a development environment. You can find more information on our release life cycle in our Grafana documentation

Once enabled, Git Sync will trigger a storage migration and all your dashboards will have GitHub as source of truth. This means that if you delete the connection setup, you will see all the dashboards disappear from the instance. (They will still be available in the Git repository.)

Explore the different types of connections, copy your dashboards to git or vice versa, and let us know what you think. We’re actively gathering feedback in the #git-sync channel in our Grafana Labs Community Slack and we can’t wait to hear your thoughts!

You might also want to dive into our broader observability as code suite of tools in Grafana 12, which we highlighted in the opening keynote of GrafanaCON 2025.

Grafana Cloud is the easiest way to get started with metrics, logs, traces, dashboards, and more. We have a generous forever-free tier and plans for every use case. Sign up for free now!