Files
oam/snippets/grafana.sh

35 lines
1.4 KiB
Bash

#!/usr/bin/env sh
# List dashboards
curl -sS 'http://grafana:3000/api/search' -H 'Authorization: Basic YWRtaW46YWRtaW4='
curl -sS 'https://g-0123456789.grafana-workspace.eu-west-1.amazonaws.com/api/dashboards/uid/abcdefghijklmn' \
-H 'Authorization: Bearer glsa_0123456789AbcdEfghIjklMnopQrstUv_0123abcd'
# Get dashboards' json definition
curl -sS 'https://g-0123456789.grafana-workspace.eu-west-1.amazonaws.com/api/dashboards/uid/abcdefghijklmn' \
-H 'Authorization: Bearer glsa_0123456789AbcdEfghIjklMnopQrstUv_0123abcd'
# Export all existing dashboards by ID
curl -sS 'http://grafana:3000/api/search' -H 'Authorization: Basic YWRtaW46YWRtaW4=' \
| jq -r '.[].uid' - \
| parallel " \
curl -sS 'http://grafana:3000/api/dashboards/uid/{}' -H 'Authorization: Basic YWRtaW46YWRtaW4=' \
> '{}.json' \
"
# Get the UID of all dashboards using specific data sources
curl -Ss 'https://g-0123456789.grafana-workspace.eu-west-1.amazonaws.com/api/search' \
-H 'Authorization: Bearer glsa_0123456789AbcdEfghIjklMnopQrstUv_0123abcd' \
| jq -r '.[].uid' \
| parallel " \
curl -Ss 'https://g-0123456789.grafana-workspace.eu-west-1.amazonaws.com/api/dashboards/uid/{}' \
-H 'Authorization: Bearer glsa_0123456789AbcdEfghIjklMnopQrstUv_0123abcd' \
" \
| jq -rs '
.[].dashboard
| select(
(.panels[]? | if .datasource|type == "string" then .datasource else .datasource?.uid end) == "abcdefghi"
).uid
' - \
| sort -u