Glances: vos stats systèmes en un clin d’oeil
Il y a quelques jours, je vous avais parlé de Saidar, un logiciel permettant de regrouper dans un terminal|console un certain nombre de statistiques sur votre machine. Après quelques heures d'utilisations, j'ai identifié des choses qui ne me convenait pas:
- pas d'affichage de la mémoire réellement disponible (comme on peut le trouver sur la deuxième ligne de la commande free -m)
- pas de détail au niveau des processus
- affichage des débits réseaux en octets/sec alors que j'utilise toujours les bits/sec
- pas d'information sur l'espace disque disponible
Comme je ne trouvais pas la "killer application" dans ce domaine (même si il existe de très bon outils comme top), j'ai décidé de repartir d'une feuille blanche et de développer le logiciel Glances (licence LGPL) dont je vais vous présenter les grandes lignes dans ce billet.
Objectifs
Ils sont multiples:
- prises en compte de mes griefs sur Saidar
- accès à la fois depuis un environnement graphique (terminal) qu'à distance (console)
- mise en avant des statistiques importantes à la compréhension d'un éventuel problème
- affichage des processus triés de manière intelligente et automatique
- développement en langage Python (je connais assez bien, c'est portable et facile à maintenir)
Installation
Après avoir téléchargé la dernière version stable disponible , il suffit de saisir les commandes suivantes:
cd glances-version
./configure
make
sudo make install
Notes: remplacer "version" par le numéro de version que vous avez téléchargé...
Glances a besoin de la librairie python-statgrab version 0.5 (ou supérieure) pour fonctionner correctement. Sous Ubuntu, il suffit de lancer la commande:
Sous Debian Squeeze, seule la version 0.4 de python-statgrab est disponible dans les dépôts. Il faut donc installer la version 0.5:
wget http://ftp.uk.i-scream.org/sites/ftp.i-scream.org/pub/i-scream/pystatgrab/pystatgrab-0.5.tar.gz
tar zxvf pystatgrab-0.5.tar.gz
cd pystatgrab-0.5/
./setup.py build
sudo ./setup.py install
Utilisation
On lance le logiciel avec la commande:
Par défaut, le rafraîchissement des données se fait toutes les secondes. Il est possible de l'augmenter avec l'option -t. Par exemple pour avoir un taux de rafraîchissement de 5 secondes:
Une fois lancé, les touches suivantes sont actives:
- 'a': passer le tri des processus en automatique (c'est le mode par défaut). Glances utilisera par défaut un tri décroissant sur l'utilisation CPU. Si une alerte sur la mémoire globale apparaît (mémoire occupé > 70%), le tri se fera alors par occupation mémoire.
- 'c': forcer le tri des processus en fonction de leurs utilisations de la CPU.
- 'm': forcer le tri des processus en fonction de leurs occupations mémoire.
- 'q': quitter le programme (on peut également utiliser CTRL-C).
Si votre terminal|console est compatible avec un affichage couleur, alors les statistiques importantes (à mes yeux...) sont mises en avant de la manière suivante:
- VERT: le compteur est < 50%
- BLEU: le compteur est > 50% et < 70%
- VIOLET: le compteur est > 70% et < 90%
- ROUGE: le compteur est > 90%
Limitations
L'API python-statgrab comporte actuellement un bug pour la récupération des statistiques sur les espaces disques. Dès que ce dernier sera corrigé, je pense inclure ces statistiques dans l'espace libre en bas à gauche de la fenêtre de Glances.
Un problème ?
Si vous rencontrez un problème lors de l'installation ou de l'utilisation de Glances:
- Vérifié que le problème n'est pas référencé
- Saisir le nouveau bug dans le tracker GitHub
Lors de la saisie du bug merci de fournir les informations suivantes:
- Système d'exploitation (nom, version)
- version de Python (python -v)
- version de la librairie statgrab (apt-cache show statgrab)
- version de la librairie python-statgrab (apt-cache show python-statgrab)
Contribuer ?
Le logiciel est distribué sous licence libre LGPL. Il est disponible dans le GitHub suivant: https://github.com/nicolargo/glances
Si vous trouvé ce logiciel intéressant et que vous souhaitez vous impliquer, j'ai besoin de vous sur les sujet suivants:
- packaging de Glances pour Debian, Ubuntu (PPA), Fedora, Redhat, Free|Open|NetBSD...
- amélioration/optimisation du code (lire le billet contribuer à un projet hébérgé sur GitHub)
- inclure la vérification de la présence de la librairie python-statgrab lors du .configure (j'ai un bug dans le configure.ac)
- 'Man' page
- Afficher une fenêtre d'aide avec les touches disponibles quand on clique sur F1
- Corriger le bug de python-statgrab afin que l'on puisse inclure les statistiques sur les systèmes de fichiers
- ...
J'attends vos retours.