domnikl/statsd

此包已被废弃,不再维护。作者建议使用slickdeals/statsd包。

statsd的PHP客户端

3.0.2 2020-01-03 14:24 UTC

README

⚠️ 此仓库已废弃,将不再维护。请使用 slickdeals/statsd 代替。

A PHP客户端库,用于统计守护进程(《statsd》)旨在从PHP应用程序发送指标。

Build Status Donate

安装

安装statsd-php的最佳方式是使用Composer,并将以下内容添加到您的项目的composer.json文件中

{
    "require": {
        "domnikl/statsd": "~3.0"
    }
}

使用

<?php
$connection = new \Domnikl\Statsd\Connection\UdpSocket('localhost', 8125);
$statsd = new \Domnikl\Statsd\Client($connection, "test.namespace");

// the global namespace is prepended to every key (optional)
$statsd->setNamespace("test");

// simple counts
$statsd->increment("foo.bar");
$statsd->decrement("foo.bar");
$statsd->count("foo.bar", 1000);

在建立与statsd的连接并发送指标时,将抑制错误以防止您的应用程序崩溃。

如果您以TCP模式运行statsd,还有一个类似于UdpSocket\Domnikl\Statsd\Connection\TcpSocket适配器,但它会在无法建立连接时抛出\Domnikl\Statsd\Connection\TcpSocketException。请注意,与UDP不同,TCP用于可靠的网络,因此在TCP模式下不会抑制异常(和错误)。

计时

<?php
// timings
$statsd->timing("foo.bar", 320);
$statsd->time("foo.bar.bla", function() {
    // code to be measured goes here ...
});

// more complex timings can be handled with startTiming() and endTiming()
$statsd->startTiming("foo.bar");
// more complex code here ...
$statsd->endTiming("foo.bar");

内存分析

<?php
// memory profiling
$statsd->startMemoryProfile('memory.foo');
// some complex code goes here ...
$statsd->endMemoryProfile('memory.foo');

// report peak usage
$statsd->memory('foo.memory_peak_usage');

仪表

statsd支持仪表,可以记录任意值。

此方法接受绝对(3)和增量(+11)值。

注意: 负值被视为增量值,而不是绝对值。

<?php
// Absolute value
$statsd->gauge('foobar', 3);

// Pass delta values as a string. 
// Accepts both positive (+11) and negative (-4) delta values.
$statsd->gauge('foobar', '+11'); 

集合

statsd支持集合,因此您可以查看给定值的唯一性。

<?php
$statsd->set('userId', 1234);

禁用指标发送

要禁用向statsd服务器发送任何指标,您可以使用Domnikl\Statsd\Connection\Blackhole连接类而不是默认的套接字抽象。这可能非常有用,例如用于功能标志。另一种选择是使用Domnikl\Statsd\Connection\InMemory连接类,它将收集您的消息但不会实际发送它们。

作者

原作者:Dominik Liebler liebler.dominik@gmail.com 其他几位贡献者 - 感谢!