lkaemmerling/laravel-horizon-prometheus-exporter

A small package to gain and export long time information from Laravel & Horizon for Prometheus.

v1.8.0 2024-03-12 18:05 UTC

README

Latest Version on Packagist Actions Status Total Downloads

This package allows an easy way to expose the Laravel Horizon Metrics to Prometheus.

Prom... What?

Prometheus is a scraping service which allows you to easily store and scrape information from your application, server or even from your router! Prometheus itself does not know about your application, so you need a exporter on your app. This small package is exactly this, an exporter which allows Prometheus to understand some information from your application. With Prometheus and a visualisation tool called Grafana you can build something like this beautiful Dashboard:

Laravel Horizon Prometheus Exporter Dashboard

Installation

You can install the package via composer:

composer require lkaemmerling/laravel-horizon-prometheus-exporter

Configuration

php artisan vendor:publish --provider=LKDevelopment\\HorizonPrometheusExporter\\HorizonPrometheusExporterServiceProvider

You can configure this package by changing the values in config/horizon-exporter.php.

Custom Metrics

You can also use this package easily to expose custom metrics. You just need to implement the LKDevelopment\HorizonPrometheusExporter\Contracts\Exporter interface and then add your implementation to your config/horizon-exporter.php like we do it for the Horizon exporters: https://github.com/LKaemmerling/laravel-horizon-prometheus-exporter/blob/master/config/config.php#L17

Dashboard

You can find a sample dashboard using this metrics on the Grafana Marketplace.

Testing

composer test

Changelog

Please see Releases for more information on what has changed recently.

Contributing

Please see CONTRIBUTING for details.

Security

If you discover any security related issues, please email kontakt@lukas-kaemmerling.de instead of using the issue tracker.

Credits

License

The MIT License (MIT). Please see License File for more information.