RequestFinishedInfo.Metrics

public abstract class RequestFinishedInfo.Metrics


単一のリクエストで収集された指標。これらの指標のほとんどは、リクエストのライフサイクル中のイベントのタイムスタンプです。これは、パフォーマンスを調査するための詳細なタイムラインの作成に使用できます。

イベントは次の順序で発生します。

  1. request start
  2. DNS start
  3. DNS end
  4. connect start
  5. SSL start
  6. SSL end
  7. connect end
  8. sending start
  9. sending end
  10. response start
  11. request end
プッシュの開始と終了を除き、開始時間はイベントが実際に発生した時間ではなく、リクエストがイベントでブロックを開始した時間として報告されます。指標が意味を持たない場合や利用できない場合(リクエストがそのステージに到達する前に終了した場合など)、開始時間と終了時間は null になります。イベントのブロックに時間が費やされなかった場合、開始時刻と終了時刻は同じになります。

リクエスト中にシステムクロックが調整されると、一部の java.util.Date 値が一致しないことがあります。タイムスタンプは、逆方向に進まないことが保証されているクロックを使用して記録されます。すべてのタイムスタンプは、リクエスト開始時のシステムクロックに対して相対的に正しく、2 つのタイムスタンプの差を計算すると、イベント間の正しい差が得られます。このプロパティを維持するため、リクエスト開始以外のイベントのタイムスタンプは、そのイベントが表す時刻のシステムクロックと一致するとは限りません。

ほとんどのタイミング指標は LoadTimingInfo から取得されます。このクラスは の情報を保持します。

概要

パブリック コンストラクタ

パブリック メソッド

abstract @Nullable Date

接続の確立が完了した時刻を返します。

abstract @Nullable Date

接続の確立が開始された時刻を返します。

abstract @Nullable Date

DNS ルックアップが完了した時間を返します。

abstract @Nullable Date

DNS ルックアップが開始された時刻を返します。

abstract @Nullable Date

HTTP/2 サーバー プッシュの最後のバイトを受信した時刻を返します。

abstract @Nullable Date

HTTP/2 サーバー プッシュの最初のバイトを受信した時刻を返します。

abstract @Nullable Long

ネットワーク トランスポート レイヤで受信した合計バイト数を返します。収集されていない場合は null を返します。

abstract @Nullable Date

リクエストが終了した時刻を返します。

abstract @Nullable Date

リクエストが開始された時刻を返します。

abstract @Nullable Date

レスポンス ヘッダーの終了が受信された時刻を返します。

abstract @Nullable Date

リクエストの送信が完了した時刻を返します。

abstract @Nullable Date

リクエストの送信が開始された時刻を返します。

abstract @Nullable Long

ネットワーク トランスポート レイヤを介して送信された合計バイト数を返します。収集されていない場合は null を返します。

abstract boolean

ソケットが前のリクエストから再利用されたかどうかを返します。

abstract @Nullable Date

SSL handshake が完了した時刻を返します。

abstract @Nullable Date

SSL handshake が開始された時間を返します。

abstract @Nullable Long

リクエストの開始から終了までの時間(ミリ秒単位)を返します。失敗またはキャンセルも含まれます。収集されていない場合は null を返します。

abstract @Nullable Long

リクエストの開始からレスポンス ヘッダーの最初のバイトまでの時間(ミリ秒単位)を返します。収集されていない場合は null を返します。

パブリック コンストラクタ

指標

public Metrics()

パブリック メソッド

getConnectEnd

public abstract @Nullable Date getConnectEnd()

接続の確立が完了した時刻を返します。

戻り値
@Nullable Date

TCP 接続が確立され、HTTPS を使用している場合は SSL ハンドシェイクが完了した後に、接続の確立が完了した時点を表す java.util.Date。QUIC 0-RTT の場合、これはハンドシェイク確認の時刻を表し、getSendingStart よりも遅くなる可能性があります。ソケットが再利用された場合は nullgetSocketReused を参照)。

getConnectStart

public abstract @Nullable Date getConnectStart()

接続の確立が開始された時刻を返します。

戻り値
@Nullable Date

接続の確立が開始された時刻を表す java.util.Date。通常は DNS の解決が完了した時刻です。ソケットが再利用された場合は nullgetSocketReused を参照)。

getDnsEnd

public abstract @Nullable Date getDnsEnd()

DNS ルックアップが完了した時間を返します。これと getDnsStart は、結果が DNS サーバーから取得されたかローカル キャッシュから取得されたかに関係なく、null 以外の値を返します。

戻り値
@Nullable Date

