Dashboard Business
Estimated time to read: 7 minutes
On va maintenant changer de Datasource pour aller taper directement dans une base de données.
Data Source
On va créer une nouvelle datasource via le menu Connections > Data sources
et choisir PostgreSQL
comme type de datasource.
Les informations de connexion sont les suivantes :
Information | Value |
---|---|
URL | postgres:5432 |
Database | jack |
User | john |
Password | viewer |
TLS/SSL Mode | disable |
Attention Ă tes doigts
Grafana ne fait aucun contrĂŽle sur les requĂȘtes qui sont envoyĂ©es sur la BDD. Un DROP SCHEMA default CASCADE;
est assez efficace pour devoir réinitialiser la BDD...
Une bonne pratique est donc d'avoir un compte en read-only pour Grafana pour accéder à la BDD.
Success
On peut maintenant commencer Ă construire notre dashboard (par exemple en cliquant sur building a dashboard).
Lumbercamp front end
Nous avons actuellement une application qui permet de visualiser les données de notre application. C'est woodstoredashboard.
Cette application stocke les données dans une base de données PostgreSQL. Les deux objets principaux sont les commandes dans la table wood_order et les stocks stock.
On va cette fois-ci faire un dashboard en utilisant cette source de données PostgreSQL. On va afficher les commandes.
Dans le menu Dashboards
, créer un nouveau dashboard pour cette partie.
Données statiques
Il est possible d'afficher des informations qui ne sont pas temporelles dans un dashboard, en utilisant par exemple le mode de visualisation Table.
âčïž Il n'est alors pas possible de sĂ©lectionner une plage de temps. Ou plutĂŽt ça ne sert Ă rien vu que l'information n'existe pas dans les donnĂ©es.
Success
Ajouter 2 visualizations dans le dashboard pour afficher le contenu des 2 tables de la BDD
Stock Status
On souhaite afficher la liste des essences de bois dans le stock.
Pour cela on va :
- créer une visualization de type Pie Chart.
- configurer la requĂȘte SQL pour faire la somme des quantitĂ©s de bois par essence depuis la table Stock
- modifier les options de la visualization pour avoir les pourcentages et les différents types affichés
Si la visualization est en erreur
Il y a plus de détails sur l'icÎne warning:
Spoiler la solution est lĂ
- On sélectionnera
- les values pour ne pas ĂȘtre en
Calculate
mais enAll values
- la lĂ©gende pour ĂȘtre sous la forme d'une table.
- Les labels Percent et/ou Value
- les values pour ne pas ĂȘtre en
Sauvegarder le dashboard et retourner Ă l'affiche de celui-ci via Back to dashboard
Order Total
On va faire la mĂȘme chose pour les commandes dans une autre visualization. On va afficher le total des commandes par essence de bois, cette fois-ci avec le pourcentage affichĂ© dans la lĂ©gende et la valeur affichĂ©e sur le graphique.
Le formulaire c'est bien mais les vrais pros utilisent le mode Code
En plus, il y a une fonction d'auto-complĂ©tion bien pratique pour les requĂȘtes SQL.
Spoiler la solution est lĂ
- On sélectionnera
- les values pour ne pas ĂȘtre en
Calculate
mais enAll values
- la lĂ©gende pour ĂȘtre sous la forme d'une table.
- Les labels Percent et/ou Value
- les values pour ne pas ĂȘtre en
Sauvegarder le dashboard et retourner au dashboard complet
Et si on utilisait la colonne Timestamp
Vous avez peut-ĂȘtre remarquĂ© que la table wood_order contient une colonne timestamp.
On va créer une nouvelle visualization pour avoir une vision de nos commandes à travers le temps.
Lors de l'utilisation de l'auto-complétion, vous devez voir la proposition de fonctions :
Plusieurs macro sont mises Ă disposition pour faciliter l'utilisation des dates.
MĂȘme si nos donnĂ©es ne sont pas au format time series mais que nous avons une information sur le temps, il est possible de faire des graphiques temporels.
Il faut un peu aider Grafana en lui indiquant que la colonne est un timestamp.
Et rajouter une clause where pour prendre en compte la plage de temps ou utiliser un filtre.
Success
- Créer une visualization de type Bar Chart qui montre le nombre de commandes par type d'essence d'arbre
- Configurer des thresholds Ă 25%, 50% et 75%
Spoiler la solution est lĂ
Standard options > Color scheme
:From thresholds (by value)
- Ajouter 3 thresholds
Threshold mode
:Percentage
On peut maintenant afficher des données sous la forme d'un histogramme et voir l'évolution des commandes / stock dans le temps en changeant la plage de temps d'affichage.
Encore plus fort : les Transformations
Afin de manipuler les transformations, nous voulons maintenant afficher les quantitĂ©s qui n'ont pas pu ĂȘtre honorĂ©es dans les commandes par type d'essence.
Mais nous n'avons pas directement cette information dans la table wood_order. On a un champ quantité commandée (quantity) et un champ quantité livrée (honored).
On pourrait se passer des transformations avec une bonne grosse requĂȘte SQL et des jointures mais ce n'est pas pĂ©dagogique ! đ
Dans une nouvelle visualization, l'objectif est donc de:
- Afficher pour chaque type d'essence une Gauge montrant le pourcentage de quantité non-livrée
- Utiliser max. 2 requĂȘtes SQL
- Utiliser uniquement des transformations pour construire la donnée
Besoin d'un coup de pouce ?
On va faire ici 2 requĂȘtes, l'une pour rĂ©cupĂ©rer la quantitĂ© effectivement livrĂ©e "honored", l'autre pour rĂ©cupĂ©rer la quantitĂ© commandĂ©e "quantity".
Un autre ?!
La premiÚre transformation consiste à "ignorer" les 2 frames pour ne faire qu'un jeu de données
Success
Spoiler la solution est lĂ
- Il faut faire 2 requĂȘtes SQL pour rĂ©cupĂ©rer les quantitĂ©s commandĂ©es et livrĂ©es par commande
- Ajouter une premiĂšre transformation pour utiliser les donnĂ©es des 2 requĂȘtes comme une seule donnĂ©e
3. Ajouter une transformation pour calculer le delta entre ce qui a été commandé et ce qui a été livré
4. Ajouter une transformation pour filtrer les résultats strictement positifs
5. Ajouter une transformation pour calculer le pourcentage de ce qui est manquant par rapport au total
6. Ajouter une transformation pour filtrer les données qui nous intéressent : le type et le pourcentage calculé
7. Configurer la visualization en type Gauge en affichant toutes les valeurs (All values) des champs numĂ©riques (Numeric Fields), avec une unitĂ© en *Percent (0.0-1.0) et des thresholds Ă
0.2
,0.5
,0.8
Et pour cloturer : les Variables
Il serait intéressant de pouvoir filtrer toutes les visualizations d'un dashboard en fonction du type d'essence d'arbre par exemple pour avoir les infos filtrées uniquement sur l'essence souhaitée.
Dans cette derniÚre étape du lab, on va donc ajouter une Variable au niveau du Dashboard pour pouvoir filtrer en fonction de l'essence que l'on souhaite
Configurer la variable
Dans les Settings du dashboard, configurer une variable type_of_wood
qui récupÚre la liste des essences.
Success
Une fois configuré, un champ de filtrage aprÚs sur le dashboard listant les différentes essences trouvées ET l'option All
Spoiler la solution est lĂ
Il faut configurer la variable pour utiliser la datasource Postgre et la requĂȘte suivante pour rĂ©cupĂ©rer la liste des essences.
Et ne pas oublier de cocher les 2 options :Multi-value
Include All option
Modifier les visualizations
Maintenant que notre variable est disponible, il faut modifier les visualizations pour qu'ils la prennent en compte.
Modifier donc les 4 visualizations pour que l'on puisse filtrer sur le type d'essence au niveau du dashboard et que dans leur titre les essences choisies soient afficher
Success
Spoiler la solution est lĂ
Il suffit de:
-
Modifier les requĂȘtes SQL des visualizations pour inclure une clause
WHERE
: -
Modifier le
Title
du panel pour inclure la variable `type_of_wood``