# DEPRECATED
Old code.
This is a simple bundle that creates a statsd service that you can use to send counters via statsd to graphite.
It is based on the example statsd client found in the statd package: https://github.com/etsy/statsd
Statsd is a network daemon for aggregating statistics (counters and timers), rolling them up, then sending them to [graphite][graphite].
([Etsy][etsy]) [blogged][blog post] about how it works and why they created it
Add to deps:
[SMStatsDBundle]
git=git://github.com:tarjei/StatsDBundle.git
target=/bundles/SM/StatsDBundle
Then register the bundle with your kernel:
// app/AppKernel.php
// in AppKernel::registerBundles()
$bundles = array(
// ...
new SM\StatsDBundle\SMStatsDBundle(),
// ...
);
Make sure that you also register the namespaces with the autoloader:
// app/autoload.php
$loader->registerNamespaces(array(
// ...
'SM\\StatsDBundle' => __DIR__ . '/../vendor/bundles',
));
The plugin expects statsd to be running localy
In your prod/dev environment:
# app/config/config.yml
statsd:
host:
port:
Defaults:
statsd:
host: localhost
port: 8125
noop: false
The noop option is if you want the client to be called but not send a signal or connect to statsd.
Sample usage:
// MyController.com
$stats = $this->get('statsd');
$stats->increment("users");
$stats->timing("querytime", $time)
For more info see the StatsD.php file.
- Add loggingservice into the mix
- Consider how we should handle empty stats
- better example
In lieu of a list of contributors, check out the commit history for the project.
[graphite]: http://graphite.wikidot.com [etsy]: http://www.etsy.com [blog post]: http://codeascraft.etsy.com/2011/02/15/measure-anything-measure-everything/ [node]: http://nodejs.org [udp]: http://enwp.org/udp