問題
Rubyエージェントが正しく起動していないか、New Relicにデータを報告していません。
解決
この問題を解決するために
Rubyエージェントのバージョン を確認し、必要に応じてアップデートしてください。
アプリケーション環境でnewrelic_rpm
Ruby gem が必要な場合、自動的にモニタリングを開始して New Relic へのメトリクスの送信を開始するか、無効のままにするかを決定しようとします。
プロダクションとステージングです。これらの環境では、エージェントが自動的に監視するように設定されているのが一般的です。
テストと開発。このような環境では、通常、エージェントは無効のままです。
このロジックを制御するには、
newrelic.yml
の各環境セクションでmonitor_mode
構成キーをtrue
またはfalse
に設定します。
エージェントの自動開始ロジックをオーバーライドする最も簡単なメカニズムは、 NEW_RELIC_AGENT_ENABLED=true
環境変数を設定することです。例えば:
NEW_RELIC_AGENT_ENABLED=true rake assets:precompile
Rubyエージェントのバージョン3.6.1以降を使用している場合、エージェントの起動が拒否される原因がいくつかあります。
エージェントは対話型セッション中であることを検出します。たとえば、
rails console
セッションやirb
セッションなどです。エージェントは、それが Rails の組み込み rake タスクの 1 つにあることを検出します。たとえば、
assets:precompile
やdb:migrate
などです。Ruby エージェントの
newrelic.yml
ファイルで構成変数を使用して、定数、スクリプト名、および Rake タスクの自動開始動作をカスタマイズできます。変数
説明
定数
- エージェントの起動を阻止するためのRuby定数です。コンマで区切られたリストを指定します。
- デフォルトは
"Rails::Console"
です。 ""
に設定すると、Rails::Console
環境内にあるときにエージェントを開始するように指示されます。
Rakeのタスク
- エージェントに監視させたくないタスクを Rake します。たとえば、
assets:precompile
。カンマ区切りのリストを受け入れます。 resque:work
のようなタスクは通常監視されるため、すべての rake タスクで Ruby エージェントを無効にするわけではありません。
実行ファイル
- エージェントの自動起動を防ぐスクリプト名のリスト (
irb
など)。カンマ区切りのリストを受け入れます。 - エージェントが rake タスクで開始されないようにするには、これを
"rake"
に設定します。rake およびカスタム スクリプトでエージェントが開始されないようにするには、"rake,my_ruby_script.rb"
に設定します。