Files
wyndham-ARR/.project-docs/50-evidence/topics/2026-08-03-monthly-worker-observability.md
2026-08-03 16:08:14 +08:00

25 lines
1.4 KiB
Markdown

# Monthly worker logging and observability gap
## Scope
Review of the logging and monitoring surfaces after user-authorized recovery of the independent monthly worker.
## Confirmed gaps
- The worker emits sparse JSON outcomes only when it is not idle; it does not emit startup, heartbeat, claim, duration or
private exception-detail records. Detached Screen is the current process owner and is not durable application logging.
- Web request logs go through the standard handler's stderr logger with path-only request data. The checked-in local
runtime has no service-specific rotating log file.
- Anonymous `/healthz` checks Web database/upload readiness only. Authenticated `monthly_ready` describes Web's manual
monthly coordinator, not the separate worker process.
- PostgreSQL outbox status and the daily task trace are durable and privacy-minimized, but they cannot prove the worker
is alive. The trace also uses generic downstream wording for the monthly event.
## Recommendation
Add structured worker/Web logs with bounded retention, a durable worker heartbeat/status surface, monthly-specific task
trace states, and supervisor/alert checks for stale heartbeat, old pending events, expired leases and dead events. Keep
database lifecycle state authoritative and keep raw business/source payloads, secrets and full hashes out of logs.
No code, migration, supervisor or runtime change was made during this review.