grafana-wtf – grep durch alle Grafana-Entitäten im Geiste von git-wtf.
Aufmerksamkeit!
Dieses Programm kann Ihre Grafana-Instanz und die zugrunde liegende Datenbankmaschinerie erheblich belasten. Vorsichtig behandeln!
Durchsuchen Sie Grafana (Dashboards und Datenquellen) nach der Zeichenfolge „Weatherbase“.
grafana-wtf findet die Wetterbasis
Zeigen Sie die 50 letzten Änderungen in allen Dashboards an.
grafana-wtf log --number=50
Erkunden Sie Dashboards und Datenquellen detaillierter.
grafana-wtf erkunden Dashboards grafana-wtf erkundet Datenquellen
Entdecken Sie Plugins.
Liste der Grafana-WTF-Plugins Status der Grafana-WTF-Plugins
Mit Docker ausführen:
# Greifen Sie ohne Authentifizierung auf die Grafana-Instanz auf localhost zu. Docker run --rm -it --env GRAFANA_URL="http://host.docker.internal:3000" ghcr.io/grafana-toolbox/grafana-wtf grafana-wtf-Info # Greifen Sie mit Authentifizierung auf die Grafana-Instanz zu. Docker run --rm -it --env GRAFANA_URL="https://grafana.example.org/grafana" --env GRAFANA_TOKEN="eyJrIjoiWHg...dGJpZCI6MX0=" ghcr.io/grafana-toolbox/grafana-wtf grafana-wtf-Info
grafana-wtf find
grafana-wtf log
grafana-wtf
pip install grafana-wtf
Bitte führen Sie diese Schritte aus, um einen API-Schlüssel mit Ihrer Grafana-Instanz zu erstellen:
https://daq.example.org/grafana/org/apikeys
.curl -H "Authorization: Bearer eyJrIjoiWHg...dGJpZCI6MX0=" ...
bitte das Bearer-Token. Dies ist Ihr Grafana-API-Schlüssel. Um zu konfigurieren, mit welcher Grafana-Instanz eine Verbindung hergestellt werden soll und wie die Authentifizierung erfolgen soll, verwenden Sie die Befehlszeilenoptionen --grafana-url
und --grafana-token
.
Alternativ können Sie vor dem Ausführen grafana-wtf
die URL und das Zugriffstoken Ihrer Grafana-Instanz mithilfe von Umgebungsvariablen definieren:
export GRAFANA_URL=https://daq.example.org/grafana/ export GRAFANA_TOKEN=eyJrIjoiWHg...dGJpZCI6MX0=
Um nicht vertrauenswürdige SSL-Zertifikate zu akzeptieren, hängen Sie die Abfragezeichenfolge ?verify=no
an die GRAFANA_URL
an:
exportieren Sie GRAFANA_URL=https://daq.example.org/grafana/?verify=no
grafana-wtf
speichert HTTP-Antworten standardmäßig 60 Minuten lang im Cache, um Ressourcen zu sparen, indem nicht jeder Server einzeln angesprochen wird. Sie können diese Einstellung mithilfe der Option --cache-ttl
oder der Umgebungsvariablen CACHE_TTL
konfigurieren.
Wenn Sie das Programm mit der Option --drop-cache
aufrufen, löscht es seinen Cache im Voraus.
# Zeigen Sie eine Reihe von Metainformationen und Statistiken an. grafana-wtf info --format=yaml # Grafana-Version anzeigen. grafana-wtf info --format=json | jq -r '.grafana.version'
Wie finde ich ungenutzte Datenquellen?
# Alle Datenquellen und die sie nutzenden Dashboards sowie ungenutzte Datenquellen anzeigen. grafana-wtf Datenquellen erkunden --format=yaml # Namen nicht verwendeter Datenquellen als flache Liste anzeigen. grafana-wtf Datenquellen erkunden --format=json | jq -r '.unused[].datasource.name'
Wie finde ich Dashboards, die nicht vorhandene Datenquellen nutzen?
# Zeigen Sie einige Details aller Dashboards an, einschließlich der Namen fehlender Datenquellen. grafana-wtf Dashboards erkunden --format=yaml # Nur Dashboards mit fehlenden Datenquellen zusammen mit ihren Namen anzeigen. grafana-wtf Dashboards erkunden --format=json | jq '.[] | select(.datasources_missing) | .dashboard + {ds_missing: .datasources_missing[] | [.Name]}'
Wie finde ich Dashboards mit bestimmten Datenquellen?
# Alle Dashboards anzeigen, die eine bestimmte Datenquelle verwenden, gefiltert nach Datenquellennamen. grafana-wtf Dashboards erkunden --format=json | jq '.[] | select(.datasources | .[].type=="<datasource_name>")' # Alle Dashboards anzeigen, die Datenquellen eines bestimmten Typs verwenden. Hier: InfluxDB. grafana-wtf Dashboards erkunden --format=json | jq '.[] | select(.datasources | .[].type=="influxdb")'
Wie liste ich alle in allen Dashboards verwendeten Abfragen auf?
grafana-wtf Explore Dashboards --data-details --queries-only --format=json | jq '.[].details | Werte[] | .[] | .expr,.jql,.query,.rawSql | select( . != null und . != "" )'
Suchen Sie in allen Dashboards und Datenquellen nach der Zeichenfolge weatherbase
:
grafana-wtf findet die Wetterbasis
Ersetzen Sie alle Vorkommen von ldi_v2
durch ldi_v3
im Dashboard mit der UID _JJ22OZZk
:
grafana-wtf --select-dashboard=_JJ22OZZk ersetzt ldi_v2 ldi_v3
Um eine Vorschau der Änderungen anzuzeigen, sollten Sie zuvor die Option --dry-run
verwenden:
grafana-wtf --select-dashboard=_JJ22OZZk ersetzen ldi_v2 ldi_v3 --dry-run
Achten Sie auf aktuelle Bearbeitungsaktivitäten in Dashboards?
# Zeigt die 50 letzten Änderungen in allen Dashboards an. grafana-wtf log --number=50
Um weitere Befehlszeilenparameter und ihre Argumente zu entdecken, rufen Sie bitte grafana-wtf --help
auf und werfen Sie einen Blick auf grafana-wtf-Beispiele.
Git-Klon https://github.com/grafana-toolbox/grafana-wtf cd grafana-wtf # Führen Sie alle Tests aus. Test machen # Ausgewählte Tests ausführen. pytest --keepalive -vvv -k test_find_textual