2017 © Pedro Peláez
 

library statsd

A simple library for working with StatsD in PHP.

image

league/statsd

A simple library for working with StatsD in PHP.

  • Tuesday, June 12, 2018
  • by alexbilbie
  • Repository
  • 11 Watchers
  • 263 Stars
  • 457,963 Installations
  • PHP
  • 10 Dependents
  • 3 Suggesters
  • 48 Forks
  • 1 Open issues
  • 9 Versions
  • 10 % Grown

The README.md

StatsD PHP Library

Build Status Total Downloads Latest Stable Version, (*1)

A library for working with StatsD in PHP., (*2)

Install

Via Composer:, (*3)

composer require league/statsd

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

Usage

Configuring

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

OR, (*5)

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

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., (*6)

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:, (*7)

    'throwConnectionExceptions' => false

If omitted, this option defaults to true., (*8)

Counters

$statsd->increment('web.pageview');
$statsd->decrement('storage.remaining');
$statsd->increment([
    '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);
$metrics = array('api.response_time' => 256, 'api.memory' => 4096));
$statsd->timings($metrics);

Timing Blocks

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

Tags

Attention! That functionality support of tags in Datadog format!, (*9)

You may configure it for all the metrics sending by the client., (*10)

$statsd->configure([
    'tags' => ['some_general_tag' => 'value']
]);

Or you may send it for a single metric., (*11)

$statsd->increment('web.clicks', 1, 1, ['host' => $_SERVER['HTTP_HOST']]);

Framework integration

Although this library will work with any PHP framework, below are a few ways to integrate it quickly with the most popular ones via included adapters., (*12)

Laravel 4.x

Find the providers key in your app/config/app.php and register the Statsd Service Provider., (*13)

    'providers' => [
        // ...
        'League\StatsD\Laravel\Provider\StatsdServiceProvider',
    ]

Find the aliases key in your app/config/app.php and add the Statsd Facade Alias., (*14)

    'aliases' => [
        // ...
        'Statsd' => 'League\StatsD\Laravel\Facade\StatsdFacade',
    ]

Laravel 5.x

If you are using Laravel >=5.5, statsd uses package discovery to automatically register the service provider and facade., (*15)

For older versions of Laravel 5, or if you disable package discovery:, (*16)

Find the providers key in your config/app.php and register the Statsd Service Provider., (*17)

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

Find the aliases key in your app/config/app.php and add the Statsd Facade Alias., (*18)

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

Lumen

Register the provider in your boostrap app file boostrap/app.php, (*19)

Add the following line in the "Register Service Providers" section at the bottom of the file., (*20)

$app->register(\League\StatsD\Laravel5\Provider\StatsdServiceProvider::class);

Copy the config file statsd.php manually from the directory /vendor/league/statsd/config to the directory /config (you may need to create this directory)., (*21)

Package Configuration, (*22)

In your .env file, add the configuration:, (*23)

STATSD_HOST=127.0.0.1
STATSD_PORT=8125
STATSD_NAMESPACE=

Testing

phpunit

Contributing

Please see CONTRIBUTING for details., (*24)

Credits

License

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

The Versions

12/06 2018

dev-master

9999999-dev https://github.com/thephpleague/statsd

A simple library for working with StatsD in PHP.

  Sources   Download

MIT

The Development Requires

library statsd graphite

17/07 2017

1.4.3

1.4.3.0 https://github.com/thephpleague/statsd

A simple library for working with StatsD in PHP.

  Sources   Download

MIT

The Development Requires

library statsd graphite

09/02 2017

1.4.2

1.4.2.0 https://github.com/thephpleague/statsd

A simple library for working with StatsD in PHP.

  Sources   Download

MIT

The Development Requires

library statsd graphite

02/02 2017

1.4.1

1.4.1.0 https://github.com/thephpleague/statsd

A simple library for working with StatsD in PHP.

  Sources   Download

MIT

The Development Requires

library statsd graphite

21/04 2016

1.4.0

1.4.0.0 https://github.com/thephpleague/statsd

A simple library for working with StatsD in PHP.

  Sources   Download

MIT

The Development Requires

library statsd graphite

11/06 2015

1.3.0

1.3.0.0 https://github.com/thephpleague/statsd

A simple library for working with StatsD in PHP.

  Sources   Download

MIT

The Development Requires

library statsd graphite

17/05 2015

1.2.0

1.2.0.0 https://github.com/thephpleague/statsd

A simple library for working with StatsD in PHP.

  Sources   Download

MIT

The Development Requires

library statsd graphite

01/02 2014

1.1.0

1.1.0.0 https://github.com/thephpleague/statsd

A simple library for working with StatsD in PHP.

  Sources   Download

MIT

The Development Requires

library statsd graphite

27/08 2013

v1.0

1.0.0.0 https://github.com/php-loep/statsd

A simple library for working with StatsD in PHP.

  Sources   Download

MIT

The Development Requires

library statsd graphite