From 7e00b6fb88bbd965057bc035159e62a1aa5cdb14 Mon Sep 17 00:00:00 2001 From: Jordy van Dortmont Date: Tue, 27 Mar 2018 14:55:39 +0200 Subject: [PATCH 1/2] Fix superfluous metric point --- app/Repositories/Metric/MetricRepository.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Repositories/Metric/MetricRepository.php b/app/Repositories/Metric/MetricRepository.php index 987a3b34..a9d4e39f 100644 --- a/app/Repositories/Metric/MetricRepository.php +++ b/app/Repositories/Metric/MetricRepository.php @@ -63,7 +63,7 @@ class MetricRepository $pointKey = $dateTime->format('Y-m-d H:i'); $points = $this->repository->getPointsSinceMinutes($metric, 60)->pluck('value', 'key')->take(60); - for ($i = 0; $i <= 60; $i++) { + for ($i = 0; $i < 60; $i++) { if (!$points->has($pointKey)) { $points->put($pointKey, $metric->default_value); } From 190d951c51f9ff42ca2d0ab88d349b9011d5ed05 Mon Sep 17 00:00:00 2001 From: Jordy van Dortmont Date: Tue, 27 Mar 2018 16:02:46 +0200 Subject: [PATCH 2/2] Fix trailing default metric points #2539 --- app/Repositories/Metric/MetricRepository.php | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/app/Repositories/Metric/MetricRepository.php b/app/Repositories/Metric/MetricRepository.php index a9d4e39f..ba62662f 100644 --- a/app/Repositories/Metric/MetricRepository.php +++ b/app/Repositories/Metric/MetricRepository.php @@ -61,11 +61,19 @@ class MetricRepository { $dateTime = $this->dates->make(); $pointKey = $dateTime->format('Y-m-d H:i'); - $points = $this->repository->getPointsSinceMinutes($metric, 60)->pluck('value', 'key')->take(60); + $nrOfMinutes = 61; + $points = $this->repository->getPointsSinceMinutes($metric, $nrOfMinutes + $metric->threshold)->pluck('value', 'key')->take(-$nrOfMinutes); - for ($i = 0; $i < 60; $i++) { + $timeframe = $nrOfMinutes; + for ($i = 0; $i < $timeframe; $i++) { if (!$points->has($pointKey)) { - $points->put($pointKey, $metric->default_value); + if ($i >= $metric->threshold) { + $points->put($pointKey, $metric->default_value); + } else { + // The point not found is still within the threshold, so it is ignored and + // the timeframe is shifted by one minute + $timeframe++; + } } $pointKey = $dateTime->sub(new DateInterval('PT1M'))->format('Y-m-d H:i');