From eaa826bb8ac74c1621496a19d08bf81ad08c0546 Mon Sep 17 00:00:00 2001 From: Christoph Kluge Date: Tue, 11 Feb 2025 10:57:04 +0100 Subject: [PATCH] adds centralized rounding of series stats in dataLoader - Fixed to two digit precision --- internal/metricDataDispatcher/dataLoader.go | 3 +++ pkg/schema/metrics.go | 15 +++++++++++++++ 2 files changed, 18 insertions(+) diff --git a/internal/metricDataDispatcher/dataLoader.go b/internal/metricDataDispatcher/dataLoader.go index 939a0fb..c3291a1 100644 --- a/internal/metricDataDispatcher/dataLoader.go +++ b/internal/metricDataDispatcher/dataLoader.go @@ -170,6 +170,9 @@ func LoadData(job *schema.Job, jd.AddNodeScope("mem_bw") } + // Round Resulting Stat Values + jd.RoundMetricStats() + return jd, ttl, size }) diff --git a/pkg/schema/metrics.go b/pkg/schema/metrics.go index bbc3c74..ffac21b 100644 --- a/pkg/schema/metrics.go +++ b/pkg/schema/metrics.go @@ -291,6 +291,21 @@ func (jd *JobData) AddNodeScope(metric string) bool { return true } +func (jd *JobData) RoundMetricStats() { + // TODO: Make Digit-Precision Configurable? (Currently: Fixed to 2 Digits) + for _, scopes := range *jd { + for _, jm := range scopes { + for index := range jm.Series { + jm.Series[index].Statistics = MetricStatistics{ + Avg: (math.Round(jm.Series[index].Statistics.Avg*100) / 100), + Min: (math.Round(jm.Series[index].Statistics.Min*100) / 100), + Max: (math.Round(jm.Series[index].Statistics.Max*100) / 100), + } + } + } + } +} + func (jm *JobMetric) AddPercentiles(ps []int) bool { if jm.StatisticsSeries == nil { jm.AddStatisticsSeries()