Fix trailing default metric points #2539

This commit is contained in:
Jordy van Dortmont
2018-03-27 16:02:46 +02:00
parent 7e00b6fb88
commit 190d951c51

View File

@@ -61,11 +61,19 @@ class MetricRepository
{ {
$dateTime = $this->dates->make(); $dateTime = $this->dates->make();
$pointKey = $dateTime->format('Y-m-d H:i'); $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)) { 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'); $pointKey = $dateTime->sub(new DateInterval('PT1M'))->format('Y-m-d H:i');