gallop-yd / laravel-prometheus-exporter
一个用于导出指标的 Laravel 服务提供器。
Requires
- php: >=7.1
- illuminate/support: ^5.5
- jimdo/prometheus_client_php: ^0.9.1
- piwik/device-detector: ^3.11
Requires (Dev)
- fzaninotto/faker: ~1.4
- laravel/framework: ^5.5
- mockery/mockery: ~1.0
- orchestra/testbench: ~3.0
- phpunit/phpunit: ~7.0
- squizlabs/php_codesniffer: ^3.0
Suggests
- ext-apc: Required if using APCu.
- ext-redis: Required if using Redis.
This package is auto-updated.
Last update: 2024-09-29 05:08:53 UTC
README
一个用于导出 Prometheus 指标的 Laravel 和 Lumen 服务提供器。
支持的 Laravel 版本
主要功能
- 带有 APC 的指标
- 带有 Redis 的指标
- 带有 InMemory 的指标
- 带有推送网关的指标
- 按路由中间件请求(总指标和持续时间指标)
安装
Composer
composer require triadev/laravel-prometheus-exporter
应用
该包通过 Laravel 和 Composer 的包发现进行注册。
安装完成后,您现在可以发布您的配置文件并设置正确的配置以使用该包。
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
指标
- requests_total(增加)
- 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 缺陷跟踪器报告。
或者,复制该项目并创建一个拉取请求。 :)
测试
- docker-compose up
- docker exec fpm ./vendor/phpunit/phpunit/phpunit
贡献
请参阅 CONTRIBUTING 以获取详细信息。
致谢
其他
项目相关链接
作者
许可证
LaravelPrometheusExporter 的代码在 MIT 许可证的条款下分发(见 LICENSE)。