Skip to main content

A cli utility that uses Grafana's HTTP API to easily save and restore dashboards.

Project description

grafana-dashboard-manager

CodeQL

A simple CLI utility for importing and exporting dashboards as JSON using the Grafana HTTP API.

This can be used for:

  • Backing up your dashboards that already exist within your Grafana instance, e.g. if you are migrating from the internal SQLite database to MySQL.
  • Updating dashboard files for your Infrastructure-as-Code for use with Grafana dashboard provisioning.
  • Making tweaks to dashboard JSON files directly and updating Grafana with one command.

Features

  • Mirrors the folder structure between a local set of dashboards and Grafana, creating folders where necessary.
  • Ensures links to dashboards folders in a dashlist Panel are consistent with the Folder UIDs - useful for deploying one set of dashboards across multiple Grafana instances, for instance across environments.

Usage

For detailed command help, see the full help text with the --help option.

Credentials

It is important to note that the admin login username and password are required, and its selected organization must be correct, if you are accessing the API using --username and --password. Alternatively, a provided API Key must have admin permissions if you are accessing the API using --token.

Docker

A Dockerfile is provided. To build and run:

docker build -t grafana-dashboard-manager:latest .
docker run grafana-dashboard-manager --help

From PyPI

Install via pip:

pip install grafana-dashboard-manager

From source

Install dependencies and run with Poetry

cd /path/to/grafana-dashboard-manager
poetry install
poetry run python ./grafana_dashboard_manager --help

Workflow

The intended workflow is:

  1. Download dashboards and to a local directory or version control system for backup and change control.
  2. Replicate across multiple Grafana installs or restore a previous install by uploading the saved dashboards.

Usage Examples

These examples use docker run commands, but the commands are the same regardless of run method.

Download dashboards using the Grafana admin user:

docker run grafana-dashboard-manager \
    download \
    --scheme https \
    --host my.grafana.example.com \
    --username $USERNAME --password $PASSWORD \
    --destination /path/to/dashboards/

Download dashboards using a Grafana admin API Key:

docker run grafana-dashboard-manager \
    download \
    --scheme https \
    --host my.grafana.example.com \
    --token $API_KEY \
    --destination /path/to/dashboards/

Upload dashboards using the Grafana admin user, to a local instance for testing

docker run grafana-dashboard-manager \
    upload \
    --scheme http \
    --port 3000 \
    --host localhost \
    --username $USERNAME --password $PASSWORD \
    --source /path/to/dashboards/

Upload dashboards using a Grafana admin key without any user prompts:

docker run grafana-dashboard-manager \
    upload \
    --scheme http \
    --port 3000 \
    --host localhost \
    --token $API_KEY \
    --source /path/to/dashboards/

 Notes

  • The scheme is https and port is 443 by default. If your Grafana is not hosted with https on 443, the scheme and port needs to be specified using the --scheme and --port options respectively.
  • The version of the dashboard is removed of the json files in order to allow overwriting and creation of dashboards as new.
  • URL encoding of strings is handled by httpx and so characters such as / in folder names is supported.

Limitations

  • Does not support the experimental nested folders in Grafana. Only one level of folders is supported.
  • Does not support multi-organization deployments.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

grafana_dashboard_manager-0.2.0.73521367301.tar.gz (14.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

File details

Details for the file grafana_dashboard_manager-0.2.0.73521367301.tar.gz.

File metadata

File hashes

Hashes for grafana_dashboard_manager-0.2.0.73521367301.tar.gz
Algorithm Hash digest
SHA256 fa1773bce486eb341264f9e12e545c60ba72d5a642306f5ad7bffdbae630f337
MD5 0a8ca293955d36ddd21211979e4f0d96
BLAKE2b-256 9e8ac1ff5efd26b03b91ee9b32de7fdba866a99f54ea0017423639db08c1fbd9

See more details on using hashes here.

File details

Details for the file grafana_dashboard_manager-0.2.0.73521367301-py3-none-any.whl.

File metadata

File hashes

Hashes for grafana_dashboard_manager-0.2.0.73521367301-py3-none-any.whl
Algorithm Hash digest
SHA256 43e491921f96ecd183e33c6aaaa2c7814e860a16bd9a5aa7c603349e4a35149b
MD5 db991967dcd8f40572055eb698a7d2ba
BLAKE2b-256 d70126728685549e77ac18930b6a42c82c87e6d19a53a6065c9661ce2901bf55

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page