Jenkins + Minio + Prometheus + Grafana v1
This commit is contained in:
Executable
+27
@@ -0,0 +1,27 @@
|
||||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
|
||||
GRAFANA_URL=http://localhost:3000
|
||||
GRAFANA_USER=admin
|
||||
GRAFANA_PASS=holamundo
|
||||
BACKUP_DIR=/opt/server/backups/grafana_dashboards
|
||||
KEEP=4
|
||||
|
||||
mkdir -p "$BACKUP_DIR"
|
||||
|
||||
STAMP=$(date +%Y%m%d)
|
||||
TMP_DIR=$(mktemp -d)
|
||||
trap 'rm -rf "$TMP_DIR"' EXIT
|
||||
|
||||
curl -sf -u "$GRAFANA_USER:$GRAFANA_PASS" "$GRAFANA_URL/api/search?type=dash-db" \
|
||||
| jq -r '.[].uid' \
|
||||
| while read -r uid; do
|
||||
dashboard_json=$(curl -sf -u "$GRAFANA_USER:$GRAFANA_PASS" "$GRAFANA_URL/api/dashboards/uid/$uid")
|
||||
title=$(jq -r '.dashboard.title' <<< "$dashboard_json")
|
||||
safe_title=$(echo "$title" | tr -c 'A-Za-z0-9' '_' | sed 's/_\+/_/g; s/^_//; s/_$//')
|
||||
echo "$dashboard_json" > "$TMP_DIR/${safe_title}__${uid}.json"
|
||||
done
|
||||
|
||||
tar czf "$BACKUP_DIR/grafana_dashboards_$STAMP.tar.gz" -C "$TMP_DIR" .
|
||||
|
||||
ls -1t "$BACKUP_DIR"/grafana_dashboards_*.tar.gz | tail -n +$((KEEP + 1)) | xargs -r rm --
|
||||
Reference in New Issue
Block a user