2017 © Pedro Peláez
 

library metrics

Metrics forwarder for PHP.

image

hitmeister/metrics

Metrics forwarder for PHP.

  • Monday, August 22, 2016
  • by digitalcrab
  • Repository
  • 4 Watchers
  • 5 Stars
  • 2,022 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 7 Versions
  • 0 % Grown

The README.md

Metrics Build Status

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

Metrics forwarder for PHP. We can forward to statsd and InfluxDB., (*2)

Installation

You can install the component in two different ways:, (*3)

Usage

Here is some examples how you can use this library., (*4)

Stats Daemon

use Hitmeister\Component\Metrics\Collector;
use Hitmeister\Component\Metrics\Handler\StatsDaemonHandler;

// Create new handler
$handler = new StatsDaemonHandler('127.0.0.1', 8125);

// Create new collector and set handler
$collector = new Collector();
$collector->setHandler($handler);

// Increment one stats
$collector->increment('hello_world');

// Increments `one_long_task` counter and reports used memory and elapsed time
$collector->closure('one_long_task', function(){
    for ($i = 0; $i < 1000; $i++) {
        usleep(100);
    }
});

InfluxDB 0.9.x UDP

Important notice

If you are using InfluxDb >= 0.9.3 you have to specify new Formatter for handler., (*5)

use \Hitmeister\Component\Metrics\Formatter\InfluxDb\LineFormatter;
// .... 
$handler = new UdpHandler('127.0.0.1', 4444);
$handler->setFormatter(new LineFormatter());
// ....

If you are using InfluxDB <= 0.9.2 you don't have to change anything., (*6)

use Hitmeister\Component\Metrics\Collector;
use Hitmeister\Component\Metrics\Handler\InfluxDb\UdpHandler;

// Create new handler
$handler = new UdpHandler('127.0.0.1', 4444);

// Create new collector and set handler
$collector = new Collector();
$collector->setHandler($handler);

// Set global tags
$collector->setTags([
    'env' => 'development',
    'instance' => 'web01',
]);

// Increment one stats
$collector->increment('hello', ['operation' => 'world']);

// Increments `one_long_task` counter and reports used memory and elapsed time
$collector->closure('one_long_task', function(){
    for ($i = 0; $i < 1000; $i++) {
        usleep(100);
    }
});

Flush metrics on script shutdown

use Hitmeister\Component\Metrics\Buffer\OnShutdownBuffer;
use Hitmeister\Component\Metrics\Collector;
use Hitmeister\Component\Metrics\Handler\StatsDaemonHandler;

// Create new handler
$handler = new StatsDaemonHandler('127.0.0.1', 8125);

// Create buffer
$buffer = new OnShutdownBuffer();
$buffer->setHandler($handler);

// Create new collector and set buffer
$collector = new Collector();
$collector->setBuffer($buffer);

// Increment some stats
for ($i = 0; $i < 100; $i++) {
    $collector->increment('stats_'.$i);
}

// All metrics will be flushed to the stats daemon after script shutdown
// It uses register_shutdown_function function under the hood

Some benchmarks

Hitmeister\Component\Metrics\Benchmarks\Collector\InfluxUdpImmediateEvent
    Method Name                       Iterations    Average Time      Ops/second
    -------------------------------  ------------  --------------    -------------
    counterName                    : [1,000     ] [0.0002313616276] [4,322.23792]
    counterNameMultiValue          : [1,000     ] [0.0000676133633] [14,789.97570]
    counterPrefixName              : [1,000     ] [0.0000578238964] [17,293.88820]
    counterPrefixNameMultiValue    : [1,000     ] [0.0000662095547] [15,103.56028]
    counterTagsName                : [1,000     ] [0.0000726783276] [13,759.25993]
    counterTagsNameMultiValue      : [1,000     ] [0.0000773749352] [12,924.08191]
    counterTagsNamePrefix          : [1,000     ] [0.0000779783726] [12,824.06861]
    counterTagsNamePrefixMultiValue: [1,000     ] [0.0000772831440] [12,939.43217]

Hitmeister\Component\Metrics\Benchmarks\Collector\InfluxUdpShutdownEvent
    Method Name                       Iterations    Average Time      Ops/second
    -------------------------------  ------------  --------------    -------------
    counterName                    : [1,000     ] [0.0000207498074] [48,193.21851]
    counterNameMultiValue          : [1,000     ] [0.0000219464302] [45,565.49701]
    counterPrefixName              : [1,000     ] [0.0000201663971] [49,587.43970]
    counterPrefixNameMultiValue    : [1,000     ] [0.0000193657875] [51,637.45599]
    counterTagsName                : [1,000     ] [0.0000242691040] [41,204.65262]
    counterTagsNameMultiValue      : [1,000     ] [0.0000208075047] [48,059.58315]
    counterTagsNamePrefix          : [1,000     ] [0.0000179619789] [55,673.15299]
    counterTagsNamePrefixMultiValue: [1,000     ] [0.0000188963413] [52,920.29726]

