Add job metricdata rest endpoint

Fixes #102
This commit is contained in:
2023-06-14 15:03:01 +02:00
parent c662ced7e7
commit 54aa940d3e
4 changed files with 383 additions and 15 deletions

View File

@@ -624,7 +624,7 @@
}
},
"/jobs/{id}": {
"get": {
"post": {
"security": [
{
"ApiKeyAuth": []
@@ -666,7 +666,7 @@
"200": {
"description": "Job resource",
"schema": {
"$ref": "#/definitions/schema.JobMeta"
"$ref": "#/definitions/api.GetJobApiResponse"
}
},
"400": {
@@ -769,6 +769,20 @@
}
}
},
"api.GetJobApiResponse": {
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"$ref": "#/definitions/api.JobMetricWithName"
}
},
"meta": {
"$ref": "#/definitions/schema.Job"
}
}
},
"api.GetJobsApiResponse": {
"type": "object",
"properties": {
@@ -789,6 +803,20 @@
}
}
},
"api.JobMetricWithName": {
"type": "object",
"properties": {
"metric": {
"$ref": "#/definitions/schema.JobMetric"
},
"name": {
"type": "string"
},
"scope": {
"$ref": "#/definitions/schema.MetricScope"
}
}
},
"api.StartJobApiResponse": {
"type": "object",
"properties": {
@@ -1148,6 +1176,26 @@
}
}
},
"schema.JobMetric": {
"type": "object",
"properties": {
"series": {
"type": "array",
"items": {
"$ref": "#/definitions/schema.Series"
}
},
"statisticsSeries": {
"$ref": "#/definitions/schema.StatsSeries"
},
"timestep": {
"type": "integer"
},
"unit": {
"$ref": "#/definitions/schema.Unit"
}
}
},
"schema.JobState": {
"type": "string",
"enum": [
@@ -1198,6 +1246,41 @@
}
}
},
"schema.MetricScope": {
"type": "string",
"enum": [
"invalid_scope",
"node",
"socket",
"memoryDomain",
"core",
"hwthread",
"accelerator"
],
"x-enum-varnames": [
"MetricScopeInvalid",
"MetricScopeNode",
"MetricScopeSocket",
"MetricScopeMemoryDomain",
"MetricScopeCore",
"MetricScopeHWThread",
"MetricScopeAccelerator"
]
},
"schema.MetricStatistics": {
"type": "object",
"properties": {
"avg": {
"type": "number"
},
"max": {
"type": "number"
},
"min": {
"type": "number"
}
}
},
"schema.Resource": {
"description": "A resource used by a job",
"type": "object",
@@ -1226,6 +1309,58 @@
}
}
},
"schema.Series": {
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"type": "number"
}
},
"hostname": {
"type": "string"
},
"id": {
"type": "string"
},
"statistics": {
"$ref": "#/definitions/schema.MetricStatistics"
}
}
},
"schema.StatsSeries": {
"type": "object",
"properties": {
"max": {
"type": "array",
"items": {
"type": "number"
}
},
"mean": {
"type": "array",
"items": {
"type": "number"
}
},
"min": {
"type": "array",
"items": {
"type": "number"
}
},
"percentiles": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "number"
}
}
}
}
},
"schema.Tag": {
"description": "Defines a tag using name and type.",
"type": "object",

View File

@@ -42,6 +42,15 @@ definitions:
description: Statustext of Errorcode
type: string
type: object
api.GetJobApiResponse:
properties:
data:
items:
$ref: '#/definitions/api.JobMetricWithName'
type: array
meta:
$ref: '#/definitions/schema.Job'
type: object
api.GetJobsApiResponse:
properties:
items:
@@ -56,6 +65,15 @@ definitions:
description: Page id returned
type: integer
type: object
api.JobMetricWithName:
properties:
metric:
$ref: '#/definitions/schema.JobMetric'
name:
type: string
scope:
$ref: '#/definitions/schema.MetricScope'
type: object
api.StartJobApiResponse:
properties:
id:
@@ -338,6 +356,19 @@ definitions:
minimum: 1
type: integer
type: object
schema.JobMetric:
properties:
series:
items:
$ref: '#/definitions/schema.Series'
type: array
statisticsSeries:
$ref: '#/definitions/schema.StatsSeries'
timestep:
type: integer
unit:
$ref: '#/definitions/schema.Unit'
type: object
schema.JobState:
enum:
- running
@@ -379,6 +410,33 @@ definitions:
unit:
$ref: '#/definitions/schema.Unit'
type: object
schema.MetricScope:
enum:
- invalid_scope
- node
- socket
- memoryDomain
- core
- hwthread
- accelerator
type: string
x-enum-varnames:
- MetricScopeInvalid
- MetricScopeNode
- MetricScopeSocket
- MetricScopeMemoryDomain
- MetricScopeCore
- MetricScopeHWThread
- MetricScopeAccelerator
schema.MetricStatistics:
properties:
avg:
type: number
max:
type: number
min:
type: number
type: object
schema.Resource:
description: A resource used by a job
properties:
@@ -399,6 +457,40 @@ definitions:
type: integer
type: array
type: object
schema.Series:
properties:
data:
items:
type: number
type: array
hostname:
type: string
id:
type: string
statistics:
$ref: '#/definitions/schema.MetricStatistics'
type: object
schema.StatsSeries:
properties:
max:
items:
type: number
type: array
mean:
items:
type: number
type: array
min:
items:
type: number
type: array
percentiles:
additionalProperties:
items:
type: number
type: array
type: object
type: object
schema.Tag:
description: Defines a tag using name and type.
properties:
@@ -502,7 +594,7 @@ paths:
tags:
- query
/jobs/{id}:
get:
post:
consumes:
- application/json
description: |-
@@ -528,7 +620,7 @@ paths:
"200":
description: Job resource
schema:
$ref: '#/definitions/schema.JobMeta'
$ref: '#/definitions/api.GetJobApiResponse'
"400":
description: Bad Request
schema: