/NewRelic

NewRelic module for Zend Framework 2

Primary LanguagePHPMIT LicenseMIT

NewRelic module for ZF2

NewRelic module provide an object-oriented PHP wrapper for New Relic monitoring service.

Build Status Latest Stable Version Coverage Status Scrutinizer Quality Score Dependencies Status

Introduction

NewRelic module provide a logger and a wrapper for New Relic PHP API.

The current route is used to set the name of each transaction. Moreover, the module allow exceptions logging if enabled.

Default configuration

return array(
    'newrelic' => array(
        // Sets the newrelic app name.  Note that this will discard metrics
        // collected before the name is set.  If empty then your php.ini
        // configuration will take precedence.
        'application_name' => null,

        // May be null and will only be set if application name is also given.
        'license' => null,

        // If false then neither change the auto_instrument or manually
        // instrument the real user monitoring.
        'browser_timing_enabled' => false,

        // When true tell the newrelic extension to insert Real User Monitoring
        // scripts automatically.
        'browser_timing_auto_instrument' => true,

        // When true, a logger with the newrelic writer will be called for
        // dispatch error events.
        'exceptions_logging_enabled' => false,

        // Defines ignored transactions
        'ignored_transactions' => array(),

        // Defines background job transactions
        'background_jobs' => array(),
    ),
);

Usage

Ignore transactions

NewRelic API allows to ignore some transactions. This configuration defines some routes and controllers of transactions that will be ignored.

Ignore routes

return array(
    'newrelic' => array(
        'ignored_transations' => array(
            'routes' => array(
                'admin*',
                'user/login',
            ),
        ),
    ),
);

Those rules ignore all admin routes and the "user/login" route.

Ignore controllers

return array(
    'newrelic' => array(
        'ignored_transations' => array(
            'controllers' => array(
                'FooController',
                'BarController',
                'BazController',
            ),
        ),
    ),
);

You can also ignore some actions of specified controllers :

return array(
    'newrelic' => array(
        'ignored_transations' => array(
            'controllers' => array(
                array('FooController', array('foo', 'bar')),
                array('BarController', array('baz')),
            ),
        ),
    ),
);

Ignore a transaction manually

You can ignore a transaction manually by calling ignoreTransaction() method of NewRelic client.

$client = $this->getServiceLocator()->get('NewRelic\Client');
$client->ignoreTransaction();

Define background jobs

The configuration of background jobs is identical to ignored transactions but use the key background_jobs as below.

return array(
    'newrelic' => array(
        'background_jobs' => array(),
    ),
);

Defines a background job manually

You can define a transaction as background job by calling backgroundJob() method of NewRelic client.

$client = $this->getServiceLocator()->get('NewRelic\Client');
$client->backgroundJob(true);

Add custom metric

$client = $this->getServiceLocator()->get('NewRelic\Client');
$client->addCustomMetric('salesprice', $price);