This is documentation for the next version of Grafana documentation. For the latest stable release, go to the latest version.
Manage resources with gcx
Migrate resources between environments
Grafana resources can be migrated from one environment to another, for example from a development to production environment.
You need to configure one context per environment. In this example scenario, use dev for the development environment and prod for production.
- Make changes to dashboards and other resources using the Grafana UI in your development instance.
- Pull those resources from the development environment to your local machine:
gcx resources pull --context dev # Add `-o yaml` export resources as YAML - Push the resources to production:
gcx resources push --context prod
Note
Resources are pulled and pushed from the
./resourcesdirectory by default. Configure this path with the--path/-pflags.
./resources directory by default.
Configure this path with the --path/-p flags.Name pulled files by title
By default, gcx resources pull names each file using the resource’s
metadata.name (usually its UID). Use --filename-by=title for readable filenames:
gcx resources pull dashboards --filename-by=title --path ./dashboard-backupFor example, a dashboard titled Ventas Overview becomes ventas-overview.json
inside its usual resource-type directory. Resources without a usable title fall
back to metadata.name. The resource contents retain their original identity,
so push, validate, and serve use these files normally.
Title mode resolves filename collisions with both the current pull and existing destination files, preserving files that belong to other resources. See the file naming rules for the full algorithm.
Pull does not remove old files. Title-mode pull warns on stderr when it finds
another file for the same resource at a different path, such as after a rename or
switching naming modes. Reading resources also warns when skipping duplicate
identities. Pull into a clean directory or remove stale files (for example, with
git rm) before pushing.
Back up and restore resources
Follow this workflow to back up all Grafana resources from one instance and later restore them. This can be useful to replicate a configuration or perform disaster recovery.
- Ensure the current context points to the Grafana instance to backup/restore:
gcx config use-context YOUR_CONTEXT # for example "prod" - Pull all resources from your target environment:
gcx resources pull --path ./backup-prod # Add `-o yaml` to export resources as YAML - Save the exported resources to version control or cloud storage.
- Push the resources to restore them:
gcx resources push --path ./backup-prod


