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

Introduction

A simple CLI utility for importing or exporting dashboard JSON definitions 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 IDs - useful for deploying one set of dashboards across multiple Grafana instances, for instance across environments.

Workflow

The intended workflow is:

  1. Create a dashboard and save it in the desired folder from within the Grafana web GUI
  2. Use grafana-dashboard-manager to extract the new dashboards and save them to a local directory or version control system.
  3. Dashboards can be created or updated from the local store and uploaded back into Grafana.

Installation

Install via pip:

pip install grafana-dashboard-manager

Install from source - requires Poetry on your system:

cd /path/to/grafana-dashboard-manager
poetry install

Usage

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, the API Key must have admin permissions if you are accessing the API using --token.

For more help, see the full help text with poetry run grafana-dashboard-manager --help.

Download dashboards from web to solution-data using the Grafana admin user

poetry run grafana-dashboard-manager \
    --host https://my.grafana.com \
    --username admin_username --password admin_password \
    download all \
    --destination-dir /path/to/dashboards/

Download dashboards from web to solution-data using a Grafana admin API Key

poetry run grafana-dashboard-manager \
    --host https://my.grafana.com \
    --token admin_api_key \
    download all \
    --destination-dir /path/to/dashboards/

Upload dashboards from solution-data to web using the Grafana admin user

poetry run grafana-dashboard-manager \
    --host https://my.grafana.com \
    --username admin_username --password admin_password \
    upload all \
    --source-dir /path/to/dashboards/

Upload dashboards from solution-data to web using a Grafana admin API Key

poetry run grafana-dashboard-manager \
    --host https://my.grafana.com \
    --token admin_api_key \
    upload all \
    --source-dir /path/to/dashboards/

Please note: if your Grafana is not hosted on port 80/443 as indicated by the protocol prefix, the port needs to be specified as part of the --host argument. For example, a locally hosted instance on port 3000: --host http://localhost:3000.

Limitations

  • The home dashboard new deployment needs the default home dashboard to be manually set in the web UI, as the API to set the organisation default dashboard seems to be broken, at least on v8.2.3.
  • Currently expects a hardcoded home.json dashboard to set as the home.
  • Does not handle upload of dashboards more deeply nested than Grafana supports.
  • 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.1.17.33573949861.tar.gz (10.5 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.1.17.33573949861.tar.gz.

File metadata

File hashes

Hashes for grafana_dashboard_manager-0.1.17.33573949861.tar.gz
Algorithm Hash digest
SHA256 860ed0d1147f4f7e4d676887007e3fbb798939fb5a80b435bb12b542ad44dc66
MD5 187e281344695551e4a919baf8857e8a
BLAKE2b-256 1071ee2bc4b41eabc975fe0efda8bcea8db11dbf1f08d5f3f3a50706b20ea5ad

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for grafana_dashboard_manager-0.1.17.33573949861-py3-none-any.whl
Algorithm Hash digest
SHA256 b7aff9cda81747d0b8bc845f95b00e593aad3ad3bc643e3168cd21b749853217
MD5 4a54170031e52133bf6ecbb28d0fc238
BLAKE2b-256 792d33c3ddb971e54bb28cf138e896c1b285bb665651f673aa4c953851a780bb

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