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

@@ -630,7 +630,7 @@ const docTemplate = `{
}
},
"/jobs/{id}": {
"get": {
"post": {
"security": [
{
"ApiKeyAuth": []
@@ -672,7 +672,7 @@ const docTemplate = `{
"200": {
"description": "Job resource",
"schema": {
"$ref": "#/definitions/schema.JobMeta"
"$ref": "#/definitions/api.GetJobApiResponse"
}
},
"400": {
@@ -775,6 +775,20 @@ const docTemplate = `{
}
}
},
"api.GetJobApiResponse": {
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"$ref": "#/definitions/api.JobMetricWithName"
}
},
"meta": {
"$ref": "#/definitions/schema.Job"
}
}
},
"api.GetJobsApiResponse": {
"type": "object",
"properties": {
@@ -795,6 +809,20 @@ const docTemplate = `{
}
}
},
"api.JobMetricWithName": {
"type": "object",
"properties": {
"metric": {
"$ref": "#/definitions/schema.JobMetric"
},
"name": {
"type": "string"
},
"scope": {
"$ref": "#/definitions/schema.MetricScope"
}
}
},
"api.StartJobApiResponse": {
"type": "object",
"properties": {
@@ -1154,6 +1182,26 @@ const docTemplate = `{
}
}
},
"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": [
@@ -1204,6 +1252,41 @@ const docTemplate = `{
}
}
},
"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",
@@ -1232,6 +1315,58 @@ const docTemplate = `{
}
}
},
"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",