PHPackages                             worksome/horizon-telemetry - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Logging &amp; Monitoring](/categories/logging)
4. /
5. worksome/horizon-telemetry

ActiveLibrary[Logging &amp; Monitoring](/categories/logging)

worksome/horizon-telemetry
==========================

An Opentelemetry implementation for Laravel Horizon and queues

v0.7.3(5mo ago)6294.9k↑25.6%1[2 PRs](https://github.com/worksome/horizon-telemetry/pulls)MITPHPPHP ^8.4CI passing

Since Jan 6Pushed 4mo ago10 watchersCompare

[ Source](https://github.com/worksome/horizon-telemetry)[ Packagist](https://packagist.org/packages/worksome/horizon-telemetry)[ Docs](https://github.com/worksome/horizon-telemetry)[ RSS](/packages/worksome-horizon-telemetry/feed)WikiDiscussions main Synced 2w ago

READMEChangelog (10)Dependencies (20)Versions (20)Used By (0)

OpenTelemetry for Laravel Horizon and queues
============================================

[](#opentelemetry-for-laravel-horizon-and-queues)

[![Latest Version on Packagist](https://camo.githubusercontent.com/e90533fa1650ed240fe359e317411563ce252c02e88d00813ae2ebee39f3964f/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f776f726b736f6d652f686f72697a6f6e2d74656c656d657472792e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/worksome/horizon-telemetry)[![GitHub Tests Action Status](https://camo.githubusercontent.com/4031d251786221cafab07c8e42891b401b84afff164fa815641ac920565bbab7/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f616374696f6e732f776f726b666c6f772f7374617475732f776f726b736f6d652f686f72697a6f6e2d74656c656d657472792f74657374732e796d6c3f6272616e63683d6d61696e267374796c653d666c61742d737175617265266c6162656c3d5465737473)](https://github.com/worksome/horizon-telemetry/actions?query=workflow%3ATests+branch%3Amain)[![GitHub Static Analysis Action Status](https://camo.githubusercontent.com/e065bbd4ec802999d9aed102245d599393023b66a8c15d311fa9d669b479e1b2/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f616374696f6e732f776f726b666c6f772f7374617475732f776f726b736f6d652f686f72697a6f6e2d74656c656d657472792f7374617469632e796d6c3f6272616e63683d6d61696e267374796c653d666c61742d737175617265266c6162656c3d537461746963253230416e616c79736973)](https://github.com/worksome/horizon-telemetry/actions?query=workflow%3A%22Static%20Analysis%22+branch%3Amain)[![Total Downloads](https://camo.githubusercontent.com/9ee09c07cf29f7ed5f1623ce23b5e4306792522e5e7a735deb859063df8de2b6/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f776f726b736f6d652f686f72697a6f6e2d74656c656d657472792e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/worksome/horizon-telemetry)

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
------------

[](#installation)

You can install the package via composer:

```
composer require worksome/horizon-telemetry
```

Usage
-----

[](#usage)

### Metrics

[](#metrics)

#### [`CurrentMasterSupervisorsMetric`](src/Metrics/CurrentMasterSupervisorsMetric.php)

[](#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`](src/Metrics/CurrentProcessesMetric.php)

[](#currentprocessesmetric)

The `CurrentProcessesMetric` will register the current number of processes in each queue.
The metrics will be registered under the name `horizon_current_processes.`.

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`](src/Metrics/CurrentJobsMetric.php)

[](#currentjobsmetric)

The `CurrentJobsMetric` will register the current number of jobs in each queue.
The metrics will be registered under the name `horizon_current_jobs.`.

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

[](#event-listeners)

#### [`FailedJobsListener`](src/Listeners/FailedJobsListener.php)

[](#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`](src/Listeners/ProcessedJobsListener.php)

[](#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`](src/Listeners/ProcessedJobsPeakMemoryUsageListener.php)

[](#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`](src/Listeners/ProcessedJobsPeakMemoryUsagePreparationListener.php)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
-------

[](#testing)

```
composer test
```

###  Health Score

52

—

FairBetter than 96% of packages

Maintenance74

Regular maintenance activity

Popularity40

Moderate usage in the ecosystem

Community18

Small or concentrated contributor base

Maturity63

Established project with proven stability

 Bus Factor1

Top contributor holds 72.7% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~76 days

Recently: every ~188 days

Total

16

Last Release

169d ago

PHP version history (3 changes)v0.1.0PHP ^8.2

v0.7.1PHP ^8.3

v0.7.3PHP ^8.4

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/1899334?v=4)[Owen Voke](/maintainers/owenvoke)[@owenvoke](https://github.com/owenvoke)

![](https://avatars.githubusercontent.com/u/5870441?v=4)[Oliver Nybroe](/maintainers/olivernybroe)[@olivernybroe](https://github.com/olivernybroe)

---

Top Contributors

[![owenvoke](https://avatars.githubusercontent.com/u/1899334?v=4)](https://github.com/owenvoke "owenvoke (24 commits)")[![dependabot[bot]](https://avatars.githubusercontent.com/in/29110?v=4)](https://github.com/dependabot[bot] "dependabot[bot] (4 commits)")[![lukeraymonddowning](https://avatars.githubusercontent.com/u/12202279?v=4)](https://github.com/lukeraymonddowning "lukeraymonddowning (3 commits)")[![laravel-shift](https://avatars.githubusercontent.com/u/15991828?v=4)](https://github.com/laravel-shift "laravel-shift (1 commits)")[![olivernybroe](https://avatars.githubusercontent.com/u/5870441?v=4)](https://github.com/olivernybroe "olivernybroe (1 commits)")

---

Tags

laravelworksomehorizon-telemetry

###  Code Quality

TestsPest

Static AnalysisPHPStan

### Embed Badge

![Health badge](/badges/worksome-horizon-telemetry/health.svg)

```
[![Health](https://phpackages.com/badges/worksome-horizon-telemetry/health.svg)](https://phpackages.com/packages/worksome-horizon-telemetry)
```

###  Alternatives

[keepsuit/laravel-opentelemetry

OpenTelemetry integration for laravel

173666.7k1](/packages/keepsuit-laravel-opentelemetry)[spatie/laravel-health

Monitor the health of a Laravel application

88212.7M188](/packages/spatie-laravel-health)[psalm/plugin-laravel

Psalm plugin for Laravel

3345.4M354](/packages/psalm-plugin-laravel)[open-telemetry/opentelemetry-auto-laravel

OpenTelemetry auto-instrumentation for Laravel

593.1M9](/packages/open-telemetry-opentelemetry-auto-laravel)[bilfeldt/laravel-request-logger

Log Laravel application request and responses for debugging or statistics

122192.4k3](/packages/bilfeldt-laravel-request-logger)[api-platform/laravel

API Platform support for Laravel

58190.1k21](/packages/api-platform-laravel)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
