← Progetti

Grafana dashboards as code

Dati ·

Le dashboard Grafana versionate in git e sincronizzate via API: anteprima delle differenze, applicazione idempotente, recupero di quelle esistenti.

  • Python
  • Grafana API
  • Docker
  • pytest

Il problema

Le dashboard modificate a mano dall’interfaccia divergono: nessuna revisione, nessuna storia, nessun modo di sapere chi ha cambiato un pannello.

Cosa fa

Una piccola riga di comando che tratta una cartella di file JSON in git come fonte di verità, sul modello di terraform plan e apply:

  • diff mostra cosa cambierebbe, senza toccare nulla, e in CI può far fallire una pipeline se le dashboard non corrispondono al repo;
  • apply porta il server allo stato dei file, e rilanciato non cambia niente;
  • pull riporta in git le dashboard che esistono già.

Nasce da uno strumento che uso per tenere sotto controllo di versione le dashboard di monitoraggio di una flotta di dispositivi.