Construire un tableau de bord personnel de bande passante sur macOS
Configuration pratique d'un tableau de bord personnel de bande passante sur macOS : ce qu'il faut suivre, ce qu'il faut ignorer et comment tout garder en local.
- macOS
- Bandwidth
- Productivity
- Tutorial
Tous les six mois quelqu'un sur Hacker News publie « j'ai construit une pile de monitoring personnel avec Prometheus et Grafana ». C'est joli, c'est amusant à monter un samedi, et c'est démesurément exagéré pour la vraie question : combien de bande passante chaque application sur mon Mac utilise-t-elle ? Vous n'avez pas besoin d'une TSDB, d'un fichier Docker compose, ou d'un reverse proxy avec TLS. Vous avez besoin d'un tableau de bord de bande passante macOS qui tient sur un écran, vit dans votre barre de menu, et s'efface. Voici comment en construire un sans cramer un week-end.
La thèse : une application en barre de menu gère la couche en direct et récente, un export CSV occasionnel gère l'analyse archivistique, et c'est terminé. Pas de services à dorloter, pas de configs de scrape à éditer, pas de panneaux à maintenir.
Ce dont les utilisateurs Mac ont vraiment besoin dans un tableau de bord de bande passante
Mettez de côté le fantasme Grafana et demandez ce que vous regarderez vraiment :
- Un débit actuel. « Est-ce que quelque chose utilise la bande passante maintenant ? » — la question la plus courante, posée des dizaines de fois par jour.
- Une répartition par application. Quand la réponse est « oui », vous voulez savoir laquelle.
- Historique récent. Dernière heure, dernier jour, peut-être dernière semaine. Assez pour repérer un motif.
- Plongées profondes occasionnelles. Une fois par mois vous voulez comparer ce mois au précédent, ou corréler avec autre chose.
C'est tout. C'est tout le produit. La plupart des piles de « monitoring personnel » sortent avec des dizaines de tableaux de bord parce que les outils l'encouragent. Vous n'en avez pas besoin.
La conception à deux couches
Divisez le problème en une couche en direct/récente et une couche archivistique.
En direct + récent : une application en barre de menu
Une application en barre de menu est la bonne forme pour les trois premiers besoins. Elle tourne toujours, elle est à un clic de votre activité actuelle, et elle ne prend pas d'espace écran quand vous ne la regardez pas. La densité d'information d'une icône de barre de menu — débit actuel comme petit graphique ou deux nombres — est exactement ce que « est-ce que quelque chose utilise la bande passante maintenant » veut.
Choisissez-en une avec ces propriétés et c'est réglé :
- Montre un débit en direct dans la barre de menu d'un coup d'œil
- A une fenêtre contextuelle ou une fenêtre avec répartition par application
- Regroupe les processus auxiliaires sous leur application parente (« Slack » est une ligne, pas sept)
- Garde au moins une journée d'historique, idéalement une semaine ou plus
- Est signée et notarisée pour que macOS ne la signale pas
ova est livré avec tout cela. Environ 3 Mo, échantillonne à environ 1 Hz, tourne sur macOS 14 et ultérieur (Apple Silicon et Intel), les données restent locales, pas de télémétrie.
Archivistique : export CSV occasionnel
Pour la question mensuelle « comparer ce mois au précédent », vous n'avez pas besoin d'un système en direct. Vous avez besoin d'un fichier plat. Exportez un CSV depuis votre moniteur de bande passante, jetez-le dans un notebook (Jupyter, Observable, peu importe), et lancez les requêtes.
C'est aussi l'endroit pour faire des analyses intéressantes : heatmaps heure-de-la-journée, top destinations par application, croissance semaine sur semaine. Vous n'en avez pas besoin en direct — le faire une fois par mois est très bien — et votre portable n'a pas besoin d'héberger une instance Grafana pour le faire.
Si votre moniteur stocke les données en SQLite (ova le fait, dans ~/Library/Application Support/ova/), l'export est une commande :
sqlite3 -header -csv \
~/Library/Application\ Support/ova/<file>.sqlite \
"SELECT timestamp, app, bytes_in, bytes_out FROM samples" \
> ~/Desktop/bandwidth.csvPuis chargez-le dans Python ou R ou DuckDB et vous avez la couche de gros traitement d'une pile Grafana avec une requête et zéro infrastructure.
Pourquoi pas Grafana ?
Grafana, Prometheus, InfluxDB, Loki — ce sont d'excellents outils pour les flottes. Pour un Mac, la surcharge opérationnelle est sauvagement disproportionnée. Il vous faudrait :
- Une instance Prometheus tournant localement (RAM, disque, port)
- Un exportateur personnalisé qui lit la sortie
proc_pidinfoounettop(quelqu'un doit l'écrire et le maintenir) - Grafana tournant localement (processus Java/Go, port, base de données)
- Des tableaux de bord à créer et versionner
- Une raison de se connecter au tableau de bord régulièrement (vous ne le ferez pas)
Après l'éclat initial du samedi après-midi, la pile pourrit. Vous mettez à jour macOS et l'exportateur casse. Grafana demande une réinitialisation de mot de passe. Vous l'oubliez pendant trois semaines et ratez l'anomalie même pour laquelle vous l'aviez construite.
Une application en barre de menu reste à l'écart. Vous voyez le débit chaque fois que vous jetez un œil à l'horloge. Le flux du tableau de bord de bande passante macOS est intégré à votre routine, pas un site web qu'il faut se rappeler de visiter.
Configuration étape par étape
Concrètement, voici comment assembler votre tableau de bord en 15 minutes.
Étape 1 : installez l'application en barre de menu
Installez ova. Elle fait environ 3 Mo. Glissez-la dans Applications, lancez, autorisez la permission demandée pour lire les statistiques réseau, et c'est fait. Elle commence immédiatement à échantillonner à environ 1 Hz et à montrer le débit actuel dans la barre de menu.
Étape 2 : configurez l'affichage de la barre de menu
La plupart des outils de bande passante en barre de menu vous laissent choisir quoi afficher. Options courantes :
- Débit actuel descendant/montant (par exemple,
↓ 2,1 Mo/s ↑ 80 Ko/s) - Un petit sparkline de la dernière minute
- Juste une icône qui s'allume quand actif
Choisissez-en une. L'affichage à deux nombres est le plus dense. Le sparkline est le plus « consultable ». Pas de mauvaise réponse ; choisissez celui que vous lirez vraiment.
Étape 3 : épinglez quelques applications
Certains moniteurs vous laissent marquer certaines applications comme « surveillées » — elles apparaissent en premier dans la vue de répartition. Épingles utiles pour la plupart des gens :
- Le navigateur dans lequel vous vivez (Chrome, Safari, Arc, Firefox)
- Votre messagerie de travail (Slack, Discord, Teams)
- Vos outils de dev (Docker, VS Code, votre simulateur si vous faites du mobile)
- Synchro cloud (Dropbox, le
clouddd'iCloud, Google Drive)
Vous saurez en une semaine quelles applications vous voulez vraiment épinglées et lesquelles étaient optimistes.
Étape 4 : vérifiez que l'historique fonctionne
Tout l'intérêt de la couche récente est de pouvoir parcourir en arrière. Ouvrez la fenêtre contextuelle ou la fenêtre, choisissez une plage de temps comme « dernières 24 heures », et confirmez que vous voyez un graphique avec des pics et des creux. Sinon, l'application ne persiste pas les données et vous avez un nettop glorifié. Passez à un autre outil.
Étape 5 : programmez un export mensuel
Ajoutez un rappel calendrier pour le 1er du mois : « Exporter les données de bande passante, lancer le notebook heatmap ». Cinq minutes une fois par mois. C'est votre couche archivistique.
Que regarder
Une fois le tableau de bord en marche, voici les questions qui valent la peine d'être vérifiées à un rythme régulier.
Coup d'œil quotidien
Ouvrez la vue de répartition. Scannez à la recherche de surprises. Si Chrome est en haut, c'est normal. Si cloudd est en haut pendant les heures de travail, demandez pourquoi (probablement iCloud qui rattrape, possiblement Photos qui téléverse). Si quelque chose que vous ne reconnaissez pas est en haut, investiguez.
Hebdomadaire
Regardez le total par jour. Est-il cohérent ? Un pic 5x sur un seul jour signifie soit que vous avez fait quelque chose de différent (téléchargé un jeu, eu un gros appel) soit que quelque chose d'automatique a tourné (Time Machine vers une cible distante, mise à jour système).
Mensuel
Lancez la heatmap. Top applications par mois. Comparez au mois précédent. Les tendances dans le temps vous disent si votre bande passante grimpe — généralement à cause d'une nouvelle application que vous avez oublié de remettre en question.
Voyez ova en action
Un moniteur de bande passante en barre de menu consultable d'un coup d'œil — local, signé, ~3 Mo.
Un exemple concret
Un vrai motif de la configuration d'un utilisateur :
- Débit en direct : petit sparkline dans la barre de menu. Les coups d'œil coûtent zéro temps.
- Vue par application : liée à un raccourci qui ouvre la fenêtre contextuelle ova.
- Vérification hebdomadaire : chaque vendredi après-midi, l'utilisateur ouvre la vue 7 jours et note les trois principales applications. Tout ce qui figure dans le top 3 qui n'y était pas le vendredi précédent reçoit une phrase dans son journal expliquant pourquoi.
- Export mensuel : un job launchd dépose un CSV le 1er de chaque mois. Un petit notebook Observable trace la heatmap et la liste top-10 par application. Temps total : 90 secondes, une fois par mois.
C'est tout le système. Pas de Prometheus, pas de Grafana, pas de reverse proxy, pas d'auth, pas de ports, pas de logs à faire tourner. Le « tableau de bord » est la barre de menu plus un notebook qui s'ouvre une fois par mois.
Quand vous avez vraiment besoin d'un serveur
Il y a des cas où une pile centralisée est correcte :
- Vous gérez plusieurs Macs (une petite équipe, un foyer, une flotte de machines de build)
- Vous voulez des corrélations avec des données non-Mac (logs de routeur, trafic domotique, usage VPN du travail)
- Vous avez un vrai besoin d'alerte temps réel (« réveille-moi si l'upload dépasse 100 Mo/s pendant plus de cinq minutes »)
Ces cas justifient le coût opérationnel. Pour un Mac personnel, non.
Pour conclure
Un tableau de bord de bande passante macOS que les utilisateurs ouvriront vraiment n'a pas besoin d'une pile. Il a besoin d'une application en barre de menu qui montre toujours le débit actuel, une répartition par application pour quand quelque chose semble bizarre, et un chemin d'export pour la rare plongée profonde. C'est tout.
Si vous voulez la version simple, installez ova — environ 3 Mo, macOS 14 et ultérieur, échantillonne à environ 1 Hz, toutes les données restent dans ~/Library/Application Support/ova/ sur votre machine, pas de compte requis, paiement unique avec mises à jour à vie et remboursement de 14 jours. Cinq minutes du téléchargement au tableau de bord, pas un fichier compose en vue.