cleaniquecoders / nadi-php
1.2.2
2023-07-19 16:05 UTC
Requires
- php: ^7.4 || ^8.0 || ^8.1 || ^8.2
- guzzlehttp/guzzle: ^6.3.1|^7.0.1
- hisorange/browser-detect: ^4.5
- illuminate/support: ^6.0 || ^7.0 || ^8.0 || ^9.0 || ^10.0
- ramsey/uuid: ^3.0 | ^4.7
Requires (Dev)
- mockery/mockery: ^1.5
- phpunit/phpunit: ^8.0 || ^9.0 || ^10.1
README
Nadi PHP 客户端
Nadi 是一个简单的用于监控应用崩溃的问题跟踪器。此包是为 PHP 开发的。
安装
composer require cleaniquecoders/nadi-php
添加新指标
您可以根据需要在应用程序/框架中添加新的指标。
请注意,所有指标都将转换为关联数组。
要创建自己的指标,您需要扩展类 CleaniqueCoders\Nadi\Metric\Base
并在 metrics()
方法中实现指标详细信息,该方法始终返回一个数组。您可能需要在指标中定义点表示法。
然而,Nadi 将将其转换为关联数组。
以下是一个捕获 Laravel 框架 Http 请求的示例。
<?php namespace App\Metric; use CleaniqueCoders\Nadi\Support\Arr; use CleaniqueCoders\Nadi\Metric\Base; use Illuminate\Support\Str; class Http extends Base { public function metrics(): array { $startTime = defined('LARAVEL_START') ? LARAVEL_START : request()->server('REQUEST_TIME_FLOAT'); return [ 'http.client.duration' => $startTime ? floor((microtime(true) - $startTime) * 1000) : null, 'http.scheme' => request()->getScheme(), 'http.route' => request()->getRequestUri(), 'http.method' => request()->getMethod(), 'http.status_code' => http_response_code(), 'http.query' => request()->getQueryString(), 'http.uri' => str_replace(request()->root(), '', request()->fullUrl()) ?: '/', 'http.headers' => Arr::undot(collect(request()->headers->all()) ->map(function ($header) { return $header[0]; }) ->reject(function ($header, $key) { return in_array($key, [ 'authorization', config('nadi.header-key'), 'nadi-key', ]); }) ->toArray()), ]; } }
一旦您声明了您的指标,您就可以在应用程序中使用它
use App\Metrics\Http; use CleaniqueCoders\Nadi\Metric\Metric; $metric = new Metric(); $metric->add(new Http()); $metric->toArray();
如果您从 Laravel 框架添加,只需将其添加到 config/nadi.php
'metrics' => [ \App\Metrics\Http::class, ];