tom-schlick/php-resque-statsd

此软件包已被放弃且不再维护。未建议替代软件包。
此软件包最新版本(dev-master)没有可用的许可信息。

将您的 php-resque 作业指标提交到 StatsD/Graphite

dev-master 2013-05-03 04:51 UTC

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_HOSTGRAPHITE_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