spatie/laravel-prometheus

Export Laravel metrics to Prometheus

1.1.0 2024-03-08 11:34 UTC

README

Export Laravel metrics to Prometheus

Latest Version on Packagist GitHub Tests Action Status GitHub Code Style Action Status Total Downloads

This package can export key metrics of your app to Prometheus. It does this by providing an easy way to register metrics. Here's an example where we are going to export the user count to Prometheus.

Prometheus::addGauge('User count')
    ->value(fn() => User::count());

These metrics will be exposed at the /prometheus endpoint. The package offers a way to add a security layer, so your key metrics don't become public.

You can configure your Prometheus instance to periodically crawl and import the metrics at the /prometheus endpoint of your app. Using Grafana, you can visualize the data points that are stored in Prometheus.

Support us

We invest a lot of resources into creating best in class open source packages. You can support us by buying one of our paid products.

We highly appreciate you sending us a postcard from your hometown, mentioning which of our package(s) you are using. You'll find our address on our contact page. We publish all received postcards on our virtual postcard wall.

Documentation

You can find full documentation on our dedicated documentation site.

Testing

To run the horizon collector tests you need to install the redis extension.

On Ubuntu you can do so with the following command:

sudo apt-get install php-redis

On MacOS you can do so with the following command:

pecl install redis

To run the tests call composer test:

composer test

Changelog

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

Contributing

Please see CONTRIBUTING for details.

Security Vulnerabilities

Please review our security policy on how to report security vulnerabilities.

Credits

The Horizon collectors were heavily inspired on Lukas Kämmerling' excellent laravel-horizon-prometheus-exporter package.

License

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