league/statsd

一个用于在PHP中处理StatsD的简单库。

2.0.0 2022-01-15 03:21 UTC

This package is auto-updated.

Last update: 2024-09-13 21:30:51 UTC


README

Build Status Total Downloads Latest Stable Version

一个用于在PHP中处理StatsD的库。

安装

通过Composer

composer require league/statsd

要使用Statsd服务提供者,您必须在引导Laravel应用程序时注册该提供者。

使用方法

配置

$statsd = new League\StatsD\Client();
$statsd->configure([
    'host' => '127.0.0.1',
    'port' => 8125,
    'namespace' => 'example'
]);

或者

$statsd1 = StatsD\Client::instance('server1')->configure([...]);
$statsd2 = StatsD\Client::instance('server2')->configure([...]);

StatsD客户端默认情况下等待ini_get('default_socket_timeout')秒来打开套接字。要减少超时,请将'timeout' => <float>添加到您的配置中。

如果StatsD客户端无法向StatsD服务器发送数据,它将抛出ConnectionException。您可以选择禁用这些异常并记录PHP警告。要这样做,请在您的配置中包含以下内容

    'throwConnectionExceptions' => false

如果省略,此选项默认为true

计数器

$statsd->increment('web.pageview');
$statsd->decrement('storage.remaining');
$statsd->increment([
    'first.metric',
    'second.metric'
], 2);
$statsd->increment('web.clicks', 1, 0.5);

仪表

$statsd->gauge('api.logged_in_users', 123456);

集合

$userID = 23;
$statsd->set('api.unique_logins', $userID);

计时器

$statsd->timing('api.response_time', 256);
$metrics = array('api.response_time' => 256, 'api.memory' => 4096));
$statsd->timings($metrics);

计时块

$statsd->time('api.dbcall', function () {
    // this code execution will be timed and recorded in ms
});

标签

注意! 该功能支持Datadog格式的标签功能!

您可以为客户端发送的所有度量配置它。

$statsd->configure([
    'tags' => ['some_general_tag' => 'value']
]);

或者您可以为单个度量发送它。

$statsd->increment('web.clicks', 1, 1, ['host' => $_SERVER['HTTP_HOST']]);

框架集成

尽管这个库可以与任何PHP框架一起使用,但以下是一些通过包含的适配器快速集成最流行框架的方法。

Laravel 4.x

在您的app/config/app.php中找到providers密钥并注册Statsd服务提供者。

    'providers' => [
        // ...
        'League\StatsD\Laravel\Provider\StatsdServiceProvider',
    ]

在您的app/config/app.php中找到aliases密钥并添加Statsd外观别名。

    'aliases' => [
        // ...
        'Statsd' => 'League\StatsD\Laravel\Facade\StatsdFacade',
    ]

Laravel 5.x

如果您使用Laravel >=5.5,statsd使用包发现自动注册服务提供者和外观。

对于Laravel 5的旧版本,或者如果您禁用了包发现

在您的config/app.php中找到providers密钥并注册Statsd服务提供者。

    'providers' => [
        // ...
        League\StatsD\Laravel5\Provider\StatsdServiceProvider::class,
    ]

在您的app/config/app.php中找到aliases密钥并添加Statsd外观别名。

    'aliases' => [
        // ...
        'Statsd' => League\StatsD\Laravel5\Facade\StatsdFacade::class,
    ]

Lumen

在您的引导应用程序文件boostrap/app.php中注册提供者。

在文件的“注册服务提供者”部分底部添加以下行。

$app->register(\League\StatsD\Laravel5\Provider\StatsdServiceProvider::class);

将配置文件statsd.php手动从目录/vendor/league/statsd/config复制到目录/config (您可能需要创建此目录)。

包配置

在您的.env文件中添加配置

STATSD_HOST=127.0.0.1
STATSD_PORT=8125
STATSD_NAMESPACE=

测试

phpunit

贡献

有关详细信息,请参阅CONTRIBUTING

鸣谢

许可协议

MIT许可协议(MIT)。请参阅许可文件以获取更多信息。