UpstatePhoenix.Jobs (upstate_phoenix v0.1.1)

Copy Markdown View Source

The jobs section, read from Oban's oban_jobs table with one aggregate query through the repo and prefix of the running Oban instance. Job-only nodes therefore do not need to be scraped: any web container reports the shared queue.

  • queue_depth - jobs available, plus scheduled jobs whose time has come.
  • oldest_queued_age_seconds - age of the oldest of those, from scheduled_at.
  • processed_last_5m - jobs completed in the last 5 minutes.
  • failed_last_5m - jobs discarded in the last 5 minutes, plus retryable jobs whose failed attempt started in the last 5 minutes.
  • recent_processing_at - the latest attempted_at or completed_at.
  • workers - nil. Oban has no per-node heartbeat table outside Oban Pro.

Counts only: no queue names, worker names, args, errors or meta are read.

The counts see only rows still in oban_jobs. If Oban.Plugins.Pruner keeps jobs for less than 5 minutes (its default max_age is 60 seconds), processed and failed counts are undercounted.

Postgres only (the Basic and Pro Smart engines). Oban on SQLite or MySQL reports the adapter "unsupported" with no numbers.