Files
Cibello-app/infrastructure/monitoring/README.md
T
2026-08-05 19:21:11 +07:00

43 lines
2.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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.