This is documentation for the next version of Grafana documentation. For the latest stable release, go to the latest version.

Grafana Cloud Enterprise Open source

Manage dashboards as code with gcx

With this workflow, you can define and manage dashboards as code, saving them to a version control system like Git. This is useful for teams that want to maintain a history of changes, collaborate on dashboard design, and ensure consistency across environments.

Before you begin

In order to use the gcx dev serve functionality, you need to enable a feature toggle in your configuration file:

ini
[feature_toggles]
kubernetesDashboards = true

Refer to Configure Grafana to learn more about enabling feature toggles.

Although the local preview proxy supports service account token, Basic, and mTLS contexts, use a service account token instead of OAuth for gcx dev serve. OAuth is rejected before startup until refresh-token rotation can be persisted safely by the long-running server.

Workflow

To manage dashboards as code with gcx follow these steps:

  1. Use a dashboard generation script (for example, with the Foundation SDK). You can find an example implementation in the Grafana as code hands-on lab repository.
  2. Serve and preview the output of the dashboard generator locally:
    shell
    gcx config use-context YOUR_CONTEXT  # for example "dev"
    gcx dev serve --script 'go run scripts/generate-dashboard.go' --watch './scripts'
  3. When the output looks correct, generate dashboard manifest files:
    shell
    go run scripts/generate-dashboard.go --generate-resource-manifests --output './resources'
  4. Push the generated resources to your Grafana instance:
    shell
    gcx config use-context YOUR_CONTEXT  # for example "dev"
    gcx resources push -p ./resources/