Plein phare sur une application Brew : glances
Nouveau besoin, nouvelle application disponible via Brew. Regardons, aujourd'hui, un nouvel utilitaire : glances. Après unrar, il s'agit d'un utilitaire d'un tout autre genre, puisque nous allons pouvoir monitorer notre Mac. Le logiciel, dans sa description sur brew, se défini lui même comme une alternative à top ou à htop.
Si vous ne connaissez pas, top est un utilitaire en ligne de commande, disponible en standard sur nos Mac, c'est un peu le moniteur d'activité, dans un terminal. Quant à htop, il s'agit d'une version améliorée de top, non installée avec macOS, mais disponible sur ... Homebrew.
Pourquoi installer et utiliser glances alors que macOS fourni en standard un moniteur d'activité ? Alors, qu'il existe de nombreux outils effectuant la même tâche, de manière graphique tel que MenuMeters ou iStats Menu ?
Je pourrai vous dire que glances est plus léger, beaucoup plus léger, puisque dans un simple terminal ou encore qu'il dispose de nombreuses options, mais la vraie raison est que depuis un terminal, je peux me connecter à distance afin de vérifier que tout fonctionne bien.
Ainsi sur mon Mac, j'utilise iStats Menu, la Rolls des logiciels de monitoring pour Mac, mais lorsque je ne suis pas devant ce Mac, je peux m'y connecter, depuis un autre ordinateur ou même mon iPhone et contrôler que tout va bien.
Sur un serveur, souvent dépourvu d'écran, l'utilisation de la ligne de commande est souvent plus facile et plus rapide. Ici une application telle que glances prend tout son sens. Dans le même genre, sur les Raspberry Pi dont l'affichage est dédiée à une tâche précise tel que Retropie ou Kodi, l'intérêt se renouvelle.
En fin d'article, nous verrons qu'il dispose d'un sacré panel d'options, qui peuvent être bien utiles.
Bref, glances, c'est bien. Avançons !
brew info glances
glances: stable 3.0.2 (bottled)
Alternative to top/htop
https://nicolargo.github.io/glances/
Not installed
From: https://github.com/Homebrew/homebrew-core/blob/master/Formula/glances.rb
==> Dependencies
Required: python ✘
==> Analytics
install: 1,270 (30 days), 6,191 (90 days), 12,931 (365 days)
install_on_request: 1,268 (30 days), 6,182 (90 days), 12,914 (365 days)
build_error: 0 (30 days)
Rien à signaler de ce côté là, à noter que vous pourriez avoir plus de dépendance à installer, cela a été le cas sur un autre Mac.
Commençons l'installation.
brew install glances
==> Installing dependencies for glances: python
==> Installing glances dependency: python
==> Downloading https://homebrew.bintray.com/bottles/python-3.7.1.high_sierra.bottle.tar.gz
==> Downloading from https://akamai.bintray.com/be/be05e539d0c1bd13a838b76d3031de246579277fefde473887ec35fc70579787?__gda__=exp=1542737187~hmac= 79b5051a4d5058c02ceab12d2227004e8cb
######################################################################## 100.0%
==> Pouring python-3.7.1.high_sierra.bottle.tar.gz
==> /usr/local/Cellar/python/3.7.1/bin/python3 -s setup.py --no-user-cfg install --force --verbose --install-scripts=/usr/local/Cellar/python/3.7.1/bin --install-lib=/usr/local/li
==> /usr/local/Cellar/python/3.7.1/bin/python3 -s setup.py --no-user-cfg install --force --verbose --install-scripts=/usr/local/Cellar/python/3.7.1/bin --install-lib=/usr/local/li
==> /usr/local/Cellar/python/3.7.1/bin/python3 -s setup.py --no-user-cfg install --force --verbose --install-scripts=/usr/local/Cellar/python/3.7.1/bin --install-lib=/usr/local/li
==> Caveats
Python has been installed as
/usr/local/bin/python3
Unversioned symlinks `python`, `python-config`, `pip` etc. pointing to
`python3`, `python3-config`, `pip3` etc., respectively, have been installed into
/usr/local/opt/python/libexec/bin
If you need Homebrew's Python 2.7 run
brew install python@2
You can install Python packages with
pip3 install
They will install into the site-package directory
/usr/local/lib/python3.7/site-packages
See: https://docs.brew.sh/Homebrew-and-Python
==> Summary
🺠/usr/local/Cellar/python/3.7.1: 3,820 files, 59.2MB
==> Installing glances
==> Downloading https://homebrew.bintray.com/bottles/glances-3.0.2.high_sierra.bottle.1.tar.gz
==> Downloading from https://akamai.bintray.com/b8/b8b2b0c5ed5697b37b7891405fdd4af2cf04aa14dafb284620d846fe805dc564?__gda__=exp=1542737210~hmac= 599cd5a9aad1b85c3ff1664a26d42ef83ae
######################################################################## 100.0%
==> Pouring glances-3.0.2.high_sierra.bottle.1.tar.gz
🺠/usr/local/Cellar/glances/3.0.2: 264 files, 6.4MB
==> Caveats
==> python
Python has been installed as
/usr/local/bin/python3
Unversioned symlinks `python`, `python-config`, `pip` etc. pointing to
`python3`, `python3-config`, `pip3` etc., respectively, have been installed into
/usr/local/opt/python/libexec/bin
If you need Homebrew's Python 2.7 run
brew install python@2
You can install Python packages with
pip3 install
They will install into the site-package directory
/usr/local/lib/python3.7/site-packages
See: https://docs.brew.sh/Homebrew-and-Python
Une fois de plus, cela se fait sans encombre !
Lançons l'application.
glances
et pour quitter, appuyez sur q. Si cela bloque, un petit ctrl+c devrait vous en sortir définitivement.
Mais ce n'est pas très lisible, si, comme moi, vous avez conservé les réglages de base du terminal.
Regardons les options
glances --help
usage: glances [-h] [-V] [-d] [-C CONF_FILE] [--modules-list]
[--disable-plugin DISABLE_PLUGIN] [--disable-process]
[--disable-webui] [--light] [-0] [-1] [-2] [-3] [-4] [-5] [-6]
[--disable-history] [--disable-bold] [--disable-bg]
[--enable-irq] [--enable-process-extended] [--export EXPORT]
[--export-csv-file EXPORT_CSV_FILE]
[--export-json-file EXPORT_JSON_FILE]
[--export-graph-path EXPORT_GRAPH_PATH] [-c CLIENT] [-s]
[--browser] [--disable-autodiscover] [-p PORT]
[-B BIND_ADDRESS] [--username] [--password]
[--snmp-community SNMP_COMMUNITY] [--snmp-port SNMP_PORT]
[--snmp-version SNMP_VERSION] [--snmp-user SNMP_USER]
[--snmp-auth SNMP_AUTH] [--snmp-force] [-t TIME] [-w]
[--cached-time CACHED_TIME] [--open-web-browser] [-q]
[-f PROCESS_FILTER] [--process-short-name] [--stdout STDOUT]
[--hide-kernel-threads] [-b] [--diskio-show-ramfs]
[--diskio-iops] [--fahrenheit] [--fs-free-space]
[--theme-white] [--disable-check-update]
optional arguments:
-h, --help show this help message and exit
-V, --version show program's version number and exit
-d, --debug enable debug mode
-C CONF_FILE, --config CONF_FILE
path to the configuration file
--modules-list, --module-list
display modules (plugins & exports) list and exit
--disable-plugin DISABLE_PLUGIN
disable plugin (comma separed list)
--disable-process disable process module
--disable-webui disable the Web Interface
--light, --enable-light
light mode for Curses UI (disable all but top menu)
-0, --disable-irix task's cpu usage will be divided by the total number
of CPUs
-1, --percpu start Glances in per CPU mode
-2, --disable-left-sidebar
disable network, disk I/O, FS and sensors modules
-3, --disable-quicklook
disable quick look module
-4, --full-quicklook disable all but quick look and load
-5, --disable-top disable top menu (QL, CPU, MEM, SWAP and LOAD)
-6, --meangpu start Glances in mean GPU mode
--disable-history disable stats history
--disable-bold disable bold mode in the terminal
--disable-bg disable background colors in the terminal
--enable-irq enable IRQ module
--enable-process-extended
enable extended stats on top process
--export EXPORT enable export module (comma separed list)
--export-csv-file EXPORT_CSV_FILE
file path for CSV exporter
--export-json-file EXPORT_JSON_FILE
file path for JSON exporter
--export-graph-path EXPORT_GRAPH_PATH
Folder for Graph exporter
-c CLIENT, --client CLIENT
connect to a Glances server by IPv4/IPv6 address or
hostname
-s, --server run Glances in server mode
--browser start the client browser (list of servers)
--disable-autodiscover
disable autodiscover feature
-p PORT, --port PORT define the client/server TCP port [default: 61209]
-B BIND_ADDRESS, --bind BIND_ADDRESS
bind server to the given IPv4/IPv6 address or hostname
--username define a client/server username
--password define a client/server password
--snmp-community SNMP_COMMUNITY
SNMP community
--snmp-port SNMP_PORT
SNMP port
--snmp-version SNMP_VERSION
SNMP version (1, 2c or 3)
--snmp-user SNMP_USER
SNMP username (only for SNMPv3)
--snmp-auth SNMP_AUTH
SNMP authentication key (only for SNMPv3)
--snmp-force force SNMP mode
-t TIME, --time TIME set refresh time in seconds [default: 3 sec]
-w, --webserver run Glances in web server mode (bottle needed)
--cached-time CACHED_TIME
set the server cache time [default: 1 sec]
--open-web-browser try to open the Web UI in the default Web browser
-q, --quiet do not display the curses interface
-f PROCESS_FILTER, --process-filter PROCESS_FILTER
set the process filter pattern (regular expression)
--process-short-name force short name for processes name
--stdout STDOUT display stats to stdout (comma separated list of
plugins/plugins.attribute)
--hide-kernel-threads
hide kernel threads in process list (not available on
Windows)
-b, --byte display network rate in byte per second
--diskio-show-ramfs show RAM Fs in the DiskIO plugin
--diskio-iops show IO per second in the DiskIO plugin
--fahrenheit display temperature in Fahrenheit (default is Celsius)
--fs-free-space display FS free space instead of used
--theme-white optimize display colors for white background
--disable-check-update
disable online Glances version ckeck
Examples of use:
Monitor local machine (standalone mode):
$ glances
Display all Glances modules (plugins and exporters) and exit:
$ glances --module-list
Monitor local machine with the Web interface and start RESTful server:
$ glances -w
Glances web server started on http://0.0.0.0:61208/
Only start RESTful API (without the WebUI):
$ glances -w --disable-webui
Glances API available on http://0.0.0.0:61208/api/
Monitor local machine and export stats to a CSV file (standalone mode):
$ glances --export csv --export-csv-file /tmp/glances.csv
Monitor local machine and export stats to a InfluxDB server with 5s refresh time (standalone mode):
$ glances -t 5 --export influxdb
Start a Glances XML/RCP server (server mode):
$ glances -s
Connect Glances to a Glances XML/RCP server (client mode):
$ glances -c <ip_server>
Connect Glances to a Glances server and export stats to a StatsD server (client mode):
$ glances -c <ip_server> --export statsd
Start the client browser (browser mode):
$ glances --browser
Display stats to stdout:
$ glances --stdout cpu.user,mem.used,load
Disable some plugins (any modes):
$ glances --disable-plugin network,ports
Il y en a une très intéressante, qui nous irait bien :
glances --theme-white
Le résultat est bien mieux comme cela !
Comme vous pouvez le remarquez, glances mets en couleurs les éléments clés à regarder, rendant le monitoring plus efficace.
Une fois dedans, il existe de nombreux raccourcis clavier qui permettent de modifier le comportement de l'application en temps réel, comme trier par une colonne souhaitée ou d'activer/désactiver un élément. Par exemple, la touche c qui permet de trier par l'utilisation CPU. La liste complète est ici.
Pour les plus techy, il est possible de lancer glances en mode serveur, et de connecter à distance. Ce qui peut être pratique pour monitorer plusieurs serveurs à la fois. Aussi, il est possible d'exporter les résultats sur une page web ou encore en CSV.
- Homebrew - Gestionnaire de paquets
- Guetzli, une librairie d'encodage JPG optimisée
- Installer les commandes ecm et unecm sur macOS
- Homebrew : Recherche et commandes avancées
- Astuce macOS : Gérer les images disques au format bin/cue
- Plein phare sur une application Brew : youtube-dl
- Plein phare sur une application Brew : smartmontools
- Plein phare sur une application Brew : minidlna
- Brew et les paquets installés
- Plein phare sur une application Brew : unrar
- Plein phare sur une application Brew : glances
- Brew et les paquets à mettre à jour
- Plein phare sur une application Brew : watch
- Homebrew et la gestion de l'espace disque
- Plein phare sur une application Brew : ncdu
- Plein phare sur une application Brew : TestDisk
- Convertir une série d'images en GIF animé sur macOS
- Plein phare sur une application Brew : p7zip
- Plein phare sur une application Brew : Optimiser des PNGs avec ImageOptim
- Plein phare sur une application Brew : pstree
- Plein phare sur une application Brew : lsusb
- Plein phare sur une application Brew : rename
- Plein phare sur une application Homebrew : nmap
- Gérer les mises à jours des applications Homebrew sur 10.14 et inférieur.
- Gérer les mises à jours des applications Homebrew sur 10.14 et inférieur, partie 2.
- Plein phare sur une application Brew : yt-dlp
- Homebrew : Corriger un problème de dépendances trop récentes