Delayed::Job

Pro 以上: バージョン 2.10 現在, Ruby エージェントには、Delayed::Job を計測する機能が組み込まれています。他に必要なものはありません。

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

New Relic Ruby エージェント gem または プラグインが Delayed::Job ワーカーの起動前に読み込まれている場合は、すべてのタスクをコントローラーのアクションと同じ詳細レベルで監視します。このアクションを確認するには、New Relic のメニューバーから、APM > Applications > (選択したアプリ) > Monitoring > Transactions を選択し、次に Other transactions を選択します。また、バックグラウンドタスクの監視およびトラブルシューティングを行うために、カスタムダッシュボードを作成することもできます。

screen-transactions-other
APM > Applications > (選択したアプリ) > Monitoring > Background Tasks: エージェントの設定すると、バックグラウンドタスクとその他のタスクのメトリクスを表示できます。

トラブルシューティング

計測を正確に動作させるには、Delayed::Job 上でエージェントが動いていることを判定できる必要があります。これを行うには、スクリプト名(Rubyにおける $0 変数)を検査して、それが delayed_job で終わかどうかを確認します。delayed_job ワーカーの起動スクリプト名を他の名前に変更している場合、もしくは、カスタムスクリプトが別の名前の場合、Delayed::Jobを使用していることを Delayed::Job ワーカーの起動時にNEW_RELIC_DISPATCHER 環境変数を delayed_job に設定することで、エージェントに明示的に通知する必要があります。

例:

NEW_RELIC_DISPATCHER=delayed_job bundle exec ./script/my_custom_script

ジョブが監視されていないような場合は、ワーカー起動時に生成される newrelic_agent.log ファイルを確認します。
エージェントが DelayedJob を検出して、サーバーと通信するかどうかが記録されているのが普通です。その記録が見つからなかったり、ジョブが表示されない理由が不明な場合は、support.newrelic.com の指示を仰いでください。

関連情報

関連する情報は以下のとおりです。