talentrydev / monitoring
基于指标的PHP应用监控库
4.0.0
2024-05-31 13:35 UTC
Requires
- php: ^8.3
- ext-json: *
- ext-sockets: *
- league/statsd: ^2.0
- predis/predis: ^1.1 || ^2.0
- psr/log: ^1.1 || ^2 || ^3
- symfony/console: ^6.0
- talentrydev/error-handling: ^3.0.0
Requires (Dev)
- colinodell/psr-testlogger: ^1.3.0
- phpunit/phpunit: ^11
- squizlabs/php_codesniffer: ^3.7
README
此库提供了将指标推送到监控服务的手段。目前,它支持将指标推送到任何符合StatsD规范的实现。
指标类型
增量指标
用于跟踪随时间累积的数据,例如跟踪请求数量。这是一个简单的指标,仅通过名称标识。每次推送此指标时,它都会增加1。
减量指标
与增量指标相同,但相反(递减而不是递增)。
仪表指标
用于跟踪随时间变化的状态,例如服务器负载。它通过名称和值来标识。
计时指标
与仪表指标类似,它通过名称和值(在此情况下,值是计时度量)来标识(除了在这种情况下,值是计时度量)。用于跟踪计时,如响应时间。时间以毫秒为单位。
如何使用
- 实现上述四种指标类型之一。或者,您可以使用Metrics实用类即时创建指标。实现自己的指标是首选。
- 使用MonitorFactory创建Monitor实例
- 创建您的指标实例,并使用Monitor(使用
push
方法)推送它。
指标命名
使用点分隔的表示法创建命名空间,例如
system.load.memory
system.load.disk
示例
为StatsD指标创建Monitor
use Talentry\Monitoring\Infrastructure\Metric\PhpLeagueStatsdClient;
use Talentry\Monitoring\Infrastructure\Monitor\MonitorFactory;
use Talentry\Monitoring\Infrastructure\Metric\MetricStoreFactory;
$metricStore = (new MetricStoreFactory('statsd-host', 8125))->generate();
$monitor = (new MonitorFactory($metricStore))->generate();