herloct/slim-newrelic

Slim 框架的新 Relic 仪表工具

dev-master 2017-03-01 09:27 UTC

This package is not auto-updated.

Last update: 2024-09-15 02:19:27 UTC


README

Build Status Test Coverage Code Climate license

此库为 Slim 框架提供新 Relic 仪表功能。安装此库后,将确保您的交易正确命名,并且您的异常在 New Relic 中正确记录。

参考 @nordsoftware 的 nordsoftware/lumen-newrelic

许可证

请参阅 LICENSE

要求

使用方法

安装

运行以下命令通过 Composer 安装包

composer require herloct/slim-newrelic

引导

示例 index.php

$config = [
    'settings' => [
        'displayErrorDetails' => true,

        // These two are needed so new relic agent could work
        'addContentLengthHeader' => false,
        'determineRouteBeforeAppMiddleware' => true
    ],

    'errorHandler' => function ($c) {
        $agent = $c->get(\SobanVuex\NewRelic\Agent::class);
        $errorHandler = new \Slim\Handlers\Error($c->get('settings')['displayErrorDetails']);

        return new \Herloct\Slim\Handlers\NewRelicError($agent, $errorHandler);
    },

    \SobanVuex\NewRelic\Agent::class => function ($c) {
        $agent = new \SobanVuex\NewRelic\Agent(
            'Your Application Name',
            'YOUR_NEW_RELIC_LICENSE_KEY'
        );

        return $agent;
    },

    \Herloct\Slim\NewRelicTransactionMiddleware::class => function ($c) {
        $agent = $c->get(\SobanVuex\NewRelic\Agent::class);

        return new \Herloct\Slim\NewRelicTransactionMiddleware($agent);
    }
];

$app = new \Slim\App($config);
$app->add(\Herloct\Slim\NewRelicTransactionMiddleware::class);

$app->get('/hello/{name}', function ($request, $response, $args) {
    return $response->write("Hello " . $args['name']);
})->setName('say_hello');

$app->run();

自定义交易名称

默认情况下,交易名称将使用路由的名称。如果失败,则使用路由的模式。

如果这不符合您的需求,请扩展 Herloct\Slim\NewRelicTransactionMiddleware 类并重写 getTransactionName() 方法,然后注册该中间件类。

运行测试

克隆项目并运行以下命令安装其依赖项

composer install

运行以下命令运行测试套件

vendor/bin/phpunit