Package Data | |
---|---|
Maintainer Username: | caikeal |
Package Create Date: | 2020-10-26 |
Package Last Update: | 2020-10-27 |
Home Page: | |
Language: | PHP |
License: | MIT |
Last Refreshed: | 2024-11-09 15:08:45 |
Package Statistics | |
---|---|
Total Downloads: | 2,465 |
Monthly Downloads: | 138 |
Daily Downloads: | 0 |
Total Stars: | 0 |
Total Watchers: | 1 |
Total Forks: | 0 |
Total Open Issues: | 0 |
A laravel and lumen service provider to export metrics for prometheus.
composer require triadev/laravel-prometheus-exporter
The package is registered through the package discovery of laravel and Composer.
https://laravel.com/docs/5.8/packages
Once installed you can now publish your config file and set your correct configuration for using the package.
php artisan vendor:publish --provider="Triadev\PrometheusExporter\Provider\PrometheusExporterServiceProvider" --tag="config"
This will create a file config/prometheus-exporter.php
.
| Key | Env | Value | Description | Default | |:-------------:|:-------------:|:-------------:|:-----:|:-----:| | adapter | PROMETHEUS_ADAPTER | STRING | apc, redis, inmemory or push | apc | | namespace | --- | STRING | default: app | app | | namespace_http | --- | STRING | namespace for "RequestPerRoute-Middleware metrics" | http | | redis.connection | PROMETHEUS_REDIS_CONNECTION | STRING | redis connection | default | push_gateway.address | PROMETHEUS_PUSH_GATEWAY_ADDRESS | STRING | push gateway address | localhost:9091 | | buckets_per_route | --- | STRING | histogram buckets for "RequestPerRoute-Middleware" | --- |
'buckets_per_route' => [
ROUTE-NAME => [10,20,50,100,200],
...
]
When you are using laravel you can use the default http endpoint:
triadev/pe/metrics
Of course you can also register your own route. Here is an example:
Route::get(
ROUTE,
\Triadev\PrometheusExporter\Controller\LaravelController::class . '@metrics'
);
When you are using lumen you must register the route on your own. Here is an example:
Route::get(
ROUTE,
\Triadev\PrometheusExporter\Controller\LumenController::class . '@metrics'
);
A middleware to build metrics for "request_total" and "requests_latency_milliseconds" per route.
lpe.requestPerRoute
$router->get('/test/route', function () {
return 'valid';
})->middleware('lpe.requestPerRoute');
app_requests_latency_milliseconds_bucket{route="/test/route",method="GET",status_code="200",le="0.005"} 0 ... app_requests_latency_milliseconds_count{route="/test/route",method="GET",status_code="200"} 1 app_requests_latency_milliseconds_sum{route="/test/route",method="GET",status_code="200"} 6 app_requests_total{route="/test/route",method="GET",status_code="200"} 1
If you do find an issue, please feel free to report it with GitHub's bug tracker for this project.
Alternatively, fork the project and make a pull request. :)
Please see CONTRIBUTING for details.
The code for LaravelPrometheusExporter is distributed under the terms of the MIT license (see LICENSE).