worksome / horizon-telemetry
An Opentelemetry implementation for Laravel Horizon and queues
Installs: 153 026
Dependents: 0
Suggesters: 0
Security: 0
Stars: 6
Watchers: 12
Forks: 0
Open Issues: 1
Requires
- php: ^8.2
- illuminate/contracts: ^10.0 || ^11.0
- laravel/horizon: ^5.22.1
- open-telemetry/api: ^1.0
- worksome/laravel-telemetry: ^0.5
Requires (Dev)
- larastan/larastan: ^2.8
- nunomaduro/collision: ^7.10 || ^8.1
- orchestra/testbench: ^8.15 || ^9.0
- pestphp/pest: ^2.33
- worksome/coding-style: ^2.8
README
This package adds support for creating various matrices on your queues with the usage of Horizon.
This package requires that the scheduler is running, as it is adding new scheduled commands.
Installation
You can install the package via composer:
composer require worksome/horizon-telemetry
Usage
Metrics
CurrentMasterSupervisorsMetric
The CurrentMasterSupervisorsMetric
will register the current number of master supervisors.
The metric will be registered under the name horizon_current_master_supervisors
.
The default schedule for this is every 10 minutes (*/10 * * * *
), to configure this,
add MeterName::CurrentMasterSupervisors->value
under a horizon
key in your telemetry.php
config file.
CurrentProcessesMetric
The CurrentProcessesMetric
will register the current number of processes in each queue.
The metrics will be registered under the name horizon_current_processes.<queue_name>
.
The default schedule for this is every 10 minutes (*/10 * * * *
), to configure this,
add MeterName::CurrentProcesses->value
under a horizon
key in your telemetry.php
config file.
CurrentJobsMetric
The CurrentJobsMetric
will register the current number of jobs in each queue.
The metrics will be registered under the name horizon_current_jobs.<queue_name>
.
The default schedule for this is every 10 minutes (*/10 * * * *
), to configure this,
add MeterName::CurrentJobs->value
under a horizon
key in your telemetry.php
config file.
Event Listeners
FailedJobsListener
The FailedJobsListener
listener will create an observable counter that will increment each time a job fails.
This metric will be registered under the name horizon_failed_jobs
.
The default schedule for this is true
, to disable this event listener,
add MeterName::FailedJobs->value => false
under a horizon
key in your telemetry.php
config file.
ProcessedJobsListener
The ProcessedJobsListener
listener will create an observable counter that will increment each time a job is processed.
This metric will be registered under the name horizon_processed_jobs
.
The default schedule for this is true
, to disable this event listener,
add MeterName::ProcessedJobs->value => false
under a horizon
key in your telemetry.php
config file.
ProcessedJobsPeakMemoryUsageListener
The ProcessedJobsPeakMemoryUsageListener
listener will create a histogram over peak memory usage each time a job is processed.
This metric will be registered under the name horizon_processed_jobs_peak_memory_usage
.
Two listeners are actually registered here, the secondary listener is ProcessedJobsPeakMemoryUsagePreparationListener
which will take care of clearing the peak memory usage before a job starts, so for long-running queue workers, we get
the correct number.
The default schedule for this is true
, to disable this event listener,
add MeterName::ProcessedJobsPeakMemoryUsage->value => false
under a horizon
key in your telemetry.php
config file.
Testing
composer test