yii-newrelic
Yii wrapper around the New Relic PHP API.
yii-newrelic is a wrapper around the New Relic PHP API. New Relic is a SaaS company that provides a native PHP extension to interface with their application performance tracking and metrics engine. With New Relic, and this extension, you will have access to detailed performance metrics for your Yii application, as well as the server(s) on which your application is running.
Automatic tracking of module/controller/action ID's is supported. Automatic injection of timing header and footer also supported.
1) Install the New Relic PHP driver on your web server per New Relic For PHP instructions.
2) Place this extension in /protected/extensions/yii-newrelic/.
3) In main.php, add the following to 'components':
'newRelic' => array( 'class' => 'ext.yii-newrelic.YiiNewRelic', ), 'clientScript' => array( 'class' => 'ext.yii-newrelic.YiiNewRelicClientScript', ),
4) If you are using a script that subclasses CClientScript, instead of adding
'clientScript' to your 'components', you will instead need to orphan that
extension's script and extend it from YiiNewClientScript instead. To do so,
change extends CClientScript to extends YiiNewRelicClientScript, and then
add a line before that class declaration that says:
Yii::import('ext.yii-newrelic.YiiNewRelicClientScript');
5) In main.php, add the following to the top-level array:
'behaviors' => array( 'onBeginRequest' => array( 'class' => 'ext.yii-newrelic.behaviors.YiiNewRelicWebAppBehavior', ), ),
6) Create subclass of CWebApplication, e.g. NewRelicApplication.
7) In this new class, e.g. NewRelicApplication, add a method::
public function beforeControllerAction($controller, $action) { Yii::app()->newRelic->setTransactionName($controller->id, $action->id); return parent::beforeControllerAction($controller, $action); }
8) To use your new subclassed CWebApplication, modify index.php similar to:
$config=dirname(__FILE__).'/../protected/config/main.php'; require_once(dirname(__FILE__).'/../yii-1.1.12.b600af/framework/yii.php'); require_once(dirname(__FILE__).'/../protected/components/system/PromocastApplication.php'); $app = new NewRelicApplication($config); $app->run();
9) In console.php, add the following to 'components':
'newRelic' => array( 'class' => 'ext.yii-newrelic.YiiNewRelic', ),
10) In console.php, add the following to the top-level array:
'behaviors' => array( 'onBeginRequest' => array( 'class' => 'ext.yii-newrelic.behaviors.YiiNewRelicConsoleAppBehavior', ), 'onEndRequest' => array( 'class' => 'ext.yii-newrelic.behaviors.YiiNewRelicConsoleAppBehavior', ), ),
Get the code at GitHub. You may download directly using this Direct Download Link.
Modified BSD License https://github.com/gtcode/yii-newrelic
Total 2 comments
Hi canreo,
You may proceed to the GitHub project page and clone/download the code from there.
edit: I've added a direct download link for your convenience. Thanks for the comment.
This looks interesting, but it's hard to do anything without downloadable code!
Leave a comment
Please login to leave your comment.