ensi / laravel-metrics
Installs: 18 860
Dependents: 0
Suggesters: 0
Security: 0
Stars: 2
Watchers: 2
Forks: 0
Open Issues: 0
Requires
- php: >=8.1
- ensi/laravel-prometheus: ^1.0.8
- guzzlehttp/guzzle: ^7.0
- psr/http-message: ^1.0
Requires (Dev)
- franzl/studio: ^0.16.0
- orchestra/testbench: ^7.0
This package is auto-updated.
Last update: 2024-04-25 13:54:16 UTC
README
Пакет добавляет метрики общего назначения для веб-приложения на laravel. Является дополнением к ensi/laravel-prometheus
Installation
Добавьте пакет в приложение
composer require ensi/laravel-metrics
Скопируйте конфигурацию для дальнейшей настройки
php artisan vendor:publish --tag=metrics-config
Добавьте Http Middleware
# app/Http/Kernel.php protected $middleware = [ // ... other middlewares \Ensi\LaravelMetrics\HttpMiddleware\HttpMetricsMiddleware::class, ];
Добавьте Guzzle Middleware к вашим http клиентам
$handlerStack = HandlerStack::create(); $handlerStack->push(GuzzleMiddleware::middleware()); $client = new Client(['handler' => $handlerStack]); $response1 = $client->get('http://httpbin.org/get');
Configuration
Структура файла конфигурации
return [ 'ignore_commands' => [ 'kafka:consume', ], 'ignore_routes' => [ 'prometheus.*' ], 'http_requests_stats_groups' => [ '<stats-group-name>' => [ 'type' => 'summary', 'route_names' => ['catalog.*', 'profile.favorites'], 'time_window' => 30, 'quantiles' => [0.95, 0.99], ], '<stats-group-name>' => [ 'type' => 'histogram', 'route_names' => ['*'], 'buckets' => [0.01, 0.05, 0.1, 0.5, 1, 2, 4], ], ] ];
ignore_routes - список имён роутов, для которых не нужно отслеживать время обработки http запросов.
ignore_commands - список имён команд, для которых не нужно отслеживать метрики.
http_requests_stats_groups - список гистограмм и перцентилей. Каждая stats группа имеет список имён роутов, которые она отслеживает.
Тем самым вы можете считать статистику не по всему приложению, а по отдельным группам эндпоинтов.
Metrics
Имена метрик представлены без неймспейса.
Name | Type | Labels | Description |
---|---|---|---|
http_requests_total | Counter | code, endpoint | Счётчик входящих http запросов |
http_request_duration_seconds | Counter | code, type, endpoint | Счётчик времени обработки входящих http запросов |
http_stats_<name> | Histogram or Summary | Статистика по времени обработки запросов для указанной в конфиге группы эндпоинтов | |
log_messages_count | Counter | level, endpoint | Количество сообщений в логе |
queue_job_dispatched_total | Counter | connection, queue, job | Количество отправленных заданий в очередь |
queue_job_runs_total | Counter | connection, queue, job | Количество обработанных заданий в очереди |
queue_job_run_seconds_total | Counter | connection, queue, job | Счётчик времени выполнения заданий в очереди |
command_runs_total | Counter | command, status | Количество завершенных команд |
command_run_seconds_total | Counter | command, status | Счётчик времени выполнения команд |
workers_total | Gauge | worker | Кол-во воркеров swoole |
workers_idle | Gauge | worker | Кол-во свободных воркеров swoole |
License
Laravel Metrics is open-sourced software licensed under the MIT license.