tom-schlick / php-resque-statsd
将您的 php-resque 作业指标提交到 StatsD/Graphite
Requires
- php: >=5.3.0
- chrisboulton/php-resque: *
This package is auto-updated.
Last update: 2020-03-22 22:35:44 UTC
README
php-resque-statsd 将 StatsD 指标跟踪集成到 php-resque 中。
对于每个被 php-resque 捕获的作业,将向 StatsD 提交大量指标,包括跟踪作业执行次数的计数器,以及跟踪 php-resque 工作者工作时间的计时器。
php-resque-statsd 还包括对跟踪使用 php-resque-scheduler 安排的作业指标的的支持。自动注册了适当的监听器来跟踪安排的作业,因此无需您额外操作。
使用 php-resque-statsd
php-resque-statsd 存在为一个单独的类(lib/ResqueStatsd.php
),它没有超出 php-resque 本身的额外依赖。
要开始使用 StatsD 跟踪您的作业,您只需将 ResqueStatsd.php
包含到您的项目中即可。
如果您使用随 php-resque 一起提供的 resque.php 脚本启动 php-resque,所有需要修改的是您通过 APP_INCLUDE
环境变量提供给 php-resque 的引导文件。
require_once '/path/to/ResqueStatsd.php';
StatsD 连接详细信息
如果它们存在,php-resque-scheduler 将自动检查以下环境变量并使用它们连接到 StatsD
STATSD_HOST
/STATSD_PORT
GRAPHITE_HOST
为了便于与现有设置集成,如果 STATSD_HOST
或 GRAPHITE_HOST
包含单个冒号然后是一个或多个数字,这将解释为主机:端口号组合,并将相应地设置主机和端口。
如果您在项目中不使用环境变量,您仍然可以告诉 php-resque-statsd StatsD 的位置
$host = '127.0.0.1';
$port = 8579;
require_once '/path/to/ResqueStatsd.php';
Resque_Statsd::setServer($host, $port);
指标
php-resque-statsd 以 resque
为前缀生成所有指标。如果您希望,可以覆盖此行为。
require_once '/path/to/ResqueStatsd.php';
Resque_Statsd::setPrefix('resque.production');
基于队列的指标
以下指标针对每个队列跟踪,而不是每个唯一的作业
-
stats.resque.queue.QUEUE_NAME.enqueued 此队列中入队的作业计数器
-
stats.resque.queue.QUEUE_NAME.finished 此队列中成功处理的作业计数器
-
stats.resque.queue.QUEUE_NAME.failed 此队列中失败的作业计数器
-
stats.timers.queue.QUEUE_NAME.processed 此队列中处理的作业计时器
-
stats.resque.queue.QUEUE_NAME.scheduled 如果使用 php-resque-scheduler,则在此队列中安排的未来执行的作业数量
例如,对于在队列 transcode
中执行的 所有作业,将创建以下 StatsD 指标
- stats.resque.queue.transcode.enqueued
- stats.resque.queue.transcode.finished
- stats.resque.queue.transcode.failed
- stats.timers.resque.queue.transcode.processed
- stats.resque.queue.transcode.scheduled
基于作业的指标
指标也在作业级别上跟踪
-
stats.resque.job.JOB_CLASS.enqueued 统计该任务被入队次数的计数器
-
stats.resque.job.JOB_CLASS.finished 统计该任务成功处理次数的计数器
-
stats.resque.job.JOB_CLASS.failed 统计该任务失败次数的计数器
-
stats.timers.job.JOB_CLASS.processed 处理该任务所花费时间的计时器
-
stats.resque.job.JOB_CLASS.scheduled 如果使用php-resque-scheduler,则统计该任务未来执行被排期次数
例如,一个名为Job_SendEmail
的任务,将创建以下指标
- stats.resque.job.Job_SendEmail.enqueued
- stats.resque.job.Job_SendEmail.finished
- stats.resque.job.Job_SendEmail.failed
- stats.timers.resque.job.Job_SendEmail.processed
- stats.resque.job.Job_SendEmail.scheduled
贡献者
- chrisboulton