Comprendre et modifier le push_script

maxime louvel

Dernière mise à jour il y a un an

Comment votre dispositif envoie-t-il ses informations ?

Quand vous avez connecté votre dispositif (cf. aide ici si besoin), voici ce qu'il s'est passé :

1. Le script d'installation a été téléchargé (curl dans la commande) et exécuté.

2. Tous les prérequis (requirements) ont été installés et le push script a été téléchargé.

3. le push script (push_device_info.py) a été exécuté.


Quand le push script a été exécuté, voici ce qu'il s'est passé :


1. Les informations du device ont été récupérées et formattées.

2. Les informations ont été envoyées au serveur BAG·Tower via l'API.

3. L'API a répondu avec succès et renvoyé la période à laquelle le dispositif doit pousser (envoyer) ses informations (ex. toutes les 10 minutes).


Les deux scripts (installation et push) sont stockés sur le dispositif dans le répertoire ~/.bagtower/.


Le script d'installation peut être lancé n'importe quand. Il va simplement réinstaller le push script dans sa dernière version disponible.

Comment fonctionne le push script ?

Par défaut les informations suivantes sont surveillées sur le dispositif :

  - deviceStatus: état du dispositif UP ou DOWN (en marche ou à l'arrêt)

  - cpu: pourcentage de CPU utilisé global

  - cpu_per_cpu: pourcentage de CPU utilisé, par cpu

  - memory: pourcentage de RAM utilisée

  - diskusage: pourcentage de disque utilisé

  - last boot date: informations brutes sur la dernière date de démarrage

  - battery_status: état de la batterie PLUGGED, UNPLUGGED ou NO_BATTERY

  - sockets_info: des informations au sujet des sockets sur l'équipement.


Ces informations vous satisferont peut-être pleinement, .…Ou pas !


Si vous voulez ajouter, modifier ou supprimer des éléments d'information, vous pouvez adapter le push_script.

Comment adapter le push script ?

  1. Copiez le script push_device_info.py (installé dans ~/.bagtower/push/) à un autre endroit pour éviter de l'écraser lors de la ré-exécution éventuelle du script d'installation

  2. Modifiez la fonction generate_device_log pour ajouter ou supprimer un élément de log.

Vous devez respecter le modèle de donnée attendu par le serveur lors de l'envoi d'informations depuis le dispositif, comme détaillé ici.


L'idée est la suivante. Votre dispositif envoie/pousse périodiquement une liste (un Array en json) de données. Vous pouvez pousser n'importe quel type de données supporté (c'est-à-dire dont le format est valide).


Chaque élément de données envoyé de votre équipement est affiché dans un graphe dédié dans bagtower.app/devices, dans la vue "Details" de l'équipement en question.


Pour chaque élément de donnée, vous pouvez pousser:

   - une valeur simple. Une courbe simple courbe sera alors affichée dans le graphe correspondant.

L'exemple suivant montre comment pousser le pourcentage d'utilisation de RAM de votre équipement.

  - un tableau de valeurs. Le graphe affichera alors une courbe par valeur, la légende du graphe reprendra le numéro d'ordre de la valeur dans le tableau (0, 1, 2, ...)

L'exemple suivant montre comment poussez le pourcentage d'utilisation par cpu de votre équipement. En supposant que votre équipement ait 4 cpus, vous verrez alors 4 courbes numérotées : 0, 1, 2, 3.

  - un objet de valeur (ensemble de paires clé-valeur). Le graphe affichera alors une courbe par valeur (comme pour le tableau), chaque courbe étant identifiée dans la légende par la clé associée à cette valeur.

L'exemple suivant montre comment pousser des informations sur les sockets de l'équipment. Dans cet exemple, le graphe comportera 4 courbes nommées : nb_established, nb_sockets_closing, nb_sockets_close, nb_sockets_listen.

Cet article a-t-il été utile ?

0 sur 0 ont aimé cet article

Vous avez encore besoin d'aide ? Envoyez-nous un message