2024-04-11 23:04:30 +02:00
|
|
|
// Copyright (C) NHR@FAU, University Erlangen-Nuremberg.
|
2023-05-15 14:32:23 +02:00
|
|
|
// All rights reserved.
|
|
|
|
// Use of this source code is governed by a MIT-style
|
|
|
|
// license that can be found in the LICENSE file.
|
|
|
|
package util
|
|
|
|
|
2024-07-04 14:14:27 +02:00
|
|
|
import (
|
|
|
|
"github.com/ClusterCockpit/cc-backend/pkg/schema"
|
|
|
|
"golang.org/x/exp/constraints"
|
|
|
|
)
|
2023-05-15 14:32:23 +02:00
|
|
|
|
|
|
|
func Min[T constraints.Ordered](a, b T) T {
|
|
|
|
if a < b {
|
|
|
|
return a
|
|
|
|
}
|
|
|
|
return b
|
|
|
|
}
|
|
|
|
|
|
|
|
func Max[T constraints.Ordered](a, b T) T {
|
|
|
|
if a > b {
|
|
|
|
return a
|
|
|
|
}
|
|
|
|
return b
|
|
|
|
}
|
2024-07-04 14:14:27 +02:00
|
|
|
|
|
|
|
func LoadJobStat(job *schema.JobMeta, metric string) float64 {
|
|
|
|
if stats, ok := job.Statistics[metric]; ok {
|
|
|
|
if metric == "mem_used" {
|
|
|
|
return stats.Max
|
|
|
|
} else {
|
|
|
|
return stats.Avg
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
return 0.0
|
|
|
|
}
|