Commit Graph

11 Commits

Author SHA1 Message Date
Gilles Soulier 331415bbab fix(agent): filtrage CPU/RAM par config + nettoyage commentaires
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-22 11:49:05 +02:00
Gilles Soulier 12203f453f feat(agent): service systemd DynamicUser + documentation déploiement
- Ajoute deploy/nanometrics-agent.service avec DynamicUser, ProtectSystem,
  PrivateTmp, NoNewPrivileges et RestrictAddressFamilies
- Ajoute deploy/README.md avec procédure d'installation/désinstallation
- Corrige 3 avertissements clippy : iter_kv_map (network.rs) et
  collapsible_match (mqtt.rs)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-22 11:44:13 +02:00
Gilles Soulier 960fd02fd7 feat(agent): boucle principale avec timers 2s/10s/60s 2026-05-22 11:42:00 +02:00
Gilles Soulier a85e5cbee2 feat(agent): transport MQTT birth/LWT/subscribe config
Implémente le transport MQTT complet avec rumqttc 0.24 :
- Birth message (online) au ConnAck + subscribe config topic
- Last Will Testament (offline) configuré au connect
- Réception config agent via topic {base}/{hostname}/config
- publish_metrics helper pour envoyer les métriques
- Transport::Tcp forcé pour broker sans TLS (malgré use-native-tls feature)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-22 11:39:58 +02:00
Gilles Soulier 5ef0461e65 feat(agent): transport UDP fire-and-forget + test loopback 2026-05-22 11:37:45 +02:00
Gilles Soulier b53456dad8 feat(agent): collecte SMART via smartctl -j 2026-05-22 11:36:51 +02:00
Gilles Soulier b78788b931 feat(agent): métriques disque et température 2026-05-22 11:35:24 +02:00
Gilles Soulier 22212460fc feat(agent): métriques CPU, RAM, réseau, uptime
Implémentation complète des 4 modules sysinfo 0.30 (sans default-features).
- cpu: moyenne sur tous les cœurs via refresh_cpu_usage()
- memory: used/free/total via System
- network: total_received/total_transmitted via Networks
- uptime: System::uptime() statique
10 tests unitaires passent.
2026-05-22 11:34:30 +02:00
Gilles Soulier 91c5f15d4c feat(agent): config struct avec valeurs par défaut MQTT + tests
TDD : 3 tests d'intégration écrits en premier (config_test.rs), puis
implémentation MqttConfig avec default_mqtt_host/port/topic_base pour
garantir des valeurs par défaut même si la section [protocols.mqtt] est
minimale dans le TOML.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-22 11:30:46 +02:00
Gilles Soulier 3f5c735507 feat(agent): setup Cargo.toml et structure complète
Initialise la structure de l'agent Rust avec tous les modules stub :
config, payload, metrics (cpu/memory/disk/network/uptime/temperature/smart),
transport (udp/mqtt). Corrige les features sysinfo 0.30 (pas de feature
disk/networks séparées). Compile sans erreurs.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-22 08:21:34 +02:00
Gilles Soulier 395e006014 1 2026-05-22 08:19:27 +02:00