Metrics: Просте та елегантне відстеження метрик для Laravel

Перекладено ШІ
Оригінал: Laravel News
Оновлено: 09 жовтня, 2025
Вас цікавить, як ефективно відстежувати метрики у вашій Laravel аплікації? У цій статті ми розглянемо пакет Metrics від Стівена Бомана, який спрощує запис та запит метрик — від підписки користувачів до відсотка помилок. Дізнайтеся, як налаштувати та використовувати цей потужний інструмент!

Metrics — це пакет, створений Стіва Баумана, який пропонує простий та елегантний спосіб ведення обліку та запитів до метрик у вашій Laravel аплікації. Легко відстежуйте перегляди сторінок, API запити, реєстрацію користувачів або будь-які інші підрахункові події.

Для встановлення цього пакету використайте Composer, а потім опублікуйте та запустіть міграції:

composer require directorytree/metrics
php artisan vendor:publish --tag="metrics-migrations"
php artisan migrate

Після цього ви можете почати відстежувати метрики, використовуючи фасад Metric:

use DirectoryTree\Metrics\MetricData;
use DirectoryTree\Metrics\Facades\Metrics;

Metrics::record(new MetricData('signups'));

Або скористайтеся допоміжним методом metric:

metric('signups')->record();

Ви також можете організувати свої метрики за категоріями:

// Відстежуйте помилки за ступенем
metric('errors')->category('critical')->record();
metric('errors')->category('warning')->record();

Ваші метрики можна асоціювати з вашими моделями Eloquent за допомогою трейту HasMetrics:

use DirectoryTree\Metrics\HasMetrics;
use Illuminate\Database\Eloquent\Model;

class User extends Model
{
    use HasMetrics;
}
$user = User::find(1);

// Відстежуйте входи в систему для кожного користувача
metric('logins')->measurable($user)->record();

Якщо вам потрібно записати кілька метрик, є можливість обробити їх пакетно в пам'яті, а потім комітити.

use DirectoryTree\Metrics\Facades\Metrics;

Metrics::capture();

// Запишіть кілька метрик
metric('signups')->record();
metric('emails_sent')->category('welcome')->record();
metric('signups')->record();

// Комітьте всі зафіксовані метрики одразу
Metrics::commit();

Ще одна зручна функція цього пакету — можливість запитувати метрики за допомогою конструктора запитів із фільтрами дат:

use DirectoryTree\Metrics\Metric;

// Отримайте метрики за сьогодні
$metrics = Metric::today()->get();

// Отримайте метрики за цей тиждень
$metrics = Metric::thisWeek()->get();

// Отримайте кількість реєстрацій за сьогодні
$signups = Metric::today()
    ->where('name', 'signups')
    ->sum('value');

Стів справді створив корисний пакет. Дізнайтеся більше про нього та перегляньте вихідний код на GitHub