重要
Rubyエージェントのバージョン8.0.0以降、分散トレースはデフォルトでオンになっています。分散トレースは、アプリケーション間のトレースを改善し、大規模な分散システムに推奨されます。
クロスアプリケーション トレーシングは、ディストリビューティッド(分散)トレーシングに置き換えられて非推奨となり、将来のエージェント バージョンでは削除される予定です。 非標準ミドルウェア フレームワークなどでクロスアプリケーション トレースを引き続き使用する必要がある場合は、このドキュメントの設定情報を参照してください。
要件
次の要件に従って、Rubyエージェントでクロスアプリケーショントレースを使用します。
- インストルメントされるリクエストが、サポートされているHTTPクライアントライブラリを使用していることを確認してください。
- 最新のRubyエージェント(バージョン3.5.5.38以降)をインストールまたは更新します。
- ミドルウェアのインストールの要件に従います。
ミドルウェアのインストール
クロスアプリケーショントレースはRackで機能するため、Rails2.3以降または別の互換性のあるフレームワークが必要です。
- Railsを使用する場合、Rubyエージェントはミドルウェアを自動的にインストールします。
- 別のラックベースのフレームワークを使用している場合は、手動で
NewRelic::Rack::AgentHooks
ミドルウェアをスタックに追加してください。
構成
クロスアプリケーショントレースは、構成フラグによって制御できます。 Rubyエージェントのバージョン8.0.0以降、指定されていない場合でも、 cross_application_tracer.enabled
のデフォルトはfalse
です。クロスアプリケーショントレースを有効にするには、このフラグをtrue
に設定し、 distributed_tracing.enabled
をfalse
に設定する必要があります。
cross_application_tracer: enabled: truedistributed_tracing: enabled: false
8.0.0未満のバージョンの場合、クロスアプリケーションは次の設定を使用して構成できます。
cross_application_tracer: enabled: true
クロスアプリケーショントレース測定
(呼び出し側アプリケーションからの) external測定値は、(呼び出されたアプリケーションからの) internal測定値よりも常に大きくなります。 外部計測は、 New Relicの HTTP クライアント ライブラリ (Net::HTTP など) のインストゥルメンテーションによって収集されます。 内部計測は、呼び出されたアプリケーション内のWebフレームワーク(Railsなど)のNew Relicのインストゥルメンテーションによって行われます。
内部測定に含まれていない、外部測定に含まれている主要なコンポーネントのいくつかを次に示します。
これらのコンポーネントの中には、他のコンポーネントよりも制御が容易なものもあります。 たとえば、上記のReceiving host項目のタイミングをキャプチャするには、受信側アプリケーションでリクエスト キューの監視が設定されていることを確認します。
分散トレースを取得する
Rubyエージェントのバージョン8.0.0以降、分散トレースはデフォルトでオンになっています。分散トレースは、アプリケーション間のトレースを改善したものであり、大規模な分散システムに推奨されます。