# Tableaux de bord Grafana #### Tips & tricks - présenté en juillet 2022 à l'équipe Monitoring --- # Base du tableau de bord<!-- .element: style="font-size: smaller" --> - from scratch (à partir de rien) - clic clic - à partir d'un tableau de bord existant. - Copie puis édition --- # Première étapes<!-- .element: style="font-size: smaller" --> - Donner un nom - Renseigner des variables - `$datasource` - `$environment` - ... - Ajouter des tags - Ajouter un *panel* texte pour indiquer que c'est en cours de rédaction - Sauvegarder - Exporter au format JSON --- # Modification d'un TdB existant<!-- .element: style="font-size: smaller" --> - ajouter (temporairement) un champ texte - indiquer que le tableau de bord est en cours de modification - ce champ texte montre qu'on travaille bien au bon endroit - il indique au client que des modifs sont en cours - Retirer le champ avec un éditeur de texte - Le redéploiement effacera le champ texte --- # Sauvegarder souvent<!-- .element: style="font-size: smaller" --> - Sauvegarder à chaque modification - Exporter à chaque modification significative --- # Variable datasource<!-- .element: style="font-size: smaller" --> - cf un TdB (exemple : FE - RDS / ucc1) - utiliser `on time range change` (N/A pour la datasource) --- # Variable environment<!-- .element: style="font-size: smaller" --> - cf un TdB (exemple : FE - RDS / ucc1) - `label_values(<une métrique utilisée>, environment)` - utiliser la datasource `$datasource` - utiliser `on time range change` --- # Variables suivantes<!-- .element: style="font-size: smaller" --> - cf un TdB (exemple : FE - RDS / ucc1) - toujours indiquer les variables précédentes - `label_values(<une métrique utilisée>{environment="$environment"}, instance)` - utiliser la datasource `$datasource` - utiliser `on time range change` (sauf si on sait ce qu'on fait) --- # Variables intermédiaires (cachées)<!-- .element: style="font-size: smaller" --> - Au lieu de recording rules on peut utiliser des variables cachées - Exemple : TdB FE - ELB (ucc2) --- # Variables inutilisées<!-- .element: style="font-size: smaller" --> - Vérifier dans les variables qu'il n'y a pas de variables inutilisées --- # Panels<!-- .element: style="font-size: smaller" --> - ne pas oublier de modifier la datasource pour les métriques - mettre un titre - ne pas oublier d'indiquer l'unité --- # Panels et rows<!-- .element: style="font-size: smaller" --> - Regrouper les panels de la même catégorie dans des rows - Cela permet à l'utilisateur de replier ceux du début s'il n'en veut pas --- # Dupliquer les panels similaires<!-- .element: style="font-size: smaller" --> - Dupliquer les panels similaires pour gagner du temps - Il suffit en général de changer l'expression - Il faut avoir un panel "définitif" avant de le copier (pour éviter de faire 2 fois les mêmes corrections) --- # Recording rules<!-- .element: style="font-size: smaller" --> - On peut utiliser des recording rules pour faciliter les calculs - Pour un nouveau tableau de bord, il est déconseillé d'utiliser des recording rules existantes (cf la mésaventure de l'équipe Front y'a 1 ou 2 ans) --- # Sauvegarde et export dans git<!-- .element: style="font-size: smaller" --> - <span>L'export d'un TdB est celui de la dernière sauvegarde, pas celui en cours !</span><!-- .element: style="font-size: smaller" --> - <span>Lorsque le fichier est sauvegardé (json), faire un `vimdiff` entre l'ancien et le nouveau</span><!-- .element: style="font-size: smaller" --> - <span>cela évite de voir le diff dans git et de devoir corriger après</span><!-- .element: style="font-size: smaller" --> - <span>cela permet de corriger manuellement des modifications intempestives (clic au mauvais endroit)</span><!-- .element: style="font-size: smaller" --> - <span>cela permet de ne pas avoir une inflation de la révision</span><!-- .element: style="font-size: smaller" --> - <span>on peut contrôler qu'il n'y a pas de modification d'UID ou de titre</span><!-- .element: style="font-size: smaller" --> - <span>on peut changeret indiquer `"editable": false`</span><!-- .element: style="font-size: smaller" --> --- # Modifications de masse<!-- .element: style="font-size: smaller" --> - Exporter le TdB - Faire les modifications de masse (sed, replace all dans un éditeur de texte...) - Copier/coller ou importer le TdB (changer le titre+uid si import) --- # "Stacker" les courbes<!-- .element: style="font-size: smaller" --> - utile pour des pourcentages (et des portions comme des portions de mémoire) - `Stack series` juste avant la gestion des axes - Exemple : TdB `Telegraf System Metrics Linux` -> panel `Memory` --- # Index négatif<!-- .element: style="font-size: smaller" --> - utile pour les courbes in/out (réseau, disque, I/O...) - Add Field Override - Field returned by query -> `B` - Add override property - Graph Styles -> Transform - Negative Y - Exemple : FE - VPC (ucc1) --- # Déjà fini snif :sob: --- # Mais non, y'a du boulot !<!-- .element: style="font-size: smaller" --> - [PF-454 : Documentation sur la création des dashboards](https://jira.corp.cloudwatt.com/browse/PF-454) - outillage de vérifications (syntaxe, présence de tags, absence de datasources "en dur"...) <style type="text/css"> p { font-size: smaller; } .reveal ul ul li { font-size: smaller; } .reveal section { text-align: left; } } .reveal h3 { color: orange; text-align: center; border-bottom: 1px solid orange; } .reveal h1 { color: orange; text-align: center; border-bottom: 1px solid orange; margin-bottom: 0.4em; } .reveal code { color: aquamarine; font-size: smaller; } </style>
{"type":"slide","slideOptions":{"transition":"slide","center":true}}