estvoyage / statsd
面向东的StatsD客户端
dev-master
2015-04-29 09:54 UTC
Requires
- php: >=5.6.0
- estvoyage/net: @dev
Requires (Dev)
- mageekguy/atoum: @dev
This package is auto-updated.
Last update: 2024-08-28 08:37:01 UTC
README
PHP编写的面向东的StatsD客户端!
类似于 statsd-php,estvoyage\statsd 是一个用PHP编写的 StatsD 客户端。
然而,它使用东向指南针进行设计,因此所有类中的所有公共方法都返回 $this
,即类的实例或任何不是类属性的值。
为什么?因为这个独特规则的严格应用减少了耦合以及需要编写的代码量,同时增加了代码的清晰度、内聚性、灵活性、可重用性和可测试性。
实际上,使用东向原则强制使用接口进行抽象,以及缺少getter强制使用 tell, don't ask 原则、控制反转、依赖注入和接口。
安装
使用 estvoyage\statsd 的最小PHP版本是5.6。
推荐通过 Composer 安装,只需在您的 composer.json
中添加此内容,然后执行 php composer.phar install
{ "require": { "estvoyage/statsd": "@dev" } }
使用方法
简而言之
<?php require __DIR__ . '/../vendor/autoload.php'; use estvoyage\data estvoyage\statsd, estvoyage\statsd\metric, estvoyage\statsd\metric\bucket, estvoyage\statsd\metric\value, estvoyage\statsd\metric\sampling ; class console implements data\consumer { function dataProviderIs(data\provider $dataProvider) { $dataProvider->dataConsumerIs($this); return $this; } function newData(data\data $data) { echo 'New metric: <' . str_replace("\n", '\n' , $data) . '>' . PHP_EOL; return $this; } function noMoreData() { return $this; } } (new statsd\client\etsy(new metric\consumer\dataConsumer(new console))) ->newStatsdMetric(new metric\counting(new bucket('gorets'))) ->newStatsdMetric(new metric\counting(new bucket('gorets'), new value(666))) ->newStatsdMetric(new metric\counting(new bucket('gorets'), new value(999), new sampling(.1))) ->newStatsdMetric(new metric\timing(new bucket('glork'), new value(320))) ->newStatsdMetric(new metric\timing(new bucket('glork'), new value(320), new sampling(.1))) ->newStatsdMetric(new metric\gauge(new bucket('gaugor'), new value(333))) ->newStatsdMetric(new metric\set(new bucket('uniques'), new value(765))) ; /* Output should be something like: New metric: <gorets:1|c\n> New metric: <gorets:666|c\n> New metric: <gorets:999|c|@0.1\n> New metric: <glork:320|ms\n> New metric: <glork:320|ms|@0.1\n> New metric: <gaugor:333|g\n> New metric: <uniques:765|s\n> */
在捆绑的 examples
目录中有一个可工作的脚本,只需执行 php examples/nutshell.php
来运行它。在 examples
目录中还有关于数据包、mtu、套接字和度量提供程序的更多有趣示例。
单元测试
使用Composer设置测试套件
$ composer install --dev
使用 atoum 运行
$ vendor/bin/atoum
贡献
有关详细信息,请参阅捆绑的 CONTRIBUTING
文件。
许可
estvoyage\statsd 在FreeBSD许可证下发布,有关详细信息,请参阅捆绑的 COPYING
文件。