Explication. BeerTender - un appareil pour refroidir et mettre en bouteille la bière de Krups et Heineken. Selon les fabricants, il maintient la qualité de la bière fraîche pendant 30 jours après l'ouverture du fût. Bien sûr, il est pratique pour les administrateurs système et les développeurs de surveiller la température et le niveau de bière dans leur fût en utilisant les tableaux de bord en ligne habituels. L'article précédent décrivait comment connecter BeerTender à Warp 10 , et maintenant nous allons configurer le tableau de bord Grafana
OVHcloud, le plus grand hébergeur et fournisseur de cloud européen, utilise activement la plate-forme Warp 10. Toutes leurs données de surveillance circulent dans un cluster Warp 10. Ce sont 400 000 serveurs, 27 centres de données, un total de plusieurs millions de métriques par seconde!
Ils ont de nombreux tableaux de bord, et maintenant OVHcloud est le mainteneur du
plugin open source
Warp 10 Grafana , que nous avons commencé à développer il y a quelque temps. Nous allons parler de lui. Si vous voulez l'essayer vous-même, les données sont dans le domaine public - vous pouvez copier WarpScript ci-dessous.
Nous avons déjà expliqué comment connecter BeerTender à Warp 10.L'installation
Tout d'abord, installez Grafana. Suivez les
instructions sur leur site Web .
Nous nous connectons à l'
http://localhost:3000/
par défaut
http://localhost:3000/
, accédez au mot de passe par défaut admin / admin, puis changez le mot de passe administrateur.
Pour la dernière version de Grafana, le plug-in devra être installé manuellement. La méthode avec
grafana-cli
ne fonctionnera pas. Il vous suffit de cloner le référentiel de plugins dans le répertoire des plugins de Grafana et de fixer les autorisations partout.
sudo systemctl stop grafana-server.service sudo chown -R grafana:mygroup /var/lib/grafana/ sudo chmod g+rw /var/lib/grafana/plugins git clone git@github.com:ovh/ovh-warp10-datasource.git /var/lib/grafana/plugins/ovh-warp10-datasource sudo chown -R grafana:mygroup /var/lib/grafana/plugins sudo systemctl start grafana-server.service
La configuration
Dans la configuration Grafana, accédez à la section Sources de données et ajoutez une source de données de type Warp 10. Assurez-vous qu'elle pointe vers l'instance souhaitée de Warp 10. Vous pouvez spécifier les mêmes paramètres que les nôtres:
Il est temps de prendre les données du BeerTender ...
Affichage de la température
Créez un nouveau tableau de bord, ajoutez un panneau avec le type de visualisation Graphique et passez en mode Requêtes:
Température initiale (valeurs entières du capteur)- Dans la source de données, sélectionnez Warp 10 (ou la valeur par défaut)
- Activez l'éditeur WarpScript
- Copiez WarpScript ci-dessous
- Dans le coin supérieur droit, sélectionnez "30 derniers jours"
- Enregistrez le résultat
"gCA1SVjbDkaxtmTx9ydI4TI2iGc5hFgcbCWnzMRZSt45XW8dZ53Z7VK_if28i0kXwNDLazXHgLrXUKgxLK0RbS79eJmBCpyBlIxw9US7bPfdWH4Fta51.kXN.D4Hsk5OZOwl.vLRBzMpP7F2pAMfclMXSGtCOT6F" 'rt' STORE [ $rt 'beertender.rawtemperature' {} NOW 30 d ] FETCH 0 GET
Ce script affichera les valeurs initiales du capteur ADC. Veuillez noter que l'éditeur WarpScript dans Grafana n'est pas aussi puissant qu'auparavant, il n'y a plus de saisie automatique ici. Vous pouvez écrire un script dans WarpStudio ou VSCode, vous aurez donc la coloration syntaxique et la documentation en ligne, puis copiez et collez le résultat dans Grafana.
Espacement automatique
Dans cet exemple, sélectionnez l'intervalle de 30 jours et définissez le mode d'affichage dans graphan au cours des 30 derniers jours. Si nous sélectionnons le mode d'affichage pour le dernier jour ou l'année, WarpScript demandera toujours des données tous les 30 jours. Le plugin résout ce problème: deux variables sont disponibles pour une utilisation dans WarpScript -
$end
et
$interval
.
[ $rt 'beertender.rawtemperature' {} $end $interval ] FETCH 0
Température de la bière
J'ai pris plusieurs mesures d'eau, de glace et d'eau chaude, en comparant avec un capteur de référence ... Le résultat était le suivant:
T (° C) valeur initiale
18,3 680
41,5 870
37,6 841
10 586
11 596
8 559
1,467
4,500
6.5 535
Insérez ces valeurs dans la série temporelle
GTS et triez le résultat selon les valeurs initiales du capteur:
NEWGTS 'linearInterpolation' RENAME 680 NaN NaN NaN 18.3 ADDVALUE 870 NaN NaN NaN 41.5 ADDVALUE 841 NaN NaN NaN 37.6 ADDVALUE 586 NaN NaN NaN 10 ADDVALUE 596 NaN NaN NaN 11 ADDVALUE 559 NaN NaN NaN 8 ADDVALUE 467 NaN NaN NaN 1 ADDVALUE 500 NaN NaN NaN 4.5 ADDVALUE 535 NaN NaN NaN 6.5 ADDVALUE SORT
Interpolation attendueLes données source du capteur se présentent sous la forme d'entiers. La façon la plus simple d'interpoler consiste à créer d'abord la courbe, puis à utiliser la fonction
ATTICK pour en lire les valeurs en degrés.
L'interpolation dans WarpScript est facile.
Nous créons un bucket pour définir la période souhaitée, puis commençons l'interpolation, en remplissant les valeurs manquantes.
[ $linearInterpolation bucketizer.last 0 1 0 ] BUCKETIZE 0 GET INTERPOLATE 'truthtableGTS' STORE

