/statsd

A library for working with StatsD

Primary LanguagePHPMIT LicenseMIT

StatsD PHP Library

Build Status Total Downloads Latest Stable Version Bitdeli Badge

A library for working with StatsD in PHP.

Install

Via Composer

{
    "require": {
        "league/statsd": "1.3.*"
    }
}

To use the Statsd Service Provider, you must register the provider when bootstrapping your Laravel application.

Find the providers key in your app/config/app.php and register the Statsd Service Provider.

    'providers' => array(
        // ...
        'League\StatsD\Laravel\Provider\StatsdServiceProvider',
    )

Find the aliases key in your app/config/app.php and add the Statsd Facade Alias.

    'aliases' => array(
        // ...
        'Statsd' => 'League\StatsD\Laravel\Facade\StatsdFacade',
    )

For Laravel 5:

Find the providers key in your config/app.php and register the Statsd Service Provider.

    'providers' => [
        // ...
        League\StatsD\Laravel5\Provider\StatsdServiceProvider::class,
    ]

Find the aliases key in your app/config/app.php and add the Statsd Facade Alias.

    'aliases' => [
        // ...
        'Statsd' => League\StatsD\Laravel5\Facade\StatsdFacade::class,
    ]

Usage

Configuring

$statsd = new League\StatsD\Client();
$statsd->configure(array(
    'host' => '127.0.0.1',
    'port' => 8125,
    'namespace' => 'example'
));

OR

$statsd1 = StatsD\Client::instance('server1')->configure(array(...));
$statsd2 = StatsD\Client::instance('server2')->configure(array(...));

The StatsD client wait for ini_get('default_socket_timeout') seconds when opening the socket by default. To reduce this timeout, add 'timeout' => <float> to your config.

The StatsD client will throw a ConnectionException if it is unable to send data to the StatsD server. You may choose to disable these exceptions and log a PHP warning instead if you wish. To do so, include the following in your config:

    'throwConnectionExceptions' => false

If omitted, this option defaults to true.

Counters

$statsd->increment('web.pageview');
$statsd->decrement('storage.remaining');
$statsd->increment(array(
    'first.metric',
    'second.metric'
), 2);
$statsd->increment('web.clicks', 1, 0.5);

Gauges

$statsd->gauge('api.logged_in_users', 123456);

Sets

$userID = 23;
$statsd->set('api.unique_logins', $userID);

Timers

$statsd->timing('api.response_time', 256);

Timing Blocks

$statsd->time('api.dbcall', function () {
    // this code execution will be timed and recorded in ms
});

Testing

phpunit

Contributing

Please see CONTRIBUTING for details.

Credits

License

The MIT License (MIT). Please see License File for more information.