1.4 KiB
1.4 KiB
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
/healthzchecks Web database/upload readiness only. Authenticatedmonthly_readydescribes 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.