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

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 /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.