ensi/laravel-metrics

1.0.15 2024-06-26 09:18 UTC

README

Latest Version on Packagist Tests Total Downloads

该包为 Laravel Web 应用程序添加了通用指标。它是 ensi/laravel-prometheus 的补充。

安装

您可以通过 composer 安装此包。

composer require ensi/laravel-metrics

使用以下命令发布配置

php artisan vendor:publish --provider="Ensi\LaravelMetrics\MetricsServiceProvider"

基本用法

添加 Http 中间件

# app/Http/Kernel.php

protected $middleware = [
    // ... other middlewares
    \Ensi\LaravelMetrics\HttpMiddleware\HttpMetricsMiddleware::class,
];

将 Guzzle 中间件添加到您的 http 客户端

$handlerStack = HandlerStack::create();

$handlerStack->push(GuzzleMiddleware::middleware());

$client = new Client(['handler' => $handlerStack]);
$response1 = $client->get('http://httpbin.org/get');

配置

配置文件的结构

return [
    'ignore_commands' => [
        'kafka:consume',
    ],
    'ignore_routes' => [
        'prometheus.*'
    ],
    'http_requests_stats_groups' => [
        '<stats-group-name>' => [
            'type' => 'summary',
            'route_names' => ['catalog.*', 'profile.favorites'],
            'time_window' => 30,
            'quantiles' => [0.95, 0.99],
        ],
        '<stats-group-name>' => [
            'type' => 'histogram',
            'route_names' => ['*'],
            'buckets' => [0.01, 0.05, 0.1, 0.5, 1, 2, 4],
        ],
    ]
];

ignore_routes - 不需要跟踪 HTTP 请求处理时间的路由名称列表。
ignore_commands - 不需要跟踪指标的任务名称列表。
http_requests_stats_groups - 图形和百分位的列表。每个统计组都有一个跟踪的路由名称列表。
因此,您可以计算特定端点组的统计信息,而不是整个应用的统计信息。

指标

指标的名称不带命名空间。

贡献

有关详细信息,请参阅 CONTRIBUTING

测试

  1. composer install
  2. composer test

安全漏洞

请参阅 我们的安全策略 了解如何报告安全漏洞。

许可证

MIT 许可证 (MIT)。有关更多信息,请参阅 许可证文件