cosmastech / statsd-client-adapter
用于与DataDog或PHPLeague的statsd客户端一起使用的StatsD客户端适配器
Requires (Dev)
- cosmastech/psr-logger-spy: ^0.0.2
- datadog/php-datadogstatsd: ^1.6.1
- friendsofphp/php-cs-fixer: ^3.59
- league/statsd: ^2.0.0
- phpstan/phpstan: ^1.11
- phpunit/phpunit: ^11.2.5
Suggests
- datadog/php-datadogstatsd: For DataDog stats
- league/statsd: For generic statsd clients
- monolog/monolog: For psr log implementation
- nesbot/carbon: For using Carbon as psr/clock-implementation
Provides
- psr/clock-implementation: 3.0.0
This package is auto-updated.
Last update: 2024-09-21 14:01:41 UTC
README
StatsD客户端适配器
此包最初设计用于解决以下问题:
- 我在生产环境中使用DataDog,但
- 我不想在我的开发或测试环境中将统计数据推送到DataDog
我可能希望将那些宝贵的统计数据推送到哪里?可能是日志?可能是本地运行的 StatsD服务器?如果在我的单元测试中,我想确认正在推送日志,但又不想通过配置StatsD服务器的集成测试设置来麻烦,怎么办?
虽然 PHP League的statsd包 很好,但它不允许发送DataDog特定的统计数据(例如 直方图 或 分布)。DataDog客户端也不允许轻松地推送到另一个StatsD实现。
此处的目标是为这两个实现提供单个接口,并易于扩展以支持不同的实现。
如果您想在Laravel中使用此库,请查看 laravel-statsd-adapter。
适配器
InMemoryClientAdapter
此适配器将您的统计数据简单地记录在内存中的对象中。这最好用作在单元测试中验证统计记录的方式。
有关如何实现此方法的示例,请参阅 examples/in_memory.php。
DataDogStatsDClientAdapter
这是围绕DataDog的 php-datadogstatsd 客户端的一个包装器。
如果您希望使用此适配器,请确保已安装php-datadogstatsd客户端。
composer require datadog/php-datadogstatsd
有关其配置的详细信息,请参阅 官方DogStatsD文档。
有关如何实现此方法的示例,请参阅 examples/datadog.php。
DatadogLoggingClient
此适配器被视为本地开发客户端,它将数据写入实现 psr-logger 接口 的类。您可以在packagist上找到实现此接口的包的 列表。如果您使用的是像Symfony或Laravel这样的框架,那么您已经安装了最流行和最可靠的实现之一: monolog/monolog。
对于本地开发设置,您可以将统计数据直接写入日志。这将以与发送到DataDog相同的格式写入。
有关如何实现此方法的示例,请参阅 examples/log_datadog.php。
LeagueStatsDClientAdapter
您还可以通过利用 PHP League的statsd包 将数据写入任意statsd服务器。
首先确保已安装此包。
composer require league/statsd
有关如何配置客户端的信息,请阅读他们的文档。
注意,默认情况下,histogram()
和distribution()
方法都是无操作(no-op),因为它们在statsd中不可用。
有关如何实现此功能的示例,请参阅examples/league.php。
注意事项
- 只有DataDog的实现中的increment/decrement允许包含样本率。如果您在其他调用中使用样本率,他们的样本率将不会作为统计的一部分包含。
LeagueStatsDClientAdapter
上有histogram()
和distribution()
方法,但它们不会被发送到statsd。
测试
composer test