Hitmeister\Component\Metrics\Benchmarks\Collector\NoHandlerEvent
    Method Name                       Iterations    Average Time      Ops/second
    -------------------------------  ------------  --------------    -------------
    counterName                    : [1,000     ] [0.0000142347813] [70,250.46479]
    counterNameMultiValue          : [1,000     ] [0.0000161037445] [62,097.35876]
    counterPrefixName              : [1,000     ] [0.0000175075531] [57,118.20460]
    counterPrefixNameMultiValue    : [1,000     ] [0.0000142931938] [69,963.36947]
    counterTagsName                : [1,000     ] [0.0000159406662] [62,732.63536]
    counterTagsNameMultiValue      : [1,000     ] [0.0000165419579] [60,452.33634]
    counterTagsNamePrefix          : [1,000     ] [0.0000143866539] [69,508.86613]
    counterTagsNamePrefixMultiValue: [1,000     ] [0.0000144739151] [69,089.80694]

Hitmeister\Component\Metrics\Benchmarks\Collector\StatsDaemonImmediateEvent
    Method Name                       Iterations    Average Time      Ops/second
    -------------------------------  ------------  --------------    -------------
    counterName                    : [1,000     ] [0.0002136104107] [4,681.41977]
    counterNameMultiValue          : [1,000     ] [0.0000218720436] [45,720.46480]
    counterPrefixName              : [1,000     ] [0.0000505478382] [19,783.23971]
    counterPrefixNameMultiValue    : [1,000     ] [0.0000250971317] [39,845.19071]
    counterTagsName                : [1,000     ] [0.0000598993301] [16,694.67751]
    counterTagsNameMultiValue      : [1,000     ] [0.0000255017281] [39,213.02893]
    counterTagsNamePrefix          : [1,000     ] [0.0000610182285] [16,388.54526]
    counterTagsNamePrefixMultiValue: [1,000     ] [0.0000282423496] [35,407.81887]

Hitmeister\Component\Metrics\Benchmarks\Collector\StatsDaemonShutdownEvent
    Method Name                       Iterations    Average Time      Ops/second
    -------------------------------  ------------  --------------    -------------
    counterName                    : [1,000     ] [0.0000177154541] [56,447.88975]
    counterNameMultiValue          : [1,000     ] [0.0000172858238] [57,850.87308]
    counterPrefixName              : [1,000     ] [0.0000182156563] [54,897.82990]
    counterPrefixNameMultiValue    : [1,000     ] [0.0000215911865] [46,315.19435]
    counterTagsName                : [1,000     ] [0.0000220284462] [45,395.84822]
    counterTagsNameMultiValue      : [1,000     ] [0.0000185434818] [53,927.30499]
    counterTagsNamePrefix          : [1,000     ] [0.0000192592144] [51,923.19786]
    counterTagsNamePrefixMultiValue: [1,000     ] [0.0000217378139] [46,002.78585]

Hitmeister\Component\Metrics\Benchmarks\Formatter\InfluxDbLineEvent
    Method Name                Iterations    Average Time      Ops/second
    ------------------------  ------------  --------------    -------------
    counterName             : [10,000    ] [0.0000206048250] [48,532.32187]
    counterNameAndTags      : [1,000     ] [0.0000351431370] [28,455.05797]
    counterNameTagsAndSample: [1,000     ] [0.0000465621948] [21,476.65083]

Hitmeister\Component\Metrics\Benchmarks\Formatter\StatsDaemonEvent
    Method Name                Iterations    Average Time      Ops/second
    ------------------------  ------------  --------------    -------------
    counterName             : [10,000    ] [0.0000089899778] [111,234.97946]
    counterNameAndTags      : [1,000     ] [0.0000233101845] [42,899.70339]
    counterNameTagsAndSample: [1,000     ] [0.0000242178440] [41,291.86725]

The Versions

22/08 2016

dev-master

9999999-dev https://www.hitmeister.de/

Metrics forwarder for PHP.

  Sources   Download

MIT

The Requires

 

The Development Requires

by Maksim Naumov

timer counter metrics statsd influxdb monitoring gauge influx

12/09 2015

2.0.2

2.0.2.0 https://www.hitmeister.de/

Metrics forwarder for PHP.

  Sources   Download

MIT

The Requires

 

The Development Requires

by Maksim Naumov

timer counter metrics statsd influxdb monitoring gauge influx

11/09 2015

2.0.1

2.0.1.0 https://www.hitmeister.de/

Metrics forwarder for PHP.

  Sources   Download

MIT

The Requires

 

The Development Requires

by Maksim Naumov

timer counter metrics statsd influxdb monitoring gauge influx

18/06 2015

2.0.0

2.0.0.0 https://www.hitmeister.de/

Metrics forwarder for PHP.

  Sources   Download

MIT

The Requires

 

The Development Requires

by Maksim Naumov

timer counter metrics statsd influxdb monitoring gauge influx

17/06 2015

2.0.0-rc1

2.0.0.0-RC1 https://www.hitmeister.de/

Metrics forwarder for PHP.

  Sources   Download

MIT

The Requires

 

The Development Requires

by Maksim Naumov

timer counter metrics monitoring gauge

15/06 2015

1.0.1

1.0.1.0 https://www.hitmeister.de/

Metrics forwarder for PHP.

  Sources   Download

MIT

The Requires

 

The Development Requires

by Maksim Naumov

metrics statsd graphite influxdb monitoring librato udp

14/06 2015

1.0.0

1.0.0.0 https://www.hitmeister.de/

Metrics forwarder for PHP.

  Sources   Download

MIT

The Requires

 

The Development Requires

by Maksim Naumov

metrics statsd graphite influxdb monitoring librato udp