该包已被弃用且不再维护。没有推荐替代包。

一个用于与statsd服务器交互的简单库

1.0.0 2012-11-05 22:11 UTC

This package is not auto-updated.

Last update: 2020-02-26 12:17:39 UTC


README

Build Status

这是一个基于Etsy的statsd的PHP客户端,基于John Crepezzi的工作。我们将库重构为composer模块,并稍微开放API以提高灵活性。

安装

composer.json

{
    "repositories": [
        {
            "type": "vcs",
            "url": "https://github.com/classmarkets/php-statsd"
        }
    ],
    "require": {
        "classmarkets/statsd": "~1.0"
    }
}

使用

仪表

$statsd = new \Classmarkets\Statsd;
$statsd->gauge("my.favorite.numbers", 73); // see what I did there?

计数

计数事物

$statsd = new \Classmarkets\Statsd;
$statsd->count('sheep', 3);

计时

记录计时

$statsd = new \Classmarkets\Statsd;
$statsd->timing('critical.query', 18);

计时以毫秒为单位,请参阅 https://github.com/etsy/statsd#timing

计时闭包

并提供一个便利的计时机制

$statsd = new \Classmarkets\Statsd;
$statsd->timeThis('critical.query', function() use ($db) {
    $db->executeCriticalQuery();
});

配置

主机和端口

$statsd = new \Classmarkets\Statsd('localhost', 7000); // default localhost:8125

如果这样调用,Statsd将创建一个默认的UDP套接字。为了获得更多控制,您还可以将套接字作为第三个参数传递

$socket = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP);
socket_set_option($socket, SOL_SOCKET, SO_REUSEADDR, 1);
$statsd = new \Classmarkets\Statsd('localhost', 7000, $socket); // default localhost:8125

采样率

使用说明部分中描述的任何方法都可以接受一个可选的第三个参数 $rate,它是采样率

$statsd = new \Classmarkets\Statsd;
$stats->count('numpoints', 123, 0.1);

对原始库的更改

  • BC break 已删除对CodeIgniter的支持。我们不太熟悉CI,因此无法保证兼容性。支持可能会在未来重新添加。
  • BC breakStatsd 移动到 \Classmarkets 命名空间。
  • BC break 代码风格已更改为PSR-1。现在将 Statsd::time_this() 调用为 Statsd::timeThis()
  • BC breakStatsd::counting() 重命名为 Statsd::count() 以保持一致性
  • Statsd::send() 现在是 public,允许发送任意消息到statsd,例如一次性发送一个换行符分隔的消息批次。
  • 添加了对仪表集合的支持。
  • 所有消息都是通过每个 Statsd 实例的一个套接字发送的,而不是为每个消息创建一个新的套接字,这在使用相同实例时显著提高了速度。
  • 构造函数现在接受一个可选的套接字作为其第三个参数。
  • 所有方法都返回 socket_sendto() 的结果,因此客户端代码可以根据需要处理错误。

作者

许可证

(MIT许可证)

版权所有 © 2012 约翰·克雷佩兹

任何人获得本软件及其相关文档副本(以下简称“软件”)的权限,可自由地处理该软件,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本,并允许提供软件的人员进行此类操作,但需遵守以下条件

上述版权声明和本许可声明应包含在软件的所有副本或实质性部分中。

软件按“现状”提供,不提供任何形式的保证,明示或暗示,包括但不限于适销性、特定用途适用性和非侵权性。在任何情况下,作者或版权所有者不应对任何索赔、损害或其他责任承担责任,无论该责任是基于合同、侵权或其他法律行为,以及与软件或软件的使用或其他操作有关。