diff --git a/app/Repositories/Metric/MetricRepository.php b/app/Repositories/Metric/MetricRepository.php index 987a3b34..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');