bankiru/yii-pinba

v0.2.0 2016-06-14 10:23 UTC

This package is not auto-updated.

Last update: 2021-10-16 02:03:26 UTC


README

Simple Yii extension that incapsulates Pinba configuration and methods.

Build Status Scrutinizer Code Coverage Status Coveralls Code Coverage Status Scrutinizer Quality Score SensioLabsInsight Dependency Status HHVM Status License

Installing

You should install php pinba extension manually. See documentation.

Composer

"require": {
  "bankiru/yii-pinba": "~0.1"
}

Github

Releases of Pinba extension for Yii framework are available on Github.

Documentation

To enable this extension you need add Pinba to component list in config.php and do some simple configurations

'pinba' => array(
    'class'         => 'Bankiru\\Yii\\Profiling\\Pinba\\Pinba',
    'fixScriptName' => true, // changes script_name in pinba to controller/action or to command args in cli mode. Default true
    'scriptName'    => null,   // default null (if null pinba would use autodetect)
    'hostName'      => null, // default null (if null pinba would use autodetect)
    'serverName'    => null, // default null (if null pinba would use autodetect)
    'schema'        => null, // default null (if null pinba would use autodetect)
    'profileEvents' => [], // default empty array
)

In addition you need to add pinba extension to preload section.

Available 2 methods to profile.

  • through direct call Timer class
  • using yii events

Timers class

Timer class has static methods:

  • start
  • stop
  • add
  • delete
  • tagsMerge
  • tagsReplace
  • dataMerge
  • dataReplace
  • getInfo
  • getAll
  • stopAll

which wraps pinba_* functions.

Yii events

Extension always tracks CApplication request (onBeginRequest, onEndRequest).

Custom profilings can be added through config. For example:

'pinba' => array(
    'class' => 'Bankiru\\Yii\\Profiling\\Pinba\\Pinba',
    'profileEvents' => [
        ['my-component-name', 'profiling_action_name', 'onBeginActionEventName', 'onEndActionEventName'],
    ],
)