Files
2026-08-05 19:21:11 +07:00

2.4 KiB
Raw Permalink Blame History

Monitoring & observability (spec §58)

Mät- och larmpunkter

Signal Källa Larmtröskel (initial)
API-fel (5xx-andel) API-loggar (pino) → CloudWatch > 2 % över 5 min
API-latens p95 reverse proxy-loggar > 1 500 ms över 10 min
Workerfel worker-loggar (-rader) > 5 fel / 10 min
Köns längd GET /admin/v1/jobs/overview (queue.waiting) > 100 väntande i 10 min
Outbox-eftersläp samma endpoint (outboxPending) > 500 i 15 min
DB-anslutningar RDS CloudWatch > 80 % av max
Redis-minne Redis INFO > 80 % av maxmemory
AAMOS-hälsa GET /admin/v1/system/health (aamos.ok) fel i 3 kontroller i rad
AI-kostnad scan_jobs.cost_usd summerat per dag > budgettak per dag
Subscription-webhooks store_notifications (processed=false ålder) äldst > 30 min
Sync-konflikter app-telemetri (senare fas)
Abuse rate limit-träffar per IP manuell granskning

Correlation ID

Varje request får/vidarebefordrar x-correlation-id (spec §58). ID:t följer med i: API-loggar → jobbdata → AAMOS-anrop (metadata.correlationId) → audit logs. Sök på ID:t i loggarna för att följa ett flöde genom hela systemet.

Healthchecks

  • GET /healthz liveness (alltid 200 när processen lever)
  • GET /readyz readiness (DB-ping; 503 vid fel)
  • Docker HEALTHCHECK på API-containern
  • GET /admin/v1/system/health DB, Redis, AAMOS, connectors (admin-token)

Steg 1-implementation (befintlig server)

  1. CloudWatch Agent läser Docker json-file-loggar under /var/lib/docker/containers.
  2. Metric filters på "level":50 (error) och -rader → larm till befintlig SNS-kanal.
  3. Cron-jobb kör curl /readyz varje minut → larm efter 3 fel.

Steg 3 (egen VPC/ECS)

CloudWatch Container Insights + RDS Performance Insights + strukturerade loggar till CloudWatch Logs Insights. Dashboards definieras som kod i denna katalog.