mirror of
				https://github.com/ClusterCockpit/cc-backend
				synced 2025-11-04 01:25:06 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			171 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			GraphQL
		
	
	
	
	
	
			
		
		
	
	
			171 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			GraphQL
		
	
	
	
	
	
type Job {
 | 
						|
  id: ID!
 | 
						|
  jobId: String!
 | 
						|
  userId: String!
 | 
						|
  projectId: String!
 | 
						|
  clusterId: String!
 | 
						|
  startTime: Time!
 | 
						|
  duration: Int!
 | 
						|
  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!, selectMetrics: [String]): [JobMetricWithName]!
 | 
						|
}
 | 
						|
 | 
						|
input StartJobInput {
 | 
						|
  jobId: String!
 | 
						|
  userId: String!
 | 
						|
  projectId: String!
 | 
						|
  clusterId: String!
 | 
						|
  startTime: Time!
 | 
						|
  numNodes: Int!
 | 
						|
}
 | 
						|
 | 
						|
input StopJobInput {
 | 
						|
  stopTime: Time!
 | 
						|
}
 | 
						|
 | 
						|
input AddJobInput {
 | 
						|
  jobId: String!
 | 
						|
  userId: String!
 | 
						|
  projectId: String!
 | 
						|
  clusterId: String!
 | 
						|
  startTime: Time!
 | 
						|
  duration: Int!
 | 
						|
  numNodes: Int!
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
input JobFilterList {
 | 
						|
  list: [JobFilter]
 | 
						|
}
 | 
						|
 | 
						|
input JobFilter {
 | 
						|
  jobId: StringInput
 | 
						|
  userId: StringInput
 | 
						|
  projectId: StringInput
 | 
						|
  clusterId: StringInput
 | 
						|
  duration: IntRange
 | 
						|
  numNodes: IntRange
 | 
						|
  startTime: TimeRange
 | 
						|
  hasProfile: Boolean
 | 
						|
}
 | 
						|
 | 
						|
input OrderByInput {
 | 
						|
  field: String!
 | 
						|
  order: SortDirectionEnum = ASC
 | 
						|
}
 | 
						|
 | 
						|
enum SortDirectionEnum {
 | 
						|
  DESC
 | 
						|
  ASC
 | 
						|
}
 | 
						|
 | 
						|
input StringInput {
 | 
						|
  eq: String
 | 
						|
  contains: String
 | 
						|
  startsWith: String
 | 
						|
  endsWith: String
 | 
						|
}
 | 
						|
 | 
						|
input IntRange {
 | 
						|
  from: Int!
 | 
						|
  to: Int!
 | 
						|
}
 | 
						|
 | 
						|
input FloatRange {
 | 
						|
  from: Float!
 | 
						|
  to: Float!
 | 
						|
}
 | 
						|
 | 
						|
input TimeRange {
 | 
						|
  from: Time!
 | 
						|
  to: Time!
 | 
						|
}
 | 
						|
 | 
						|
type JobResultList {
 | 
						|
  items: [Job]!
 | 
						|
  offset: Int
 | 
						|
  limit: Int
 | 
						|
  count: Int
 | 
						|
}
 | 
						|
 | 
						|
type JobMetricWithName {
 | 
						|
  name: String!
 | 
						|
  metric: JobMetric!
 | 
						|
}
 | 
						|
 | 
						|
type HistoPoint {
 | 
						|
  count: Int!
 | 
						|
  value: Int!
 | 
						|
}
 | 
						|
 | 
						|
type JobsStatistics  {
 | 
						|
  totalJobs: Int!
 | 
						|
  shortJobs: Int!
 | 
						|
  totalWalltime: Int!
 | 
						|
  totalCoreHours: Int!
 | 
						|
  histWalltime: [HistoPoint]!
 | 
						|
  histNumNodes: [HistoPoint]!
 | 
						|
}
 | 
						|
 | 
						|
input PageRequest {
 | 
						|
  itemsPerPage: Int
 | 
						|
  page: Int
 | 
						|
}
 | 
						|
 | 
						|
scalar Time
 |