Skip to content

Instantly share code, notes, and snippets.

@muhajirinlpu
Created June 18, 2023 16:38
Show Gist options
  • Save muhajirinlpu/f968f202f5414dd53cade7907b5b5171 to your computer and use it in GitHub Desktop.
Save muhajirinlpu/f968f202f5414dd53cade7907b5b5171 to your computer and use it in GitHub Desktop.
Laravel Horizon 75th percentile jobs runtime counter
<?php
//Tinker away!
use HiFolks\Statistics\Stat;
use Laravel\Horizon\Contracts\JobRepository;
$data = collect();
/** @var JobRepository $jobRepo */
$jobRepo = app(JobRepository::class);
while (($completedJobs = $jobRepo->getCompleted($data->count()))->count() > 0) {
$data->push(...$completedJobs);
}
//dd($data->count());
$data->map(fn(stdClass $data) => $data->runtime = $data->completed_at - $data->reserved_at);
$data
->groupBy('name')
->map(function (\Illuminate\Support\Collection $data) {
$runtimeSeries = $data->pluck('runtime');
return Stat::thirdQuartile($runtimeSeries->toArray());
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment