adgoal/statsd-php-client
Composer 安装命令:
composer require adgoal/statsd-php-client
包简介
Statsd (Object Oriented) client library for PHP
关键字:
README 文档
README
statsd-php-client is an Open Source, and Object Oriented Client for etsy/statsd written in php
Install with composer
composer require adgoal/statsd-php-client
Simple Usage
use Liuggio\StatsdClient\Service\StatsdService; $statsd = new StatsdService(); $statsd->timing('usageTime', 100); $statsd->increment('visitor'); $statsd->decrement('click'); $statsd->gauge('gaugor', 333); $statsd->set('uniques', 765); $statsd->flush();
Why use this library instead the statsd/php-example?
-
You are wise.
-
You could also use monolog to redirect data to statsd
-
This library is tested.
-
This library optimizes the messages to send, compressing multiple messages in individual UDP packets.
-
This library pays attention to the maximum length of the UDP.
-
This library is made by Objects not array, but it also accepts array.
-
You do want to debug the packets, and using
SysLogSenderthe packets will be logged in yoursysloglog (on debian-like distro:tail -f /var/log/syslog)
Advanced Instantiation
use Liuggio\StatsdClient\StatsdClient, Liuggio\StatsdClient\Factory\StatsdDataFactory, Liuggio\StatsdClient\Sender\SocketSender, Liuggio\StatsdClient\Service\StatsdService; // use Liuggio\StatsdClient\Sender\SysLogSender; $sender = new SocketSender(/*'localhost', 8126, 'udp'*/); // $sender = new SysLogSender(); // enabling this, the packet will not send over the socket $client = new StatsdClient($sender); $factory = new StatsdDataFactory(Liuggio\StatsdClient\Entity\StatsdData::class); $service = new StatsdService($client, $factory); // create the metrics with the service $service->timing('usageTime', 100); //... // send the data to statsd $service->flush();
Usage with Monolog
use Liuggio\StatsdClient\StatsdClient, Liuggio\StatsdClient\Factory\StatsdDataFactory, Liuggio\StatsdClient\Sender\SocketSender; // use Liuggio\StatsdClient\Sender\SysLogSender; use Monolog\Logger; use Liuggio\StatsdClient\Monolog\Handler\StatsDHandler; $sender = new SocketSender(/*'localhost', 8126, 'udp'*/); // $sender = new SysLogSender(); // enabling this, the packet will not send over the socket $client = new StatsdClient($sender); $factory = new StatsdDataFactory(); $logger = new Logger('my_logger'); $logger->pushHandler(new StatsDHandler($client, $factory, 'prefix', Logger::DEBUG)); $logger->addInfo('My logger is now ready');
the output will be: prefix.my_logger.INFO.My-logger:1|c" 36 Bytes
Short Theory
Easily Install StatSD and Graphite
In order to try this application monitor you have to install etsy/statsd and Graphite
see this blog post to install it with vagrant Easy install statsd graphite.
StatsD
StatsD is a simple daemon for easy stats aggregation
Graphite
Graphite is a Scalable Realtime Graphing
The Client sends data with UDP (faster)
https://www.google.com/search?q=tcp+vs+udp
Contribution
Active contribution and patches are very welcome. To keep things in shape we have quite a bunch of unit tests. If you're submitting pull requests please make sure that they are still passing and if you add functionality please take a look at the coverage as well it should be pretty high :)
- First fork or clone the repository
git clone git://github.com/liuggio/statsd-php-client.git
cd statsd-php-client
- Install vendors:
composer.phar install
- This will give you proper results:
phpunit --coverage-html reports
Core developers:
This project is actively mantained by David Moreau AKA @dav-m85 and @liuggio
adgoal/statsd-php-client 适用场景与选型建议
adgoal/statsd-php-client 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 4.02k 次下载、GitHub Stars 达 0, 最近一次更新时间为 2019 年 06 月 11 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「php」 「monitoring」 「statsd」 「etsy」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 adgoal/statsd-php-client 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 adgoal/statsd-php-client 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 adgoal/statsd-php-client 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
Collections of statsd collectors with templated metric names
A Symfony bundle for chameleon-system/sanitycheck
SoftWax Health Check Bundle for Symfony framework
1Pilot client for Symfony
APM agent for laravel projects to monitor the application with elastic apm tools.
Production-ready Laravel Prometheus metrics package with built-in collectors for HTTP, database, cache, queue, events, errors, filesystem, and mail monitoring
统计信息
- 总下载量: 4.02k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 8
- 依赖项目数: 2
- 推荐数: 1
其他信息
- 授权协议: MIT
- 更新时间: 2019-06-11