hans-thomas/laravel-prometheus-exporter

用于导出 Prometheus 指标的服务提供者。

v2.3.1 2021-01-16 15:49 UTC

README

用于导出 Prometheus 指标的 Laravel 和 Lumen 服务提供者。

支持的 Laravel 版本

Laravel 7.x

主要功能

  • 与 APC 的指标
  • 与 Redis 的指标
  • 与 InMemory 的指标
  • 与推送网关的指标
  • 每个路由的中间件请求(总指标和持续时间指标)

安装

Composer

composer require hans-thomas/laravel-prometheus-exporter

应用

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

php artisan vendor:publish --provider="Hasn\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 端点

hans/pe/metrics

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

Route::get(
    ROUTE,
    [ \Hans\PrometheusExporter\Controller\LaravelController::class, 'metrics']
);

中间件

RequestPerRoute

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

别名

lpe.requestPerRoute

指标
  1. requests_total (inc)
  2. requests_latency_milliseconds (直方图)
示例
$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 的错误跟踪器为此项目报告。

或者,将该项目分支并创建一个 pull request。 :)

测试

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

贡献

有关详细信息,请参阅 CONTRIBUTING

其他

许可证

LaravelPrometheusExporter 的代码在 MIT 许可证下分发(请参阅 LICENSE)。