invoiced / php-resque-statsd
将 php-resque 作业的指标提交到 StatsD/Graphite
Requires
- php: >=5.3.0
- chrisboulton/php-resque: *
This package is auto-updated.
Last update: 2024-09-13 07:47:21 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
包含单个冒号和随后的一或多个数字,则将解释为 HOST:PORT 组合,并相应地设置主机和端口。
如果您在项目中不使用环境变量,您仍然可以告诉 php-resque-statsd StatsD 的位置
$host = '127.0.0.1';
$port = 8579;
require_once '/path/to/ResqueStatsD.php';
ResqueStatsd::setHost($host, $port);
指标
php-resque-statsd 默认为其生成的所有指标使用前缀 resque
。如果需要,您可以覆盖此行为。
require_once '/path/to/ResqueStatsd.php';
ResqueStatsd::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