首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在newrelic中跟踪Que作业?

如何在newrelic中跟踪Que作业?
EN

Stack Overflow用户
提问于 2016-10-06 15:49:00
回答 1查看 165关注 0票数 0

我想在cron作业中运行我的脚本。这个脚本创建了多个Que作业来完成繁重的工作。如何在新的遗物中跟踪每个作业的活动?

我读过这篇关于如何跟踪cronjob的文章https://blog.newrelic.com/2012/05/30/using-new-relic-to-monitor-ruby-background-tasks/,但是由于Que作业是在它自己的worker中管理的(我使用的是puma),所以它不会被跟踪。

这是一个尝试这样做的示例脚本(但它没有跟踪任何东西):

代码语言:javascript
复制
class NewrelicTest

  def run
    Order.all.find_each do |order|
      Job.enqueue(order.id)
    end
  end

  class Job < Que::Job
    include NewRelic::Agent::Instrumentation::ControllerInstrumentation

    def run(id)
      order = Order.find(id)
      do_heavy_work_here(order)
    end

    add_transaction_tracer :run, :category => "OtherTransaction/cronjobs"
  end
end

NewRelic::Agent.manual_start :app_name => "Background Jobs"
NewrelicTest.new.run

谢谢

EN

回答 1

Stack Overflow用户

发布于 2016-10-27 08:58:23

你的脚本看起来不错,但是New Relic不支持Que。

至少它似乎不在他们的文档中列出的官方支持的框架列表中。这可以解释为什么你没有得到你需要的数据。

我肯定会研究一下“定制插装”来实现这一点的可能性。New Relic的Ruby Agent API可以进行自定义,以收集/跟踪其他指标:

https://docs.newrelic.com/docs/agents/ruby-agent/features/ruby-custom-instrumentation

当使用New Relic不支持的后台框架时,我还将添加(下面的链接)是一个很好的起点:

https://docs.newrelic.com/docs/agents/ruby-agent/background-jobs/monitoring-ruby-background-processes-daemons

希望这能让你走得更近。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39890430

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档