Extraire la collecte de metriques vers metrics.js #11

Closed
opened 2026-08-15 20:09:17 +00:00 by maximus · 0 comments
Owner

Sortir la collecte CPU / RAM / disque de index.js vers un module metrics.js partage entre le serveur et le futur agent local. Aucun changement de comportement attendu : cette issue est le point de bissection avant le refactor de routage qui suit.

Fichiers concernes

  • metrics.js (creer)
  • index.js (modifier)
  • Dockerfile (modifier)

Depends on

  • aucune

Criteres d'acceptation

  • metrics.js expose getCpuPercent, getDisk, collectMetrics ; getHealth() s'appuie dessus
  • Le COPY du Dockerfile inclut metrics.js — il ne copie aujourd'hui que package.json index.js, et l'oublier fait planter le conteneur au demarrage
  • getHealth() conserve Promise.all([collectMetrics(), getLogtoHealth()])
  • GET /health repond champ pour champ a l'identique avant et apres
  • GET /health repond sous ~1,5 s avec un Logto lent simule
  • npm test passe (14 tests existants inchanges)

Review caveats

  • TECHNIQUE (MEDIUM) : l'echantillon CPU de 500 ms et le controle Logto de 3 s sont deliberement concurrents (index.js:215-218, commentaire d'avertissement a index.js:58-59). Une extraction naive les serialise et fait grimper le p99 de /health jusqu'a 3 s. Une comparaison de champs seule ne verrait rien : d'ou l'assertion de latence.

Decisions prises en planification

  • Issue volontairement isolee et sans changement de comportement : le service n'a pas d'auto-deploy et sert un dashboard en production, il faut pouvoir bissecter si quelque chose casse apres le redeploy manuel.

Spec source

la-compagnie-maximus/spec-plan-monitoring-postes.md + spec-decisions-monitoring-postes.md (depot different : ce body est auto-suffisant, ne pas compter sur le fichier) (Issue 1)

Sortir la collecte CPU / RAM / disque de `index.js` vers un module `metrics.js` partage entre le serveur et le futur agent local. Aucun changement de comportement attendu : cette issue est le point de bissection avant le refactor de routage qui suit. ## Fichiers concernes - `metrics.js` (creer) - `index.js` (modifier) - `Dockerfile` (modifier) ## Depends on - aucune ## Criteres d'acceptation - [ ] `metrics.js` expose `getCpuPercent`, `getDisk`, `collectMetrics` ; `getHealth()` s'appuie dessus - [ ] Le `COPY` du Dockerfile inclut `metrics.js` — il ne copie aujourd'hui que `package.json index.js`, et l'oublier fait planter le conteneur au demarrage - [ ] `getHealth()` conserve `Promise.all([collectMetrics(), getLogtoHealth()])` - [ ] `GET /health` repond champ pour champ a l'identique avant et apres - [ ] `GET /health` repond sous ~1,5 s avec un Logto lent simule - [ ] `npm test` passe (14 tests existants inchanges) ## Review caveats - TECHNIQUE (MEDIUM) : l'echantillon CPU de 500 ms et le controle Logto de 3 s sont deliberement concurrents (`index.js:215-218`, commentaire d'avertissement a `index.js:58-59`). Une extraction naive les serialise et fait grimper le p99 de `/health` jusqu'a 3 s. Une comparaison de champs seule ne verrait rien : d'ou l'assertion de latence. ## Decisions prises en planification - Issue volontairement isolee et sans changement de comportement : le service n'a pas d'auto-deploy et sert un dashboard en production, il faut pouvoir bissecter si quelque chose casse apres le redeploy manuel. ## Spec source la-compagnie-maximus/spec-plan-monitoring-postes.md + spec-decisions-monitoring-postes.md (depot different : ce body est auto-suffisant, ne pas compter sur le fichier) (Issue 1)
maximus added this to the planned-2026-08-15-monitoring-postes milestone 2026-08-15 20:09:17 +00:00
maximus added the
status:ready
type:refactor
source:human
labels 2026-08-15 20:09:17 +00:00
maximus added
status:review
and removed
status:ready
labels 2026-08-16 15:30:57 +00:00
maximus added
status:approved
and removed
status:review
labels 2026-08-16 18:12:46 +00:00
Sign in to join this conversation.
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: maximus/vps-health-api#11
No description provided.