New Relic の Ruby エージェントには、Rake のタスクをインストルメントするためのオプトインサポートがあります。これには
- Rakeバージョン10.0.0以上
- Rubyエージェントバージョン3.13.0以上
Rakeタスクをインストルメント化するには、 newrelic.yml
ファイルでタスクを名前で指定します。
Rakeのサポートを有効にする
アプリのRakeタスクをインストルメント化するには、ターゲットタスクの名前をnewrelic.yml
ファイルのrake.tasks
要素に追加します。 Rubyエージェントは、文字列正規表現を使用して、これらの名前をアクティブなタスクと照合します。
Example: Instrumenting two Rake tasks
たとえば、Rakeタスクdeploy
とdeploy:all
をインストルメント化するには、 newrelic.yml
ファイルに以下を追加します。
rake: tasks: ["deploy", "deploy:all"]
タスク名のマッチングは正規表現を使用するため、 [".+"]
などのワイルドカード正規表現を使用してアプリのすべてのRakeタスクをインストルメント化できます。ただし、これには、 db:migrate
などのautostart.denylisted_rake_tasks
構成設定からデフォルトで拒否リストにあるRakeタスクは含まれません。
- デフォルトで拒否リストに入っているRakeのタスクを含めるには、カスタマイズした拒否リストに入れてください。
- Railsを使用しているが、RakeタスクがRails環境を必要としない場合に、タスクが実行される前にインストルメント化されるようにするには、Rakeタスクの先頭に
require 'tasks/newrelic'
を追加します。
Rakeのジョブ引数の取得
デフォルトでは、Rake のジョブ引数はキャプチャされません。Rakeのジョブ引数をキャプチャするには、次のようにします。
attributes.include: job.rake.*