vend / statsd
此包已被废弃,不再维护。没有建议的替代包。
适用于PHP 5.5+的简单可扩展StatsD客户端库
v1.1.1
2016-02-17 03:27 UTC
Requires
- php: >=5.5.0
- psr/log: ~1.0
Requires (Dev)
- phpunit/phpunit: ^4.8
This package is not auto-updated.
Last update: 2023-08-28 23:26:17 UTC
README
适用于PHP 5.5+的简单可扩展StatsD客户端
功能
- 正确分割大量指标跨越多个数据报文
- 可以替换发送的指标的底层格式,以支持类似Datadog的标签和直方图
- 支持样本率,但将跳过发送的决定留给调用者(使用工厂和套接字直接操作)
- 在发送指标时不会阻塞,只支持UDP(具有主观性,但那可能就是你所需要的)
使用方法
此库在整个过程中使用依赖注入。要实例化客户端,你需要一个套接字和一个工厂。
use Vend\Statsd\Client; use Vend\Statsd\Socket; use Vend\Statsd\Factory; $client = new Client( new Socket(), new Factory() );
一旦你有了客户端,你可以使用熟悉的statsd方法在客户端上排队指标。客户端在调用 ->flush()
之前不会发送它们。
$client->increment('some.metric_key'); // incremented by 1 $client->decrement('some.metric_key'); // decremented by 1 $client->counter('some.counter', 3); // incremented by 3 $client->gauge('some.gauge', 10); $client->timer('some.timer', 0.25); $client->set('some.set', 'some_value'); $client->flush(); // actually sends the metrics
这些方法返回工厂生成的 MetricInterface
(因此你可以附加额外的信息)。
你也可以使用工厂和套接字直接立即发送指标。《MetricInterface》上的 ->getData()
方法提供了应该发送到statsd服务器的序列化字符串。
$socket = new Socket('127.0.0.1', 8125); $factory = new Factory(); $socket->open(); $socket->write($factory->increment('some.key')->getData()); $socket->close();
扩展
有关如何扩展库的示例,请参阅 Vend\Statsd\Datadog
命名空间。通过将其传递给客户端,使用不同的 Factory
。特定的Datadog工厂将允许指标携带标签信息。
NullClient
,ClientAwareInterface
和 ClientAwareTrait
有助于将statsd客户端进行可选(设置)注入到你的类中的实用程序类。使用方法与PSR3等效物几乎相同。