initial jobs dashboard

This commit is contained in:
allanice001
2025-09-23 05:33:20 +01:00
parent c50fc1540a
commit 4ee03d5409
27 changed files with 2218 additions and 205 deletions

View File

@@ -337,6 +337,78 @@ definitions:
status:
type: string
type: object
jobs.EnqueueReq:
type: object
jobs.EnqueueResp:
properties:
id:
type: string
type: object
jobs.JobListItem:
properties:
id:
type: string
last_error:
type: string
max_retry:
type: integer
queue_name:
type: string
retry_count:
type: integer
scheduled_at:
type: string
started_at:
type: string
status:
type: string
updated_at:
type: string
type: object
jobs.KPI:
properties:
dueNow:
format: int64
type: integer
failed24h:
format: int64
type: integer
retryable:
format: int64
type: integer
runningNow:
format: int64
type: integer
scheduledFuture:
format: int64
type: integer
succeeded24h:
format: int64
type: integer
type: object
jobs.QueueRollup:
properties:
avgDurationSecs:
format: float64
type: number
failed24h:
format: int64
type: integer
queueName:
type: string
queuedDue:
format: int64
type: integer
queuedFuture:
format: int64
type: integer
running:
format: int64
type: integer
success24h:
format: int64
type: integer
type: object
labels.addLabelToPoolRequest:
properties:
node_pool_ids:
@@ -2191,6 +2263,230 @@ paths:
summary: Detach one node pool from a cluster (org scoped)
tags:
- clusters
/api/v1/jobs/{id}/cancel:
post:
consumes:
- application/json
description: Cancels running or scheduled jobs
parameters:
- description: Job ID
in: path
name: id
required: true
type: string
produces:
- application/json
responses:
"204":
description: no content
schema:
type: string
"400":
description: bad request
schema:
type: string
"401":
description: unauthorized
schema:
type: string
"404":
description: not found
schema:
type: string
"500":
description: internal error
schema:
type: string
security:
- BearerAuth: []
summary: Cancel a job
tags:
- jobs
/api/v1/jobs/{id}/retry:
post:
consumes:
- application/json
description: Calls Archer ScheduleNow on the job id
parameters:
- description: Job ID
in: path
name: id
required: true
type: string
produces:
- application/json
responses:
"204":
description: no content
schema:
type: string
"400":
description: bad request
schema:
type: string
"401":
description: unauthorized
schema:
type: string
"404":
description: not found
schema:
type: string
"500":
description: internal error
schema:
type: string
security:
- BearerAuth: []
summary: Retry a job immediately
tags:
- jobs
/api/v1/jobs/active:
get:
description: Currently running jobs (limit default 100)
parameters:
- default: 100
description: Max rows
in: query
name: limit
type: integer
produces:
- application/json
responses:
"200":
description: OK
schema:
items:
$ref: '#/definitions/jobs.JobListItem'
type: array
"401":
description: unauthorized
schema:
type: string
"500":
description: internal error
schema:
type: string
security:
- BearerAuth: []
summary: Active jobs
tags:
- jobs
/api/v1/jobs/enqueue:
post:
consumes:
- application/json
description: Schedules a job on a queue with optional args/schedule
parameters:
- description: Enqueue request
in: body
name: payload
required: true
schema:
$ref: '#/definitions/jobs.EnqueueReq'
produces:
- application/json
responses:
"202":
description: Accepted
schema:
$ref: '#/definitions/jobs.EnqueueResp'
"400":
description: bad request
schema:
type: string
"401":
description: unauthorized
schema:
type: string
"500":
description: internal error
schema:
type: string
security:
- BearerAuth: []
summary: Manually enqueue a job
tags:
- jobs
/api/v1/jobs/failures:
get:
description: Failed jobs ordered by most recent (limit default 100)
parameters:
- default: 100
description: Max rows
in: query
name: limit
type: integer
produces:
- application/json
responses:
"200":
description: OK
schema:
items:
$ref: '#/definitions/jobs.JobListItem'
type: array
"401":
description: unauthorized
schema:
type: string
"500":
description: internal error
schema:
type: string
security:
- BearerAuth: []
summary: Recent failures
tags:
- jobs
/api/v1/jobs/kpi:
get:
description: Aggregated counters across all queues
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/jobs.KPI'
"401":
description: unauthorized
schema:
type: string
"500":
description: internal error
schema:
type: string
security:
- BearerAuth: []
summary: Jobs KPI
tags:
- jobs
/api/v1/jobs/queues:
get:
description: Counts and avg duration per queue (last 24h)
produces:
- application/json
responses:
"200":
description: OK
schema:
items:
$ref: '#/definitions/jobs.QueueRollup'
type: array
"401":
description: unauthorized
schema:
type: string
"500":
description: internal error
schema:
type: string
security:
- BearerAuth: []
summary: Per-queue rollups
tags:
- jobs
/api/v1/labels:
get:
consumes: