caikeal/laravel-prometheus-exporter

一个用于导出Prometheus指标的laravel和lumen服务提供者。

v2.0.1 2020-10-26 17:49 UTC

README

Software license Travis Coveralls CodeCov Scrutinizer Code Quality Latest stable Monthly installs Total Downloads Average time to resolve an issue Percentage of issues still open

一个用于导出Prometheus指标的laravel和lumen服务提供者。

支持的laravel版本

Laravel 5.6 Laravel 5.7 Laravel 5.8 Laravel 6.0

支持的lumen版本

Lumen 5.6 Lumen 5.7 Lumen 5.8 Lumen 6.0

主要功能

  • 带有APC的指标
  • 带有Redis的指标
  • 带有InMemory的指标
  • 带有推送网关的指标
  • 按路由中间件请求(总计数和持续时间指标)

安装

Composer

composer require triadev/laravel-prometheus-exporter

应用

该包通过laravel和Composer的包发现进行注册。

https://laravel.net.cn/docs/5.8/packages

安装完成后,您现在可以发布您的配置文件并设置正确的配置以使用此包。

php artisan vendor:publish --provider="Triadev\PrometheusExporter\Provider\PrometheusExporterServiceProvider" --tag="config"

这将创建一个文件 config/prometheus-exporter.php

配置

buckets_per_route

'buckets_per_route' => [
    ROUTE-NAME => [10,20,50,100,200],
    ...
]

用法

获取指标

Laravel

当您使用laravel时,您可以使用默认的http端点

triadev/pe/metrics

当然,您也可以注册自己的路由。以下是一个示例

Route::get(
    ROUTE,
    \Triadev\PrometheusExporter\Controller\LaravelController::class . '@metrics'
);

Lumen

当您使用lumen时,您必须自己注册路由。以下是一个示例

Route::get(
    ROUTE,
    \Triadev\PrometheusExporter\Controller\LumenController::class . '@metrics'
);

中间件

RequestPerRoute

一个中间件,用于为每个路由构建“request_total”和“requests_latency_milliseconds”的指标。

别名

lpe.requestPerRoute

指标
  1. requests_total (inc)
  2. requests_latency_milliseconds (histogram)
示例
$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

路线图

  • 每个路由的直方图桶(RequestPerRoute)

报告问题

如果您发现任何问题,请随时通过该项目的GitHub问题跟踪器报告。

或者,fork该项目并提交一个pull request。 :)

测试

  1. docker-compose up
  2. docker exec fpm ./vendor/phpunit/phpunit/phpunit

贡献

有关详细信息,请参阅CONTRIBUTING

致谢

其他

项目相关链接

作者

许可证

LaravelPrometheusExporter的代码在MIT许可证的条款下分发(见LICENSE)。