domnikl / statsd
3.0.2
2020-01-03 14:24 UTC
Requires
- php: >= 7.2
Requires (Dev)
- flyeralarm/php-code-validator: ^2.2
- phpunit/phpunit: ~8.0
- vimeo/psalm: ^3.4
README
⚠️ 此仓库已废弃,将不再维护。请使用 slickdeals/statsd 代替。
A PHP客户端库,用于统计守护进程(《statsd》)旨在从PHP应用程序发送指标。
安装
安装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 其他几位贡献者 - 感谢!