此包已废弃且不再维护。作者建议使用 https://github.com/nadi-pro/nadi-php 包代替。

Nadi for PHP

1.2.2 2023-07-19 16:05 UTC

This package is auto-updated.

Last update: 2023-12-03 07:10:13 UTC


README

Build Status

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,
];

类图

nadi-php-uml-diagram.png