Ecrire l'agent local de collecte (agent/push-metrics.js + run-push.sh) #15
Labels
No labels
autopilot:pending-human
source:analyste
source:defenseur
source:human
source:medic
status:approved
status:blocked
status:in-progress
status:needs-clarification
status:needs-fix
status:ready
status:review
status:triage
type:bug
type:feature
type:infra
type:refactor
type:schema
type:security
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: maximus/vps-health-api#15
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Agent 0-dependance qui collecte les metriques du poste et les pousse vers l'API. Tourne par cron toutes les 5 minutes sur le ThinkPad. L'installation reelle (fichier env, crontab) releve de l'issue de mise en service, pas de celle-ci.
Fichiers concernes
agent/push-metrics.js(creer)agent/run-push.sh(creer)agent/README.md(creer)Depends on
Criteres d'acceptation
push-metrics.jsreutilisecollectMetrics()demetrics.js, POST avec timeout de 10 s, sortie en code non nul et message clair en cas d'echecrun-push.shsource~/.config/maximus-host-agent.env(chmod 600) et s'arrete proprement siHOSTS_API_URL,HOSTS_INGEST_TOKENouHOST_IDmanqueerr.codeet le code HTTP — jamais les options de requete ni les en-tetes ;set -xinterdit dansrun-push.shagent/README.mddocumente l'installation sur un nouveau poste : fichier env, ligne de crontab, essai a blanc, et le fait que deux postes partageant le memeHOST_IDs'ecrasent mutuellement (signal a surveiller : unhostnamequi change a chaque tour)agent/reste hors de l'image Docker (verifier leCOPY)Review caveats
run-push.shpipe sa sortie verslogger -t host-agent. Un handler d'echec qui dumpe les options de requete ou un objet d'erreur portant l'en-teteAuthorizationpersiste le token dans/var/log/sysloget journald.metrics.jsne garantit PAS l'absence de derive en production — le serveur se deploie par trigger manuel et l'agent tournerait depuis un working tree. Le cron doit pointer vers une copie figee (~/.local/share/maximus-host-agent/), pas vers le depot. La vraie garantie du contrat reste la validation de payload cote serveur.Decisions prises en planification
os.freemem()retourneMemAvailable(7,8 G) et nonMemFree(0,8 G) — le calcul degetHealth()est donc juste sur un poste charge de cache page, aucune lecture manuelle de/proc/meminfon'est necessaire.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 5)