Super. Vous devez maintenant écrire votre propre mappeur afin de remplacer chaque valeur du capteur par une vraie valeur de température physique et amener le résultat au format utilisé par le graphane.
Avertissement : les valeurs arrivent toutes les 10 secondes. En trois mois, 270 000 valeurs s'accumuleront. Trop pour Grafana ... Il suffit de garder la valeur maximale de chaque heure. Dans WarpScript, c'est
BUCKETIZE avec le bucketizer.max
bucketizer .
Vous pouvez copier ce WarpScript dans Grafana:
// raw value interpolation "gCA1SVjbDkaxtmTx9ydI4TI2iGc5hFgcbCWnzMRZSt45XW8dZ53Z7VK_if28i0kXwNDLazXHgLrXUKgxLK0RbS79eJmBCpyBlIxw9US7bPfdWH4Fta51.kXN.D4Hsk5OZOwl.vLRBzMpP7F2pAMfclMXSGtCOT6F" 'rt' STORE NEWGTS 'linearInterpolation' RENAME 680 NaN NaN NaN 18.3 ADDVALUE 870 NaN NaN NaN 41.5 ADDVALUE 841 NaN NaN NaN 37.6 ADDVALUE 586 NaN NaN NaN 10 ADDVALUE 596 NaN NaN NaN 11 ADDVALUE 559 NaN NaN NaN 8 ADDVALUE 467 NaN NaN NaN 1 ADDVALUE 500 NaN NaN NaN 4.5 ADDVALUE 535 NaN NaN NaN 6.5 ADDVALUE SORT 'linearInterpolation' STORE [ $linearInterpolation bucketizer.last 0 1 0 ] BUCKETIZE 0 GET INTERPOLATE 'truthtableGTS' STORE [ $rt 'beertender.rawtemperature' {} NOW $end $interval ] FETCH // subsampling, keep max of every hour [ SWAP bucketizer.max 0 1 h 0 ] BUCKETIZE UNBUCKETIZE // do not try to interpolate missing buckets. // interpolation [ SWAP <% 'l' STORE [ $l 0 GET //same tick NaN NaN NaN //no latitude/longitude/elevation $truthtableGTS $l 7 GET 0 GET ATTICK 4 GET //take the interpolated value ] %> MACROMAPPER 0 0 0 ] MAP 'temperature (°C)' RENAME
5 ° C, normal pour la bière
Tableau de bord BeerTender, première versionNiveau baril
La jauge de contrainte mesure le niveau dans le baril ... Mais il s'agit d'un capteur à trois fils bon marché sur un support en métal rouillé. Il n'est pas possible d'obtenir des informations précises de ces équipements. Par conséquent, il n'est pas surprenant que la sortie soit vraiment un résultat bruyant et que les valeurs absolues ne soient pas fiables. Pour notre BeerTender, j'ai trouvé une formule expérimentale pour Grafana pour afficher le niveau actuel en pourcentage.
Astuce: le plugin Warp 10 ne récupère que les données de GTS. Même si vous souhaitez afficher une seule valeur, vous devez la présenter à un moment donné dans les données GTS.Voici WarpScript, qui prend le dernier point de données et le transforme en valeur de pourcentage, et crée également une série chronologique avec un point:
"gCA1SVjbDkaxtmTx9ydI4TI2iGc5hFgcbCWnzMRZSt45XW8dZ53Z7VK_if28i0kXwNDLazXHgLrXUKgxLK0RbS79eJmBCpyBlIxw9US7bPfdWH4Fta51.kXN.D4Hsk5OZOwl.vLRBzMpP7F2pAMfclMXSGtCOT6F" 'rt' STORE //read for beer level [ $rt 'beertender.rawvalue' {} NOW -1 ] FETCH 0 GET VALUES 0 GET 'rawSensorValue' STORE //raw correction: // empty: 30.8e6 // full (and cold): 30.5e6 30.8e6 $rawSensorValue - 0 MAX 2800 / 100 MIN 'beerlevelPercent' STORE $beerlevelPercent NEWGTS 'Barre Level (%25)' RENAME 1 NaN NaN NaN $beerlevelPercent ADDVALUE
Utilisez ce WarpScript comme demande pour un panneau avec un type de visualisation Gauge:
Bel indicateurSi vous êtes intéressé, vous pouvez consulter les données sources ... Nous avons maintenant un jeton pour accéder à des statistiques uniques sur la consommation de bière!
Conclusions
- Si les données de surveillance étaient récemment sous votre contrôle, Grafana peut facilement intégrer la source de données Warp 10.
- Le plugin Grafana attend une série chronologique GTS ou une liste GTS.
- OVHcloud est le mainteneur actuel du plugin. N'hésitez pas à contribuer!
- Lisez la documentation pour plus d'informations.
- Si vous souhaitez enrichir la visualisation des données, vous pouvez prendre nos composants Web prêts à l'emploi .
