重要
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
クロスアプリケーショントレース測定
(呼び出し元のアプリケーションからの)外部測定値は、(呼び出されたアプリケーションからの)内部測定値よりも常に大きくなります。外部測定値は、New RelicのHTTPクライアントライブラリ(Net :: HTTPなど)のインストルメンテーションによって収集されます。内部測定は、呼び出されたアプリケーションのWebフレームワーク(Railsなど)のNewRelicのインストルメンテーションによって行われます。
内部測定に含まれていない、外部測定に含まれている主要なコンポーネントのいくつかを次に示します。
これらのコンポーネントの中には、他のコンポーネントよりも制御が簡単なものがあります。たとえば、上記の受信ホストアイテムのタイミングをキャプチャするには、受信アプリケーションでリクエストキューの監視が設定されていることを確認してください。
分散トレースを取得する
Rubyエージェントのバージョン8.0.0以降、分散トレースはデフォルトでオンになっています。分散トレースは、アプリケーション間のトレースを改善したものであり、大規模な分散システムに推奨されます。