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.