File "Thresholds.php"
Full Path: /var/www/drive/laravel/pulse/src/Recorders/Concerns/Thresholds.php
File size: 961 bytes
MIME-type: text/x-php
Charset: utf-8
<?php
namespace Laravel\Pulse\Recorders\Concerns;
use Illuminate\Support\Facades\Config;
trait Thresholds
{
/**
* Determine if the duration is under the configured threshold.
*/
protected function underThreshold(int|float $duration, string $key): bool
{
return $duration < $this->threshold($key);
}
/**
* Get the threshold for the given key.
*/
protected function threshold(string $key, ?string $recorder = null): int
{
$recorder ??= static::class;
$config = Config::get("pulse.recorders.{$recorder}.threshold", 1_000);
if (! is_array($config)) {
return $config;
}
// @phpstan-ignore argument.templateType, argument.templateType
$custom = collect($config)
->except(['default'])
->first(fn ($threshold, $pattern) => preg_match($pattern, $key) === 1);
return $custom ?? $config['default'] ?? 1_000;
}
}