Help build the future of open source observability software Open positions

Check out the open source projects we support Downloads

New in Grafana 12: Dynamic dashboards that are smarter, easier to edit, and can be customized for teams

New in Grafana 12: Dynamic dashboards that are smarter, easier to edit, and can be customized for teams

2025-05-07 7 min

In Grafana 11, we migrated our dashboard architecture to the Scenes library, which provides users a more stable and flexible foundation for Grafana dashboards. Over the past year, we have been building a new dashboard schema and new APIs on top of the App Platform.

With the release of Grafana 12 at GrafanaCON 2025, we’re excited to showcase what the team has built on top of this foundation: 

  • A suite of observability as code tools that help you version, validate, and deploy dashboards like any other code base in your organization. To learn more, check out our latest observability as code blog post
  • A new dynamic dashboards experience with a strong focus on improving how users navigate, consume, and edit dashboards

“Although we’ve documented visual guidelines within our software engineering teams, expanding and maintaining dashboard consistency is a challenge,” says Oren Lion, Director of Software Engineering, Productivity Engineering at Teletracking. “The new dynamic dashboards features get us closer to ‘best practice’ auto-layout with the aim of lowering noise, increasing cohesion, and making consistency the easy choice.”

Before we jump into how users achieve all of the above with the new dynamic dashboarding experience—which is currently an experimental feature in Grafana OSS, Grafana Cloud, and Grafana Enterprise—let’s take a step back and look at the user problems that started it all.

The value—and challenge—of building big dashboards

As our user base has grown, we’ve seen larger teams connecting more data sources, which leads to increasingly complex dashboards. (So. Many. Panels.) In fact, in our third annual Observability Survey, we found Grafana users configure an average of 16 data sources while companies with more than 5,000 employees juggle an average of 24 data sources. 

Some of the common challenges our teams have both experienced firsthand and observed across the community as dashboards become more comprehensive: 

  • While larger dashboards provide a single source of truth for multiple use cases, only a subset of the displayed information is relevant for any given user.
  • While template variables and collapsible rows help reduce visual noise, they can also result in dashboards showing empty panels, which can be confusing and frustrating.
  • Some dashboard layouts are not responsive and struggle to adapt panel layouts for different screen sizes, leading to inconsistent experiences and manual adjustments.
  • Users often have to scroll extensively and manually expand or collapse sections to find what they need, which can be a time-consuming and inefficient process.

To address these challenges, we decided to redesign the Grafana dashboard experience from the ground up—aiming not just to solve the problems above, but also to elevate the overall user experience in Grafana. The result: Dynamic Dashboards, a more intuitive and sleek dashboarding experience that’s built on the robust foundation of the Scenes library and the updated dashboard schema.

Dynamic dashboard screenshot in Grafana 12

Better navigation in Grafana dashboards

The first step was making dashboards easier to navigate and consume the data, especially when they grow in size and complexity.

Examples of different navigation tools in dynamic dashboards in Grafana 12

In addition to rows, we are now introducing tabs, allowing you to segment dashboards by context, user group, or use case—without needing to split metrics across multiple dashboards. Tabs work seamlessly with rows, and even support nested layouts, allowing you to organize data in ways that match your team’s workflows.

To complement this, we are also introducing the dashboard outline—a tree-view navigation pane that gives you a quick structural overview of the dashboard and allows you to jump between sections faster. For users dealing with dashboards containing hundreds of panels, this is a game-changer, putting an end to endless scrolling and hunting for a specific metric.

To help hone in on data that you want, we brought in conditional rendering with Grafana 12. Now panels or even entire rows can be shown or hidden based on variable selections or whether the panel has data to show. This reduces clutter and helps your team zero in on what matters most—improving both performance and overall user experience.

Powerful, flexible panel editing 

Better data consumption has to be paired with a better editing experience. Dynamic Dashboards in Grafana 12 introduces the auto-grid option, a flexible panel layout that adapts to varying screen sizes and dynamic content. Creators can now define the max number of columns or max height of panels, making dashboard layouts more responsive and maintainable.

Examples of editing tools in dynamic dashboards in Grafana 12

We also reimagined the way users can edit and manage dashboard elements. The context-aware side pane surfaces the most relevant options based on what’s selected—whether it’s a tab, row, or panel—enabling quicker edits without the need to enter full edit mode. 

Grouping panels into tabs or rows allows you to better organize your data into more meaningful sections.

Grafana dashboards schema: a reliable, future-proof model

Scenes and the new dashboards schema provide us with the freedom to imagine new tools and experiences that will help make building dashboards even faster and improve collaboration across teams. Now, let’s take a deeper look into the new schema that enables this experience in Grafana 12.

Chances are you’re already familiar with the current JSON schema Grafana uses to represent dashboards. For the past decade, we’ve relied on the same structure, evolving it as needed to support new features as they were rolled out.

And if you’ve ever tried managing dashboards as code using this old schema, you know the pain that can come with the current setup: 

  • Noisy diffs: Even the smallest UI tweak can trigger massive JSON changes, many of which aren’t directly related to the actual edit.
  • Migration headaches: Moving dashboards between instances is tough, mainly due to tight coupling with data sources.
  • Blurry boundaries: There’s a lack of clear separation between panel-specific settings and overall dashboard configuration.
Gif of old schema in Grafana
In the old schema version, swapping two panels leads to 39 changes in the JSON.
Gif of new schema in Grafana 12
In the new schema (bottom) introduced in Grafana 12, there are only nine, and they are smaller, one-line changes.

We’re addressing these issues with a new dashboard schema built on top of the App Platform and inspired by Kubernetes’ CRD (Custom Resource Definition) model.

Here’s what’s changing in the new schema:

  • Structural unification: The new schema is built around a common pattern used in a Kubernetes resources manifest. All significant parts of the schema are expressed through kind & spec pattern. This convention makes it easy to quickly understand what part of the configuration you are currently looking at or working on. It also addresses the problem of plenty of properties, like the time settings, being structured non-intuitively in the existing dashboard schema.
  • Panels structure: We have also thought of the structure of individual panels. Common panel options are no longer mixed with visualization configuration, relieving users from one of the biggest issues with current dashboard schema. The visualization options, such as layout coordinates, are expressed through a kind specific to the visualization panel you use.
  • Data definition and dashboard portability: Queries, transformations, and query options are expressed through well defined kinds. We are making Grafana dashboards more portable. You don’t have to specify a UID for a data source that should execute the query. All you need to provide is the data source type, and Grafana will figure out which data source to use based on that.

These changes aren’t just about structure—they provide a significantly better experience for managing dashboards as code. More importantly, they lay the foundation for building truly dynamic, composable dashboards that scale with your systems.

Get started with dynamic dashboards in Grafana 12

To try out dynamic dashboards in Grafana 12, enable the dashboardNewLayouts feature toggle. If you are using Grafana Cloud, please reach out to your sales rep to enable dynamic dashboards in your instance. You can also learn more by also diving into or dynamic dashboards documentation.

Note: Since this is still an experimental feature, we strongly recommend that you do not use it in production environments—at least, not yet.

Once enabled in Grafana 12, any dashboard you save will be automatically converted to the new v2 schema. And right now, there’s no way to roll back that change on the backend.

While the frontend is fully compatible with both v1 and v2 dashboards, this shift can have a significant impact on your automation workflows, especially if you rely on schema-specific tooling or dashboard-as-code pipelines.

Instead, try it out safely in a development environment. Explore the new structure, experiment with your setup, and let us know what you think. We’re actively gathering feedback in the #observability-as-code channel in our Grafana Labs Community Slack and would love to hear your thoughts.

For a full list of Grafana 12 features that were revealed at GrafanaCON 2025, check out our Grafana 12 release blog and our GrafanaCON announcements blog post.

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!