DNS ルックアップが完了した時刻を表す java.util.Date。ソケットが再利用された場合は nullgetSocketReused を参照)。

getDnsStart

public abstract @Nullable Date getDnsStart()

DNS ルックアップが開始された時刻を返します。これと getDnsEnd は、結果が DNS サーバーから取得されたかローカル キャッシュから取得されたかに関係なく、null 以外の値を返します。

戻り値
@Nullable Date

DNS ルックアップが開始された時刻を表す java.util.Date。ソケットが再利用された場合は nullgetSocketReused を参照)。

getPushEnd

public abstract @Nullable Date getPushEnd()

HTTP/2 サーバー プッシュの最後のバイトを受信した時刻を返します。

戻り値
@Nullable Date

HTTP/2 サーバー プッシュの最後のバイトが受信された日時を表す java.util.Date。サーバープッシュが使用されていない場合は null

getPushStart

public abstract @Nullable Date getPushStart()

HTTP/2 サーバー プッシュの最初のバイトを受信した時刻を返します。

戻り値
@Nullable Date

HTTP/2 サーバー プッシュの最初のバイトが受信された時刻を表す java.util.Date。サーバープッシュが使用されていない場合は null

getReceivedByteCount

public abstract @Nullable Long getReceivedByteCount()

ネットワーク トランスポート レイヤで受信した合計バイト数を返します。収集されていない場合は null を返します。バイト数には、以前のリダイレクトは含まれません。

getRequestEnd

public abstract @Nullable Date getRequestEnd()

リクエストが終了した時刻を返します。

戻り値
@Nullable Date

リクエストが完了した日時を表す java.util.Date

getRequestStart

public abstract @Nullable Date getRequestStart()

リクエストが開始された時刻を返します。

戻り値
@Nullable Date

ネイティブ リクエストが実際に開始された時刻を表す java.util.Date。このタイムスタンプは、表す時刻のシステム時計と一致します。

getResponseStart

public abstract @Nullable Date getResponseStart()

レスポンス ヘッダーの終了が受信された時刻を返します。

戻り値
@Nullable Date

レスポンス ヘッダーの終了が受信された時刻を表す java.util.Date

getSendingEnd

public abstract @Nullable Date getSendingEnd()

リクエストの送信が完了した時刻を返します。

戻り値
@Nullable Date

HTTP リクエスト本文の送信が完了したタイミングを表す java.util.Date。(リクエスト ヘッダーの送信後にリクエスト本文が送信されます)。

getSendingStart

public abstract @Nullable Date getSendingStart()

リクエストの送信が開始された時刻を返します。

戻り値
@Nullable Date

HTTP リクエスト ヘッダーの送信が開始された時点を表す java.util.Date

getSentByteCount

public abstract @Nullable Long getSentByteCount()

ネットワーク トランスポート レイヤを介して送信された合計バイト数を返します。収集されていない場合は null を返します。

getSocketReused

public abstract boolean getSocketReused()

ソケットが前のリクエストから再利用されたかどうかを返します。HTTP/2 または QUIC で、ストリームが単一の接続で多重化されている場合、最初のストリーム以降のすべてのストリームに対して true を返します。

戻り値
boolean

このリクエストが前のリクエストのソケットを再利用したかどうか。true の場合、DNS、接続、SSL の時間は null になります。

getSslEnd

public abstract @Nullable Date getSslEnd()

SSL handshake が完了した時刻を返します。QUIC の場合、これは getConnectEnd と同じ時間になります。

戻り値
@Nullable Date

SSL handshake が完了した時刻を表す java.util.Date。SSL が使用されていない場合、またはソケットが再利用された場合(getSocketReused を参照)は null

getSslStart

public abstract @Nullable Date getSslStart()

SSL handshake が開始された時刻を返します。QUIC の場合、これは getConnectStart と同じ時間になります。

戻り値
@Nullable Date

SSL handshake が開始された時刻を表す java.util.Date。SSL が使用されていない場合、またはソケットが再利用された場合(getSocketReused を参照)は null

getTotalTimeMs

public abstract @Nullable Long getTotalTimeMs()

リクエストの開始から終了までの時間(ミリ秒単位)を返します。失敗またはキャンセルも含まれます。収集されていない場合は null を返します。TODO(mgersh): 新しい API が動作したら削除 http://crbug.com/629194

getTtfbMs

public abstract @Nullable Long getTtfbMs()

リクエストの開始からレスポンス ヘッダーの最初のバイトまでの時間(ミリ秒単位)を返します。収集されていない場合は null を返します。TODO(mgersh): 新しい API が動作したら削除 http://crbug.com/629194