gallop-yd/laravel-prometheus-exporter

一个用于导出指标的 Laravel 服务提供器。

dev-master 2019-09-03 06:41 UTC

This package is auto-updated.

Last update: 2024-09-29 05:08:53 UTC


README

Software license Travis Coveralls CodeCov Scrutinizer Code Quality Latest stable Monthly installs Total Downloads

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

支持的 Laravel 版本

Laravel 5.5 Laravel 5.6 Laravel 5.7

主要功能

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

安装

Composer

composer require triadev/laravel-prometheus-exporter

应用

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

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

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

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

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

配置

buckets_per_route

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

用法

获取指标的端点

juhu/pe/metrics

中间件

RequestPerRoute(仅 Laravel)

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

别名

lpe.requestPerRoute

指标
  1. requests_total(增加)
  2. requests_latency_milliseconds(直方图)
示例
$router->get('requestPerRoute', function () {
    return 'valid';
})->middleware('lpe.requestPerRoute')->name('requestPerRoute');

app_requests_latency_milliseconds_bucket{route="requestPerRoute",method="GET",status_code="200",le="0.005"} 0 ... app_requests_latency_milliseconds_count{route="requestPerRoute",method="GET",status_code="200"} 1 app_requests_latency_milliseconds_sum{route="requestPerRoute",method="GET",status_code="200"} 6 app_requests_total{route="requestPerRoute",method="GET",status_code="200"} 1

路线图

  • 按路由直方图桶(RequestPerRoute)

报告问题

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

或者,复制该项目并创建一个拉取请求。 :)

测试

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

贡献

请参阅 CONTRIBUTING 以获取详细信息。

致谢

其他

项目相关链接

作者

许可证

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