adgoal / statsd-php-client
PHP 的 Statsd(面向对象)客户端库
v1.1
2019-06-11 12:03 UTC
Requires
- php: >=5.6
- ext-json: *
- ext-sockets: *
Requires (Dev)
- monolog/monolog: >=1.2.0
- php-coveralls/php-coveralls: ^2.1
- phpunit/phpunit: ^4.7
Suggests
- monolog/monolog: Monolog, in order to do generate statistic from log >=1.2.0)
This package is auto-updated.
Last update: 2024-09-11 23:28:52 UTC
README
statsd-php-client
是一个开源的、面向对象的 etsy/statsd
客户端,用 PHP 编写
使用 composer 安装
composer require adgoal/statsd-php-client
简单用法
use Liuggio\StatsdClient\Service\StatsdService; $statsd = new StatsdService(); $statsd->timing('usageTime', 100); $statsd->increment('visitor'); $statsd->decrement('click'); $statsd->gauge('gaugor', 333); $statsd->set('uniques', 765); $statsd->flush();
为什么使用这个库而不是 statsd/php-example?
-
你很明智。
-
你也可以使用 monolog 将数据重定向到 statsd
-
这个库经过了测试。
-
这个库优化了发送的消息,将多个消息压缩到单个 UDP 数据包中。
-
这个库关注 UDP 的最大长度。
-
这个库使用对象而不是数组构建,但也接受数组。
-
你想调试数据包,并使用
SysLogSender
,数据包将被记录在您的syslog
日志中(在类似 debian 的发行版中:tail -f /var/log/syslog
)
高级实例化
use Liuggio\StatsdClient\StatsdClient, Liuggio\StatsdClient\Factory\StatsdDataFactory, Liuggio\StatsdClient\Sender\SocketSender, Liuggio\StatsdClient\Service\StatsdService; // use Liuggio\StatsdClient\Sender\SysLogSender; $sender = new SocketSender(/*'localhost', 8126, 'udp'*/); // $sender = new SysLogSender(); // enabling this, the packet will not send over the socket $client = new StatsdClient($sender); $factory = new StatsdDataFactory(Liuggio\StatsdClient\Entity\StatsdData::class); $service = new StatsdService($client, $factory); // create the metrics with the service $service->timing('usageTime', 100); //... // send the data to statsd $service->flush();
与 Monolog 一起使用
use Liuggio\StatsdClient\StatsdClient, Liuggio\StatsdClient\Factory\StatsdDataFactory, Liuggio\StatsdClient\Sender\SocketSender; // use Liuggio\StatsdClient\Sender\SysLogSender; use Monolog\Logger; use Liuggio\StatsdClient\Monolog\Handler\StatsDHandler; $sender = new SocketSender(/*'localhost', 8126, 'udp'*/); // $sender = new SysLogSender(); // enabling this, the packet will not send over the socket $client = new StatsdClient($sender); $factory = new StatsdDataFactory(); $logger = new Logger('my_logger'); $logger->pushHandler(new StatsDHandler($client, $factory, 'prefix', Logger::DEBUG)); $logger->addInfo('My logger is now ready');
输出将是: prefix.my_logger.INFO.My-logger:1|c" 36 Bytes
简短理论
轻松安装 StatSD 和 Graphite
为了尝试此应用程序监控器,您必须安装 etsy/statsd 和 Graphite
查看此博客文章以了解如何使用 vagrant 安装它 Easy install statsd graphite。
StatsD
StatsD 是一个简单的守护程序,用于轻松聚合统计信息
Graphite
Graphite 是可扩展的实时图形工具
客户端使用 UDP 发送数据(更快)
https://www.google.com/search?q=tcp+vs+udp
贡献
欢迎积极贡献和补丁。为了保持事物整洁,我们有很多单元测试。如果您提交了拉取请求,请确保它们仍然通过,如果您添加了功能,请查看覆盖率,它应该相当高:)
- 首先分叉或克隆存储库
git clone git://github.com/liuggio/statsd-php-client.git
cd statsd-php-client
- 安装供应商
composer.phar install
- 这将给出适当的结果
phpunit --coverage-html reports
核心开发者
该项目由 David Moreau(又名 @dav-m85 和 @liuggio)积极维护