From 4e2c6bce0dda2263806810456e6c8e2f72f51022 Mon Sep 17 00:00:00 2001 From: Mike Willbanks Date: Wed, 7 Dec 2016 15:59:01 -0600 Subject: [PATCH] Metrics: Calculation set to average always sums This commit is two part: 1. getActiveValueAttribute should always return the active attribute without providing an average since the active is the current value. 2. The query to create the average was incorrect and was taking the count value * the value which we are really looking for the average of the value. --- app/Models/MetricPoint.php | 2 -- app/Repositories/Metric/AbstractMetricRepository.php | 2 +- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/app/Models/MetricPoint.php b/app/Models/MetricPoint.php index db0daf37d9a3..89d531013cf0 100644 --- a/app/Models/MetricPoint.php +++ b/app/Models/MetricPoint.php @@ -83,8 +83,6 @@ public function getActiveValueAttribute($value) { if ($this->metric->calc_type === Metric::CALC_SUM) { return round((float) $value * $this->counter, $this->metric->places); - } elseif ($this->metric->calc_type === Metric::CALC_AVG) { - return round((float) $value * $this->counter, $this->metric->places); } return round((float) $value, $this->metric->places); diff --git a/app/Repositories/Metric/AbstractMetricRepository.php b/app/Repositories/Metric/AbstractMetricRepository.php index f63f3e0fc0ea..4c14cc6b6888 100644 --- a/app/Repositories/Metric/AbstractMetricRepository.php +++ b/app/Repositories/Metric/AbstractMetricRepository.php @@ -85,7 +85,7 @@ protected function getQueryType(Metric $metric) if (!isset($metric->calc_type) || $metric->calc_type == Metric::CALC_SUM) { return "sum({$this->getMetricPointsTable()}.value * {$this->getMetricPointsTable()}.counter) AS value"; } elseif ($metric->calc_type == Metric::CALC_AVG) { - return "avg({$this->getMetricPointsTable()}.value * {$this->getMetricPointsTable()}.counter) AS value"; + return "avg({$this->getMetricPointsTable()}.value) AS value"; } else { return "sum({$this->getMetricPointsTable()}.value * {$this->getMetricPointsTable()}.counter) AS value"; }