Stats, le moniteur système macOS dans la barre des menus
(github.com/exelban)- Stats est une app qui permet de surveiller le CPU, le GPU, la mémoire, le disque, le réseau, la batterie, les capteurs, les appareils Bluetooth et des horloges sur plusieurs fuseaux horaires depuis la barre des menus de macOS
- L’installation peut se faire en téléchargeant la dernière version de
Stats.dmgpuis en la déplaçant dans le dossier Applications, ou via Homebrew avecbrew install stats - Les systèmes pris en charge sont les versions officiellement publiées de macOS 12 Monterey et ultérieures ; des versions legacy pour les anciens systèmes sont proposées en téléchargement séparé
- Si l’icône n’apparaît pas dans la barre des menus, il peut être nécessaire d’activer explicitement Stats dans les contrôles de confidentialité System Settings → Menu Bar de macOS 26
- Les modules Sensors et Bluetooth sont relativement peu efficaces ; les désactiver peut, dans certains cas, réduire l’impact sur l’usage CPU et l’efficacité énergétique de jusqu’à 50 %
Fonctionnalités proposées par Stats
- Stats est une application qui permet de consulter l’état du système macOS depuis la barre des menus
- Les éléments surveillés incluent notamment :
-
Utilisation du CPU
-
Utilisation du GPU
- Utilisation de la mémoire
- Utilisation du disque
- Utilisation du réseau
- Niveau de batterie
- Contrôle des ventilateurs
- Informations des capteurs : température, tension, puissance
- Appareils Bluetooth
- Horloge sur plusieurs fuseaux horaires
-
Installation et prérequis
- La dernière version est disponible via Stats.dmg
- Il suffit d’ouvrir le
Stats.dmgtéléchargé et de déplacer l’app dans le dossier Applications
- Il suffit d’ouvrir le
- L’installation via Homebrew est également prise en charge
brew install stats
- Les versions legacy pour les anciens systèmes sont proposées en téléchargement séparé
- La version de macOS prise en charge est macOS 12 Monterey ou ultérieur, en version officiellement publiée
Comportement lié à la barre des menus et aux widgets
- L’ordre des icônes dans la barre des menus n’est pas décidé par Stats, mais par macOS
- L’ordre peut changer après le premier redémarrage suivant l’installation de Stats
- Sous macOS Mojave 10.14 et ultérieur, il est possible de modifier l’ordre en maintenant la touche ⌘ enfoncée puis en faisant glisser l’icône à l’emplacement souhaité
- Si l’icône de Stats n’apparaît pas dans la barre des menus, cela peut être dû aux nouveaux contrôles de confidentialité de macOS 26
- L’emplacement est System Settings → Menu Bar
- Si Stats est en cours d’exécution et qu’au moins un module et un widget sont activés, mais que l’icône reste invisible, il faut vérifier ce réglage
- La solution consiste à activer le bouton Stats sur ON
- Les détails associés se trouvent dans l’issue #3120
- Si les données des widgets de bureau ne s’affichent pas, la communication est désactivée par défaut côté Stats
- La raison est un problème de charge de données élevée du processus système
chronod, qui gère la communication entre l’app et les widgets - La solution consiste à activer l’option macOS widgets dans les réglages de Stats
- Les détails associés se trouvent dans l’issue #2733
- La raison est un problème de charge de données élevée du processus système
Performances, capteurs et limites du contrôle des ventilateurs
- Stats essaie de fonctionner efficacement, mais la lecture périodique de certaines données a un coût non négligeable
- Chaque module a un impact énergétique et un coût CPU différents
- Les modules Sensors et Bluetooth font partie des moins efficaces
- Les désactiver peut, dans certains cas, réduire l’impact sur l’usage CPU et l’efficacité énergétique de jusqu’à 50 %
- Le contrôle des ventilateurs est en mode legacy
- Aucune mise à jour ni correction n’est fournie
- Il n’a pas été retiré de l’app car il fonctionne plutôt bien sur les anciens Mac
- Le projet indique pouvoir accepter des PR de correction ou d’amélioration, mais ne pas avoir le temps ni les ressources pour prendre en charge cette fonctionnalité
- Les capteurs CPU/GPU ne sont pas directement liés au nombre de cœurs ni à un cœur spécifique
- Les capteurs CPU/GPU sont des capteurs de zone thermique du CPU/GPU
- Par exemple, le CPU est généralement divisé en clusters de cœurs efficients et de cœurs performants, et chaque cluster contient plusieurs capteurs de température
CPU Efficient Core 1ne désigne pas la température d’un seul cœur efficient, mais l’un des capteurs de température à l’intérieur du cluster de cœurs efficients- Apple change les clés des capteurs à chaque nouveau SoC, si bien qu’il faut du temps pour identifier les valeurs SMC correspondant aux bons capteurs
API externes et requêtes réseau
- Stats utilise certaines API externes
https://api.mac-stats.com: vérification des mises à jour et consultation de l’adresse IP publiquehttps://api.github.com: chemin alternatif pour la vérification des mises à jour
- Les deux API sont utilisées pour vérifier les mises à jour
- Une requête externe est nécessaire pour obtenir l’adresse IP publique
- Le projet utilise son propre serveur afin d’éviter de recourir à un fournisseur tiers
- Les utilisateurs que cette requête inquiète disposent de plusieurs options
- Proposer une PR pour que la fonctionnalité fonctionne sans serveur externe
- Bloquer les deux serveurs avec une app de filtrage réseau
- En cas de blocage, il ne sera plus possible de recevoir les mises à jour ni de voir l’adresse IP publique dans le module réseau
Gestion des issues et mode de contribution
- Si l’app plante, il faut d’abord vérifier que la dernière version est utilisée
- Il est probable qu’un correctif anti-crash ait déjà été publié
- Si le problème persiste avec la dernière version, il faut consulter les issues ouvertes
- Il ne faut ouvrir une nouvelle issue que si aucune issue existante ne traite le problème
- Lorsqu’une issue est fermée sans réponse, il s’agit généralement d’un doublon
- Il est possible de trouver la réponse existante en recherchant parmi les issues fermées
- Lors du développement d’une nouvelle fonctionnalité ou de la découverte d’un bug, la première étape consiste à ouvrir une issue
- Il faut d’abord discuter de la fonctionnalité ou du problème
- Une pull request ne doit être ouverte qu’après l’existence d’une issue et la fin de la discussion
- Les PR ouvertes sans discussion peuvent être fermées automatiquement
- Les changements de langue, ainsi que les contributeurs ayant déjà apporté une contribution importante et dont l’orientation d’implémentation est bien alignée, peuvent faire exception
Langues et licence
- Stats prend en charge plusieurs langues, dont English, Polski, Українська, Русский, 中文, Türkçe, coréen, German, Spanish, French, Italian, Japanese
- Il est possible de contribuer en ajoutant une nouvelle langue ou en améliorant une traduction existante
- La licence est la MIT License
1 commentaires
Avis sur Hacker News
J’utilise Stats depuis des années pour surveiller le CPU, le GPU, la mémoire et les débits réseau en upload/download, et j’en suis très satisfait.
C’est pratique pour voir si des processus qui ne se sont pas terminés sont bloqués à 100 %, si mon code tourne réellement sur le GPU, quel est le débit réseau quand un téléchargement ou un transfert se fige, ou quel processus télécharge discrètement des centaines de Mo.
Ça donne une certaine tranquillité de voir d’un coup d’œil, en haut de l’écran, ce que fait l’ordinateur à l’instant T, au point qu’il m’est difficile d’imaginer la barre de menus sans lui.
Rien qu’en jetant un œil aux graphiques et en me disant « tiens, ça ne devrait pas faire ça maintenant », j’ai repéré plusieurs problèmes système, pas seulement des processus bloqués, mais aussi des processus au comportement anormal.
J’avais d’ailleurs écrit sur ce sujet ici : https://blogsystem5.substack.com/p/hard-disk-leds-and-noisy-...
Du genre : « Pourquoi le CPU est-il à 100 % sans raison ? Ah, au bout de 10 minutes sans requête, ça part dans une boucle infinie ici… »
Avant, les ventilateurs à 100 % étaient un bon détecteur de bugs, mais les ordinateurs actuels sont tellement silencieux qu’il faut le voir à l’écran.
On dirait une copie d’iStat Menus. Je l’ai gardé installé pendant quelques années, puis un jour je me suis rendu compte que je ne le regardais presque jamais, et que ses icônes prenaient simplement de la place dans la barre de menus, donc je l’ai finalement supprimé.
Configurer le Moniteur d’activité dans le Dock pour afficher le CPU me suffit.
Avant, j’ouvrais le Moniteur d’activité, mais chaque fois que les ventilateurs du portable se mettaient à tourner, la cause était toujours le navigateur. Avec le moniteur de performances du navigateur, on voit immédiatement quel onglet pose problème, et en général un cmd-R sur l’onglet fautif suffit à stabiliser les choses.
J’ai l’impression qu’un développeur JavaScript n’a pas testé son code en laissant un onglet ouvert plus longtemps que le temps nécessaire à vérifier ses changements.
Aujourd’hui je ne garde que le moniteur réseau de Little Snitch, que j’utilise parfois pour voir où part réellement le trafic.
C’était peut-être dû à certains modules d’affichage plutôt qu’à la configuration par défaut, mais je n’avais pas envie de remonter jusqu’à la cause, donc je l’ai supprimé.
Je le réinstalle parfois, mais le système finit toujours par planter. C’est surtout un joli gadget.
Ça a l’air correct. Avant, je payais pour iStat Menus, mais après avoir acheté un nouveau portable, je n’ai pas réussi à retrouver où télécharger l’ancienne version pour laquelle j’avais acheté une licence.
À titre personnel, je pense que l’utilisation CPU/mémoire/réseau et les 5 applications qui consomment le plus chaque ressource devraient toujours être visibles. Cela devrait être une fonction de base des appareils informatiques aujourd’hui ; le fait que ce ne soit toujours pas le cas ne profite qu’aux mauvais logiciels gourmands en ressources et aux acteurs malveillants.
On ne devrait pas avoir à lancer le Moniteur d’activité à chaque fois pour voir ces informations de base. Je vais l’essayer.
Ça me rappelle MenuMeters. C’était excellent pour afficher des métriques en temps réel, plusieurs types de graphiques et différents intervalles de rafraîchissement.
https://member.ipmu.jp/yuji.tachikawa/MenuMetersElCapitan/
Dès que je l’ai installé, j’ai immédiatement découvert que LegacyScreenSaver fuyait 40 Go de mémoire.
Ça semble très inspiré d’iStat Menus, que j’utilise depuis des années avec plaisir en payant : https://bjango.com/mac/istatmenus/
J’ai essayé Stats plusieurs fois au fil de son évolution, mais je finis toujours par revenir à iStat Menus. Le design de Stats donne aussi clairement l’impression d’être assez inspiré d’iStat Menus.
Cela dit, ce que j’apprécie chez Stats, c’est la prise en charge d’un plus grand nombre de valeurs de capteurs SMC.
Je l’ai installé avec
brew, mais il n’apparaissait pas dans la barre de menus. Après avoir redémarré le Mac, il est apparu, mais j’ai la flemme de faire une PR pour mettre à jour la documentation maintenant.En plus, je ne voyais que le widget de batterie et pas les autres, ce qui rendait la première prise en main confuse.
En fait, tout était masqué à cause de la mauvaise UX de macOS autour de l’espace dans la barre de menus. Il n’y a même pas d’indication qu’il existe d’autres éléments de menu. C’est une mauvaise décision de design de la part du Mac.
defaults -currentHost write -globalDomain NSStatusItemSpacing -int 8defaults -currentHost write -globalDomain NSStatusItemSelectionPadding -int 8Pour revenir en arrière, faites ceci :
defaults -currentHost delete -globalDomain NSStatusItemSpacingdefaults -currentHost delete -globalDomain NSStatusItemSelectionPaddingPuis déconnectez-vous et reconnectez-vous.
Avant, je payais pour https://www.macbartender.com/ afin d’avoir ce genre de fonction.
J’utilise iPulse (https://ipulseapp.com/) depuis près de 20 ans. C’est joli, les gens qui regardent mon écran à côté de moi le complimentent ou posent régulièrement des questions, et ça ne prend pas beaucoup de place à l’écran.
Je n’ai aucun lien avec le projet, mais je le recommande vivement.
La dernière fois que j’ai essayé Stats, il y a 3 ou 4 mois, il consommait nettement plus de CPU qu’iStats Menus.
C’est une petite application sympathique, mais sur mon M2 MBA elle faisait s’emballer bluetoothd, qui montait jusqu’à 40 % de CPU.