adgoal/statsd-php-client

PHP 的 Statsd(面向对象)客户端库

v1.1 2019-06-11 12:03 UTC

README

Build Status Latest Stable Version Total Downloads Coverage Status

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)积极维护