Petit moniteur d'activité pour raspberry sous node.js

Après avoir laborieusement installé nodejs sur le raspberry, et après avoir parcouru les quelques articles du blog d’idleman j’ai découvert Raspcontrol.

Raspcontrol est un système créé sous PHP qui permet de surveiller les performances de son Raspberry Pi.

Raspcontrol

Accessible via un navigateur, j’ai rapidemment parcouru le code source pour comprendre ce que le script fais. C’est assez basique, il utilise exec pour aller chercher les différentes informations du système, puis les formattes. Autant vous dire que lors de son déploiement sur d’autres plateforme vous risquez d’être confronté à quelques petits problèmes.

Par exemple, je voulais trouver la température de mon processeur et d’après le fichier temp.php, il faudrait executer :

cat /sys/bus/w1/devices/28-000004e8a0f3/w1_slave
#no such file or directory

Bizarre, j’utilise Raspbian sans aucun mod. Je demande à mon ami google et je tombe sur ce lien qui me dis :

/opt/vc/bin/vcgencmd measure_temp
temp=41.2'C

Parfait !

Pour le reste, voyons du côté de nodejs si ça semble plus simple à mettre en place ! Sous nodejs il y a un module de base appelé OS. Celà commence bien, la plupart des surveillances de Raspcontrol s’y trouvent ! Mémoire, architecture, hostname, networkInterfaces etc.

Il ne me manque plus que les disques dur pour avoir un système quasi-semblable ! Direction npmjs et je trouve node-disk-free qui exécute df et le formatte.

Après un rapide coup d’œuil dans la librairie j’y ai ajouté le pourcentage d’espace utilisé. Je viens de m’appercevoir qu’il serait possible d’optimiser les performances de ce script qui semble faire souffrir le PI pendant un court instant.

J’ai mis quelques heures à refaire rapidemment une page qui me présente ces informations, pour le code parcourez le github de node-rpi-monit. Pour l’instant c’est très basique mais ça fonctionne à merveille !

Node-RPI-Monit

De plus il était bien plus rapide à mettre en place que le Raspcontrol à mon avis.

Pour le faire fonctionner en boucle comme à mon habitude j’utilise pm2 avec pm2 startup pour le faire démarrer au boot !