Serve job metric data via GraphQL

This commit is contained in:
Lou Knauer
2021-04-07 09:19:21 +02:00
parent 4273878e9b
commit a52445086b
6 changed files with 2164 additions and 5 deletions

View File

@@ -9,10 +9,60 @@ type Job {
numNodes: Int!
}
type JobData {
load_one: JobMetric
mem_used: JobMetric
mem_bw: JobMetric
flops_any: JobMetric
flops_dp: JobMetric
flops_sp: JobMetric
cpi_avg: JobMetric
clock_speed: JobMetric
total_power: JobMetric
traffic_read_eth: JobMetric
traffic_write_eth: JobMetric
traffic_read_lustre: JobMetric
traffic_write_lustre: JobMetric
reg_read_lustre: JobMetric
reg_write_lustre: JobMetric
inodes_lustre: JobMetric
pkg_rate_read_ib: JobMetric
pkg_rate_write_ib: JobMetric
congestion_ib: JobMetric
}
type JobMetric {
unit: String!
scope: JobMetricScope!
timestep: Int!
series: [JobMetricSeries]!
}
enum JobMetricScope {
node
cpu
socket
}
type JobMetricSeries {
node_id: String!
statistics: JobMetricStatistics
data: [Float]!
}
type JobMetricStatistics {
avg: Float!
min: Float!
max: Float!
}
type Query {
jobById(jobId: String!): Job
jobs(filter: JobFilterList, page: PageRequest, order: OrderByInput): JobResultList!
jobsStatistics(filter: JobFilterList): JobsStatistics!
jobDataById(jobId: String!): JobData
jobAvailableMetricsById(jobId: String!): [JobMetricWithName]!
}
input StartJobInput {
@@ -93,6 +143,11 @@ type JobResultList {
count: Int
}
type JobMetricWithName {
name: String!
metric: JobMetric!
}
type HistoPoint {
count: Int!
value: Int!