NewRelic module provide an object-oriented PHP wrapper for New Relic monitoring service.
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.
- PHP 5.3 or higher
NewRelic module only officially supports installation through Composer. For Composer documentation, please refer to getcomposer.org.
You can install the module from command line:
$ php composer.phar require neeckeloo/newrelic:1.1.*
Alternatively, you can also add manually the dependency in your composer.json
file:
{
"require": {
"neeckeloo/newrelic": "1.1.*"
}
}
Enable the module by adding NewRelic
key to your application.config.php
file. Customize the module by copy-pasting
the newrelic.global.php.dist
file to your config/autoload
folder.
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(),
),
);
NewRelic API allows to ignore some transactions. This configuration defines some routes and controllers of transactions that will be ignored.
return array(
'newrelic' => array(
'ignored_transactions' => array(
'routes' => array(
'admin*',
'user/login',
),
),
),
);
Those rules ignore all admin routes and the "user/login" route.
return array(
'newrelic' => array(
'ignored_transactions' => array(
'controllers' => array(
'FooController',
'BarController',
'BazController',
),
),
),
);
You can also ignore some actions of specified controllers :
return array(
'newrelic' => array(
'ignored_transactions' => array(
'controllers' => array(
array('FooController', array('foo', 'bar')),
array('BarController', array('baz')),
),
),
),
);
You can ignore a transaction manually by calling ignoreTransaction()
method of NewRelic client.
$client = $this->getServiceLocator()->get('NewRelic\Client');
$client->ignoreTransaction();
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(),
),
);
You can define a transaction as background job manually by calling backgroundJob()
method of NewRelic client.
$client = $this->getServiceLocator()->get('NewRelic\Client');
$client->backgroundJob(true);
You can ignore apdex metrics like transaction metrics using the key ignored_apdex
.
return array(
'newrelic' => array(
'ignored_apdex' => array(),
),
);
You can ignore apdex metrics manually by calling ignoreApdex()
method of NewRelic client.
$client = $this->getServiceLocator()->get('NewRelic\Client');
$client->ignoreApdex();
$client = $this->getServiceLocator()->get('NewRelic\Client');
$client->addCustomMetric('salesprice', $price);