avto-dev/app-metrics-laravel

Laravel应用程序的指标端点

v2.8.0 2024-05-14 12:42 UTC

This package is auto-updated.

Last update: 2024-09-14 13:20:31 UTC


README

Laravel

Laravel应用程序的指标端点

Version PHP Version Build Status Coverage Downloads count License

使用此包可以轻松地将指标端点集成到您的基于Illuminate的应用程序中。

安装

使用以下命令通过composer安装此包

$ composer require avto-dev/app-metrics-laravel "^2.0"

需要安装composer (如何安装composer)。

您需要修复包的主要版本。

之后,您应该使用以下命令“发布”包配置文件

$ php ./artisan vendor:publish --provider="AvtoDev\\AppMetrics\\ServiceProvider"

并在文件./config/metrics.php中进行配置。

用法

请随意编写自己的指标类,并将其添加到metrics.metric_classes配置数组中。

指标类必须实现MetricInterface,可选实现HasDescriptionInterface/HasLabelsInterface/HasTypeInterface。在指标构造函数中,您可以请求任何依赖项 - DI将自动注入它。

此外,指标类可以实现MetricsGroupInterface(用于指标分组)。

当您的指标类准备就绪并成功注册到配置文件后,您可以请求特殊的路由(默认为/metrics

$ curl http://127.0.0.1:8080/metrics?format=json
[{"name": "some_metric", "value": 1, "labels": {"foo":"bar"}}]

$ curl http://127.0.0.1:8080/metrics?format=prometheus
some_metric{foo="bar"} 1

配置允许您更改端点URI、设置密码保护等。

可以使用发送get参数?secret=XXX或HTTP头X-SECRET来完成秘密验证。

格式化程序

开箱即用,此包提供jsonprometheus指标格式。请随意编写自己的格式化程序。

Prometheus格式化程序

Prometheus格式化程序使用一些用于指标值的常量(Nan+Inf-Inf)和类型(countersummarygaugehistogramuntyped)。您可以在PrometheusValuesDictionaryHasTypeInterface中找到它。

请注意,Prometheus只接受数值型指标值。此格式化程序将尝试将指标值转换为数值格式(integerfloat)。如果无法转换为数值,则设置Nan。格式化值的示例

跳过指标

如果在构建或格式化指标时抛出实现AvtoDev\AppMetrics\Exceptions\ShouldBeSkippedMetricExceptionInterface的异常,则此指标将跳过格式化程序的输出,并由Illuminate\Contracts\Debug\ExceptionHandler报告异常。

测试

对于包测试,我们使用phpunit框架和docker-ce + docker-compose作为开发环境。因此,在克隆存储库后在终端中编写

$ make build
$ make latest # or 'make lowest'
$ make test

变更日志

Release date Commits since latest release

变更日志可以在此处找到

支持

Issues Issues

如果您发现任何包错误,请在此存储库中创建问题

许可证

这是开源软件,许可协议为MIT许可证