Code Coverage
 
Classes and Traits
Functions and Methods
Lines
Total
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
CRAP
0.00% covered (danger)
0.00%
0 / 7
LoadAverageProvider
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
6
0.00% covered (danger)
0.00%
0 / 7
 getStats
0.00% covered (danger)
0.00%
0 / 1
6
0.00% covered (danger)
0.00%
0 / 7
1<?php
2
3namespace Qmp\Laravel\DockerScale\Scaler\Providers;
4
5use Qmp\Laravel\DockerScale\Models\DockerStat;
6use Qmp\Laravel\DockerScale\Models\DockerScalerConfig;
7
8class LoadAverageProvider extends ProviderAbstract
9{
10    protected static $nbOfCycles = 5;
11
12    protected static function getStats(DockerScalerConfig $config): float
13    {
14        $limits = $config->service->total_replicas * self::$nbOfCycles;
15        $serviceName = $config->service->name;
16
17        $average = DockerStat::where('service', $serviceName)
18            ->orderBy('updated_at', 'desc')
19            ->take($limits)
20            ->avg('pids');
21
22        return $average ? $average : 0;
23    }
24}