Skip to main content

MarketDataBackfillProgress

Aggregated backfill/upfill progress for one runner. Drives the dashboard's "Data availability" panel: chips for pending/running/failed/ done, a split between backfill (history extension) and upfill (catch-up), and a per-exchange rollup.

type MarketDataBackfillProgress {
runnerID: ID!
totalPending: Int!
totalRunning: Int!
totalFailed: Int!
totalDone: Int!
backfillPending: Int!
upfillPending: Int!
oldestPendingCreatedAt: Float!
byExchange: [MarketDataBackfillProgressByExchange!]!
}

Fields

MarketDataBackfillProgress.runnerID ● ID! non-null scalar

The runner this progress summary applies to.

MarketDataBackfillProgress.totalPending ● Int! non-null scalar

Total jobs across all statuses are implied by pending+running+failed+done.

MarketDataBackfillProgress.totalRunning ● Int! non-null scalar

MarketDataBackfillProgress.totalFailed ● Int! non-null scalar

MarketDataBackfillProgress.totalDone ● Int! non-null scalar

MarketDataBackfillProgress.backfillPending ● Int! non-null scalar

Jobs classified as history extension (startMs earlier than existing data) that are still pending or running. Used for the "Fetching historical data" section header count.

MarketDataBackfillProgress.upfillPending ● Int! non-null scalar

Jobs classified as incremental catch-up (window ends after existing data's last candle) that are still pending or running. Drives the "Catching up to current time" section header count.

MarketDataBackfillProgress.oldestPendingCreatedAt ● Float! non-null scalar

UNIX ms of the oldest pending row's createdAt. Zero when no rows are pending. The dashboard uses this to highlight queues that have been stuck for an unusually long time.

MarketDataBackfillProgress.byExchange ● [MarketDataBackfillProgressByExchange!]! non-null object

Alphabetical rollup by exchange for per-exchange chips.

Returned By

marketDataBackfillProgress query