私はニューレリックで働いています。
実行時に New Relic のミドルウェアが表示されない理由rake middleware
は、条件付きでミドルウェア スタックに挿入されるためです。これらのミドルウェアは、エージェントが現在の環境で実行するように構成されている場合にのみ挿入されます。rake タスクの開始時にコマンドラインで設定することにより、実行時に New Relic のミドルウェアを強制的に挿入してrake middleware
、ミドルウェア スタックを検査することができます。NEW_RELIC_AGENT_ENABLED=true
次のコードを追加するconfig/application.rb
と、ブラウザ監視ミドルウェアが動的コンテンツを挿入する前に、Rack::ETag ミドルウェアが ETag を計算して挿入できるようになります。
config.after_initialize do
config.middleware.delete "Rack::ETag"
config.middleware.insert_after "NewRelic::Rack::BrowserMonitoring", "Rack::ETag"
end
ミドルウェアによって応答に挿入される JavaScript コードNewRelic::Rack::BrowserMonitoring
が動的である理由は、サーバー側で応答が生成されるまでにかかった時間と、(該当する場合) Rails スタックに到達するまでにキューに入れられた時間のタイミングが含まれているためです。これらのタイミングは、着信リクエストごとに異なります。動的情報が挿入される前にページ コンテンツのハッシュに基づいて ETag が生成される場合、応答がキャッシュから処理されるときに古いサーバー側のタイミングが使用される可能性があります。これが New Relic によってどのように処理されるかについての詳細は、https ://newrelic.com/docs/features/how-does-real-user-monitoring-work#cached-pages で読むことができます。
これは、ミドルウェアを正しく注文するための優れた概要でもあります: http://verboselogging.com/2010/01/20/proper-rack-middleware-ordering
さらに詳細なヘルプが必要な場合は、support@newrelic.com にメールでチケットを送信してください。