Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/grafana-tools/grafana-backup
[ON HOLD] CLI tool for backup/restore Grafana dashboards and datasources.
https://github.com/grafana-tools/grafana-backup
backup cli grafana http tools
Last synced: 3 months ago
JSON representation
[ON HOLD] CLI tool for backup/restore Grafana dashboards and datasources.
- Host: GitHub
- URL: https://github.com/grafana-tools/grafana-backup
- Owner: grafana-tools
- License: gpl-3.0
- Created: 2016-11-17T22:57:45.000Z (about 8 years ago)
- Default Branch: master
- Last Pushed: 2017-12-14T17:59:14.000Z (about 7 years ago)
- Last Synced: 2024-10-03T05:06:32.751Z (4 months ago)
- Topics: backup, cli, grafana, http, tools
- Language: Go
- Homepage:
- Size: 59.6 KB
- Stars: 28
- Watchers: 2
- Forks: 3
- Open Issues: 7
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Backup tool for Gafana
CLI for the simple backup/restore operations of [Grafana](https://grafana.com/) dashboards and datasources.
It uses [Grafana client SDK](https://github.com/grafana-tools/sdk).**Work in progress. Current state: it may works, may not. Depends on build. Don't use it yet!**
## Examples
Back up all dashboards and any datasources which they require. Backups will be saved as separate files in
the directory $CWD/backup```$ grafana-backup -url http://127.1:3000 -key xxxxxxxx backup```
Show all dashboards which have the flags "tagone" and "tagtwo" applied and any datasources they use.
```
$ grafana-backup -tag tagone,tagtwo ls
<31> "Test Dashboard 1" [tagone tagtwo]
<10> "prometheus-test" (prometheus) http://prometheus-test.example.com:9090
<8> "Promt2Local" (prometheus) http://prometheus-poc.example.com:9090
```Show the dashboard titled "Test Dashboard 3" and the datasources it uses.
```
$ grafana-backup -title 'Test Dashboard 3' ls
<33> "Test Dashboard 3" []
<10> "prometheus-test" (prometheus) http://prometheus-test.example.com:9090
<8> "Promt2Local" (prometheus) http://prometheus-poc.example.com:9090
```Back up all dashboards which have the flags "tag1" and "tag2" applied and any datasources they use.
```
$ grafana-backup -url http://127.1:3000 -key xxxxxxxx -tag tag1,tag2 backup
```
Back up a dashboard called "sample"```
$ grafana-backup -url http://127.1:3000 -key xxxxxxxx -tag tag1,tag2 -title sample backup
```
Back up all dashboards, datasources and users```
$ grafana-backup -url http://127.1:3000 -key xxxxxxxx -apply-for all
```Show information about local backup files
```
$ grafana-backup ls-files
test-dashboard-1.db.json: board id:31 "Test Dashboard 1" [tagone tagtwo]
test-dashboard-2.db.json: board id:32 "Test Dashboard 2"
test-dashboard-3.db.json: board id:33 "Test Dashboard 3"```
Restore all local objects which have the tag "tag1" applied to them.
```
$ grafana-backup -url http://127.1:3000 -key xxxxxxxx -tag tag1 restore
```View the usage
```
$ grafana-backup
Backup tool for Grafana.
Copyright (C) 2016-2017 Alexander I.GrafovThis program comes with ABSOLUTELY NO WARRANTY.
This is free software, and you are welcome to redistribute it
under conditions of GNU GPL license v3.Usage: $ grafana-backup [flags]
Available commands are: backup, restore, ls, ls-files, info, config, help.
Call 'grafana-backup help ' for details about the command.-apply-for string
apply operation only for some kind of objects, available values are "auto", "all", "dashboards", "datasources", "users" (default "auto")
-dir string
A directory to write backup files to or read them from. (default "backup")
-force
force overwrite of existing objects
-key string
API key of Grafana server
-starred
only match starred dashboards
-tag string
dashboard should match all these tags
-timeout duration
read flagTimeout for interacting with Grafana in seconds (default 6m0s)
-title string
dashboard title should match name
-url string
URL of Grafana server
-verbose
verbose output
```
## List of proposed commands, flags and argsDraft and it is subject for changes.
# List dashboards.
$ grafana-backup -key=xxxx -url=x.y.z -title=match-name -tag=x,y,z ls# List datasources.
$ grafana-backup -key=xxxx -url=x.y.z ls-ds# List users.
$ grafana-backup -key=xxxx -url=x.y.z ls-users# Do backup for matching dashboards.
$ grafana-backup -key=xxxx -url=x.y.z -title=match-name -tag=x,y,z backup path/to# Restore objects on a server at url only for boards match tags.
$ grafana-backup -key=xxxx -url=x.y.z -tag x,y,z restore path/from# List local backups for tags and file mask
$ grafana-backup -tag x,y,z -file "backup/*/*" ls-files# Save all flags to config var.
$ grafana-backup -key=xxxx -url=x.y.z config-set confname# Get flag values for config variable.
$ grafana-backup config-get confname# Flag applied for backup/restore
-objects=auto,dashboards,datasources,users,all