Rubyエージェントは、 Rack ミドルウェアを自動的に計測します。Rackミドルウェアの基本に慣れていない場合は、Rails on Rackガイド からリンクされている のリソースを参照してください。また、RubyエージェントはRackミドルウェアを介していくつかの機能を提供します。
New Relic は、Rails と Sinatra 用のこれらのミドルウェアを自動的にインストールします。
ラックの計測器
Rackのミドルウェアを設定する最も一般的な方法は、 Rack::Builder
API(最も多いのは config.ru )とRailsのミドルウェアスタック設定の2つです。
ミドルウェアデータの閲覧
ミドルウェアのデータをAPMで見ることができます。
ラックインストルメントの無効化
ラックミドルウェアをインスツルメンテーションしたくない場合は、 disable_middleware_instrumentation
の設定でラックミドルウェアのインスツルメンテーションを無効にすることができます。また、 特定のトランザクションを無視することもできます。.
Rubyエージェント・ミドルウェアの手動インストール
New Relic の クロスアプリケーショントレース 機能の Ruby エージェントの実装では、Rack ミドルウェアのインスツルメンテーションを使用して、監視対象のアプリケーション間で情報の受け渡しに必要な HTTP ヘッダーを読み書きしています。Sinatra を使用していて、上記のようにミドルウェアのインスツルメンテーションを無効にしていて、クロスアプリケーショントレースを使用したい場合は、手動で NewRelic::Rack::AgentHooks
ミドルウェアをミドルウェアスタックに追加する必要があります。
重要
バージョン8.0.0では、クロスアプリケーショントレースは廃止され、 分散型トレース が採用されています。この機能を有効にすると、ミドルウェアを追加することなく、すべてのラックベースのアプリに対して分散型トレーシングが自動的に設定されます。
クロスアプリケーショントレースを継続して使用したい場合は、 設定を更新する必要があります 。
ラックの手動計測器
以前のバージョンの Ruby エージェントでは、 NewRelic::Agent::Instrumentation::Rack
モジュールを用いて Rack ミドルウェアを手動でインスツルメンテーションすることができました。このインスツルメンテーションは、ミドルウェアの自動インスツルメンテーションには不要なため、Rubyエージェントのバージョン3.9.0以降では非推奨となっています。New Relic では、3.9.0 以降にアップグレードした後は、このモジュールへの参照をコードから削除することをお勧めします。