Moniteur Systeme
Presentation
Objectif principal : Un moniteur systeme style Task Manager mais cross-platform. Afficher CPU, RAM, disque, reseau en temps reel. Liste des processus avec possibilite de les tuer. Graphiques d'historique.
Technologies utilisees : Java avec OSHI (Operating System and Hardware Information) pour acceder aux infos systeme de maniere portable. JavaFX pour l'interface avec charts. ScheduledExecutorService pour le polling.
Fonctionnalites cles : Usage CPU par core, RAM utilisee/libre/cache, I/O disque, traffic reseau par interface, liste des processus triable, kill process, alertes si seuils depasses.
Livrables attendus : Application desktop avec dashboard. Fonctionne sur Windows, Linux et Mac. Systray pour monitoring en arriere-plan.
Calendrier previsionnel : Deux semaines. OSHI fait le gros du travail, le plus long c'etait l'interface.
Parties prenantes & criteres de succes : Projet perso parce que le Task Manager de Windows montre pas tout ce que je veux, et htop existe pas sur Windows.
Le Defi
Le polling frequent (1 seconde) qui ne doit pas consommer trop de CPU lui-meme. Et l'affichage de graphiques en temps reel sans memory leak (faut virer les vieilles donnees). Plus le kill process qui demande des permissions admin.
La Solution
Le polling se fait dans un thread separe avec un interval configurable. Les graphiques ont une fenetre glissante (5 minutes max). Pour le kill, je demande l'elevation de privileges si necessaire (UAC sur Windows, sudo sur Linux).
Architecture Technique
Module SystemInfo qui wrappe OSHI et expose les metriques. Module DataStore qui garde l'historique en ring buffer. Module UI avec plusieurs onglets (Overview, CPU, Memory, Disk, Network, Processes). Pattern Observer entre SystemInfo et UI. Module Alerts qui check les seuils et notifie.
Points Cles
- Cross-platform (Win/Linux/Mac)
- Graphiques temps reel
- Gestion des processus
Apercu
Resultats & Apprentissages
L'app est utile, je l'utilise regulierement. OSHI c'est une super library, ca abstrait toutes les differences entre OS. J'ai appris comment le systeme expose ses metriques (procfs sur Linux, WMI sur Windows).
Evolutions Futures
Monitoring de machines distantes via SSH. Export des metriques vers Prometheus/Grafana. Historique long terme en base de donnees. Detection d'anomalies avec ML basique.