traum-ferienwohnungen/laravel-prometheus-exporter

A prometheus exporter for Laravel & Lumen

0.2.1 2020-09-08 06:27 UTC

README

Build Status

A prometheus exporter for the Laravel and the Lumen web framework.

It tracks latency and request counts by request method, route and response code.

Project State

This is unreleased software. I commit backwards incompatible changes without notice.

Installation

composer require traum-ferienwohnungen/laravel-prometheus-exporter

Adapters

Then choose from two storage adapters: APCu is the default option. Redis can also be used.

APCu

Ensure apcu-bc is installed and enabled.

Redis

Ensure php redis is installed and enabled.

By default it looks for a redis server at localhost:6379. The server can be configured in config/prometheus_exporter.php.

Laravel

Enable the Middleware

In app/Http/Kernel.php

protected $middleware = [
    ...
    \traumferienwohnungen\PrometheusExporter\Middleware\LaravelResponseTimeMiddleware::class,
];

Add an endpoint for the metrics

Route::get('metrics', \traumferienwohnungen\PrometheusExporter\LaravelController::class . '@metrics');

Lumen

Register the ServiceProvider

In bootstrap/app.php

$app->register(traumferienwohnungen\PrometheusExporter\LumenServiceProvider::class);

Add an endpoint for the metrics

In bootstrap/app.php

$app->router->get('metrics', ['as' => 'metrics', 'uses'=> 'traumferienwohnungen\PrometheusExporter\LumenController@metrics']);

Configuration

The configuration can be found in config/prometheus_exporter.php.