• EnglishEspañol日本語한국어Português
  • ログイン今すぐ開始

この機械翻訳は参考用に提供されます。

英語版と翻訳版に矛盾がある場合は、英語版が優先されます。詳細については、 を参照してください。

問題を作成する

Delayed::Job Instrumentation

Ruby エージェントには、 Delayed::Jobライブラリ用のインストルメンテーションが組み込まれています。追加の機器は必要ありません。

バックグラウンドタスクの表示

Delayed::Jobワーカーが開始する前に New Relic Ruby エージェントの gem またはプラグインがロードされている限り、すべてのタスクはコントローラー アクションと同じ詳細レベルで監視されます。アクション自体を表示するには:

  1. one.newrelic.com >All capabilities > APM & services > (アプリを選択) > Monitor > Transactionsに移動します。
  2. APM Transactions ページからOther transactions を選択します。

カスタム属性の追加

Delayed::Jobトランザクションにカスタム属性を追加する場合は、ライフサイクル フックを介してDelayed::Jobプラグインを作成し、実行されたジョブごとにそれらの属性をトランザクションに追加できます。

  1. 以下のような構造のプラグインを作成します。
module NewRelicInstrumenter
class DelayedJobPlugin < Delayed::Plugin
callbacks do |lifecycle|
lifecycle.around(:invoke_job) do |job, *args, &block|
# Forward the call to the next callback in the callback chain
::NewRelic::Agent.add_custom_attributes(
{
# Any custom attributes go here -- from here you can access info
# about the job like run_at, created_at, etc
my_custom_attribute: "my_custom_attribute_value"
}
)
block.call(job, *args)
end
end
end
end
  1. config/initializers/delayed_job.rbファイルの初期化子でDelayed::Jobにプラグインを追加します。
require "new_relic_instrumenter"
Delayed::Worker.plugins << NewRelicInstrumenter::DelayedJobPlugin

トラブルシューティング

Ruby エージェントは、インストルメンテーションを正しくセットアップするために、 Delayed::Jobで実行されていることを識別できることに依存しています。これを行うために、スクリプト名 (Ruby では$0変数) を調べて、それがdelayed_jobで終わっているかどうかを確認します。

delayed_jobワーカーの起動に使用するスクリプトの名前を別の名前に変更した場合、または別の名前のカスタム スクリプトがある場合は、 Delayed::Jobを使用していることをエージェントに明示的に伝える必要があります。 NEW_RELIC_DISPATCHER環境変数をDelayed::Jobワーカーの開始時にdelayed_jobに設定します。例えば:

bash
$
NEW_RELIC_DISPATCHER=delayed_job bundle exec ./script/my_custom_script

ジョブが監視されていないように見える場合は、ワーカーの起動時に生成されるnewrelic_agent.logファイルを確認してください。エージェントがDelayedを検出してサーバーと通信するかどうかを示す必要があります。ログが見つからない場合、またはジョブが表示されない理由を特定できない場合は、 support.newrelic.comでサポートを受けてください。

Copyright © 2024 New Relic株式会社。

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.