grafana-wtf - parcourt toutes les entités Grafana dans l'esprit de git-wtf.
Attention!
Ce programme peut imposer une charge importante à votre instance Grafana et à la machinerie de base de données sous-jacente. A manipuler avec précaution !
Recherchez dans Grafana (tableaux de bord et sources de données) la chaîne "weatherbase".
grafana-wtf trouver la base météo
Affichez les 50 modifications les plus récentes sur tous les tableaux de bord.
journal grafana-wtf --number=50
Explorez les tableaux de bord et les sources de données plus en détail.
grafana-wtf explorer les tableaux de bord grafana-wtf explorer les sources de données
Explorez les plugins.
liste des plugins grafana-wtf statut des plugins grafana-wtf
Exécuter avec Docker :
# Accédez à l'instance Grafana sur localhost, sans authentification. docker run --rm -it --env GRAFANA_URL="http://host.docker.internal:3000" ghcr.io/grafana-toolbox/grafana-wtf infos grafana-wtf # Accédez à l'instance Grafana avec authentification. docker run --rm -it --env GRAFANA_URL="https://grafana.example.org/grafana" --env GRAFANA_TOKEN="eyJrIjoiWHg...dGJpZCI6MX0=" ghcr.io/grafana-toolbox/grafana-wtf infos grafana-wtf
grafana-wtf find
grafana-wtf log
grafana-wtf
pip installer grafana-wtf
Veuillez suivre ces étapes pour créer une clé API avec votre instance Grafana :
https://daq.example.org/grafana/org/apikeys
.curl -H "Authorization: Bearer eyJrIjoiWHg...dGJpZCI6MX0=" ...
, veuillez prendre note du jeton Bearer. Ceci est votre clé API Grafana. Pour configurer à quelle instance Grafana vous connecter et comment vous authentifier, utilisez les options de ligne de commande --grafana-url
et --grafana-token
.
Alternativement, avant d'exécuter grafana-wtf
, vous pouvez définir l'URL et le jeton d'accès de votre instance Grafana en utilisant des variables d'environnement :
exporter GRAFANA_URL=https://daq.example.org/grafana/ export GRAFANA_TOKEN=eyJrIjoiWHg...dGJpZCI6MX0=
Afin d'accepter les certificats SSL non fiables, ajoutez la chaîne de requête ?verify=no
à GRAFANA_URL
:
exporter GRAFANA_URL=https://daq.example.org/grafana/?verify=no
grafana-wtf
mettra en cache les réponses HTTP pendant 60 minutes par défaut, afin d'économiser les ressources, en n'atteignant pas le serveur sur chaque serveur. Vous pouvez configurer ce paramètre à l'aide de l'option --cache-ttl
ou de la variable d'environnement CACHE_TTL
.
Lors de l'appel du programme avec l'option --drop-cache
, il supprimera son cache dès le départ.
# Affichez un tas de méta-informations et de statistiques. infos grafana-wtf --format=yaml # Afficher la version Grafana. grafana-wtf info --format=json | jq -r '.grafana.version'
Comment retrouver les sources de données inutilisées ?
# Affichez toutes les sources de données et les tableaux de bord qui les utilisent, ainsi que les sources de données inutilisées. grafana-wtf explorer les sources de données --format=yaml # Afficher les noms des sources de données inutilisées sous forme de liste plate. grafana-wtf explorer les sources de données --format=json | jq -r '.unused[].datasource.name'
Comment trouver des tableaux de bord qui utilisent des sources de données inexistantes ?
# Afficher certains détails de tous les tableaux de bord, y compris les noms des sources de données manquantes. grafana-wtf explorer les tableaux de bord --format=yaml # Afficher uniquement les tableaux de bord pour lesquels il manque des sources de données, ainsi que leurs noms. grafana-wtf explorer les tableaux de bord --format=json | jq'.[] | sélectionner(.datasources_missing) | .dashboard + {ds_missing : .datasources_missing[] | [.nom]}'
Comment trouver des tableaux de bord à partir de sources de données spécifiques ?
# Afficher tous les tableaux de bord qui utilisent une source de données spécifique, filtrés par nom de source de données. grafana-wtf explorer les tableaux de bord --format=json | jq'.[] | select(.datasources | .[].type=="<datasource_name>")' # Affichez tous les tableaux de bord utilisant des sources de données d'un type spécifique. Ici : InfluxDB. grafana-wtf explorer les tableaux de bord --format=json | jq'.[] | select(.datasources | .[].type=="influxdb")'
Comment lister toutes les requêtes utilisées dans tous les tableaux de bord ?
grafana-wtf explorer les tableaux de bord --data-details --queries-only --format=json | jq '.[].détails | valeurs[] | .[] | .expr,.jql,.query,.rawSql | select( . != null et . != "" )'
Recherchez la weatherbase
de chaîne dans tous les tableaux de bord et sources de données :
grafana-wtf trouver la base météo
Remplacez toutes les occurrences de ldi_v2
par ldi_v3
dans le tableau de bord par l'UID _JJ22OZZk
:
grafana-wtf --select-dashboard=_JJ22OZZk remplacer ldi_v2 ldi_v3
Afin de prévisualiser les modifications, vous devez au préalable utiliser l'option --dry-run
:
grafana-wtf --select-dashboard=_JJ22OZZk remplacer ldi_v2 ldi_v3 --dry-run
Vous faites attention aux activités de modification récentes sur les tableaux de bord ?
# Affichez les 50 modifications les plus récentes sur tous les tableaux de bord. journal grafana-wtf --number=50
Pour découvrir plus de paramètres de ligne de commande et leurs arguments, veuillez appeler grafana-wtf --help
et jetez un œil aux exemples grafana-wtf.
clone git https://github.com/grafana-toolbox/grafana-wtf cd grafana-wtf # Exécutez tous les tests. faire un test # Exécutez les tests sélectionnés. pytest --keepalive -vvv -k test_find_textual