Ruby でのクロスアプリケーショントレース

Ruby エージェントのユーザー: 非標準のミドルウェアフレームワークを使用する場合は、以下に従って、New Relic のクロスアプリケーションのトレース機能をインストールし、設定してください。

要件

Ruby エージェントで クロスアプリケーショントレースを使うには、以下の要件に従ってください。

  1. 計測しているリクエストがサポートしている HTTP クライアントライブラリ を使っているか確かめてください。
  2. 最新の Ruby エージェント (バージョン 3.5.5.38 以上)をインストールもしくは更新してください。
  3. ミドルウェアのインストール要件に従ってください。

ミドルウェアのインストール

クロスアプリケーショントレースは、Rack 上で動作します、よって、 Rails 2.3 以上もしくは、互換性のある別のフレームワークが必要となります。

  • Rails を使っている場合、Ruby エージェントは、ミドルウェアを自動でインストールします。
  • Rack ベースの他のフレームワークを使っている場合、手動で、NewRelic::Rack::AgentHooks ミドルウェアをお使いのスタックに追加します。

設定

クロスアプリケーショントレースは、設定フラグによって制御可能です。

    cross_application_tracer
      enabled: true

cross_application_tracer.enabled のデフォルト値は、true です。指定がない場合も、true です。クロスアプリケーショントレースを無効にするには、false をセットしてください。

クロスアプリケーショントレースの測定

(呼び出し側のアプリケーションからの)外部 測定は、常に(呼ばれる側のアプリケーションからの)内部測定よりも大きくなります。外部測定は、(Net::HTTPなど)HTTP クライアントライブラリのNew Relic の計測によって収集されます。内部測定は、呼ばれる側のアプリケーションでの Webフレームワーク(Rails など)の New Relic の計測を使用します。

ここでは、内部の測定に含まれない、外部の測定にのみ含む主要なコンポーネントを示します。

呼び出し側のアプリからターゲットホスト:

  1. ターゲットのホスト名を解決に掛かる DNS 時間
  2. ターゲットホストとの新しいTCP接続を確立するのに掛かる時間(SSLを使用している場合、TCP 3ウェイハンドシェイクに加えてSSLネゴシエーション)
  3. HTTPクライアントライブラリが、HTTPリクエストを作成し、シリアル化に要する時間
  4. ターゲットホストにワイヤ全体のリクエストを送信するためのネットワークの遅延

受信ホスト:

  1. 受信ホスト上のフロントエンドウェブサーバーがリクエストを処理し、受信側ホストのバックエンドの Web サーバーに送信するのに要する時間
  2. 受信側ホストのバックエンドの Web サーバーがリクエストの解析に要する時間
  3. 受信側ホストの Rack ミドルウェアを通してリクエストが「浸透」に要する時間
  4. Web フレームワークが適切なコントローラーのアクションへ、リクエストをルーティングするのに要する時間

注: Web フレームワークは、適切なコントローラーのアクションにルーティングされた後、そこで、内部測定が発生する。以下がその測定内容です。

  1. Rack ミドルウェアを経由してリクエストが、バックアップを「浸透」するのみ要する時間
  2. 要求元のサーバーへ、レスポンスを書き込むためのネットワーク遅延
  3. HTTP クライアント·ライブラリが HTTP レスポンスを解析するのに掛かる要求ホスト上の時間

コンポーネントには他のものよりも制御が容易のものもあります。たとえば、上記の受信ホスト項目にあるタイミングをキャプチャするには、受信側アプリケーションに リクエストキューの監視が設定されいることを確認してください。

さらに詳しい情報

追加のドキュメントリソースは次のとおりです。