This bundle integrates graphite and statsd with Symfony2. It provides stats on all kernel event and controller execution times as well as providing the ability to do any of the traditional graphite or statsd logging.
Add GraphiteBundle to your src/
directory:
$ git submodule add git://github.com/opensky/OpenSkyGraphiteBundle.git src/OpenSky/Bundle/GraphiteBundle
Add GraphiteBundle to the registerBundles()
method of your application kernel:
<?php
public function registerBundles()
{
return array(
new OpenSky\Bundle\GraphiteBundle\OpenSkyGraphiteBundle(),
);
}
Always log kernel startTime:
<?php
public function __construct($environment, $debug)
{
// always set start time
$this->startTime = microtime(true);
parent::__construct($environment, $debug);
}
GraphiteBundle allows you to log using either a udp connection, the symfony logger.
# app/config/config.yml
opensky_graphite:
connection: udp # (noop|udp|logging) defaults to udp
host: 127.0.0.1 # required for a udp connection
port: 2003 # optional - defaults to 2003
prefix: 'foo.' # optional - helps organize the data on your graphite server, automatically fills in statsd.prefix
statsd:
conenction: udp # (noop|udp|logging) defaults to udp
host: 127.0.0.1 # required for a udp connection
port: 8125 # defaults to 8125
prefix: 'foo.' # optional - defaults to the graphite prefix
Wraps the current event_dispatcher
and logs the timing of each event dispatch.
- counts kernel exceptions by class name
- times the precontroller time of the master request
- times the duration of each controller call in the master and sub requests
- times the entire request time
Makes graphite calls. Expects a metric name and a numeric value. Defaults to the current time
<?php
$graphiteLogger->log('my.metric', 42); // log a value of 42 now
Makes statsd calls. Supports increment, decrement, and timing all with sampling rates as outlined in the statsd example
<?php
$statsdLogger->time('my.metric', 42); // indicate that it just took 42ms to run my.metric
$statsdLogger->increment('my.other.metric'); // my.other.metric's count just went up by one
$statsdLogger->decrement('my.other.metric'); // my.other.metric's count just went down by one