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 值可能不相符。系統會使用保證不會倒轉的時鐘記錄時間戳記。所有時間戳記都與要求開始時的系統時鐘相對應,因此計算兩個時間戳記之間的差異,即可得出事件之間的正確差異。為保留這項屬性,除了要求開始時間以外,其他事件的時間戳記不一定會與系統時鐘的時間相符。

大多數時間指標都是取自 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 交握完成的時間。

abstract @Nullable Date

傳回 SSL 握手開始時間。

abstract @Nullable Long

傳回要求啟動和完成之間的時間 (以毫秒為單位),包括失敗或取消,如果未收集到資料,則傳回 null

abstract @Nullable Long

傳回要求啟動和回應標頭的第一個位元組之間的時間 (以毫秒為單位),如果未收集這項資料,則傳回 null

公用建構函式

指標

public Metrics()

公用方法

getConnectEnd

public abstract @Nullable Date getConnectEnd()

傳回連線建立完成的時間。

傳回
@Nullable Date

java.util.Date 代表連線建立完成的時間,也就是在建立 TCP 連線後,以及完成 SSL 交握 (如果使用 HTTPS) 後的時間。如果是 QUIC 0-RTT,這代表交握確認時間,可能比 getSendingStart 晚。如果插座已重複使用 (請參閱 getSocketReused)。null

getConnectStart

public abstract @Nullable Date getConnectStart()

傳回開始建立連線的時間。

傳回
@Nullable Date

java.util.Date 代表連線建立的開始時間,通常是 DNS 解析完成時。如果插座已重複使用 (請參閱 getSocketReused)。null

getDnsEnd

public abstract @Nullable Date getDnsEnd()

傳回 DNS 查詢完成的時間。無論結果來自 DNS 伺服器或本機快取,這項作業和 getDnsStart 都會傳回非空值。

傳回
@Nullable Date

java.util.Date,代表 DNS 查詢完成的時間。如果插座已重複使用 (請參閱 getSocketReused)。null

getDnsStart

public abstract @Nullable Date getDnsStart()

傳回 DNS 查詢開始時間。無論結果來自 DNS 伺服器或本機快取,這項作業和 getDnsEnd 都會傳回非空值。

傳回
@Nullable Date

java.util.Date,代表 DNS 查詢開始時間。如果插座已重複使用 (請參閱 getSocketReused)。null

getPushEnd

public abstract @Nullable Date getPushEnd()

傳回收到 HTTP/2 伺服器推送的最後一個位元組時的時間。

傳回
@Nullable Date

java.util.Date 代表收到 HTTP/2 伺服器推送的最後一個位元組的時間。如果未使用伺服器推送,則為 null

getPushStart

public abstract @Nullable Date getPushStart()

傳回收到 HTTP/2 伺服器推送的第一個位元組時的時間。

傳回
@Nullable Date

java.util.Date,代表收到 HTTP/2 伺服器推送的第一個位元組時。如果未使用伺服器推送,則為 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

java.util.Date 代表 HTTP 要求主體傳送完畢的時間。(傳送要求標頭後,才會傳送要求主體)。

getSendingStart

public abstract @Nullable Date getSendingStart()

傳送要求開始的時間。

傳回
@Nullable Date

java.util.Date,代表開始傳送 HTTP 要求標頭的時間。

getSentByteCount

public abstract @Nullable Long getSentByteCount()

傳回透過網路傳輸層傳送的位元組總數,或傳回 null (如果未收集)。

getSocketReused

public abstract boolean getSocketReused()

傳回插座是否重複使用先前的要求。在 HTTP/2 或 QUIC 中,如果串流在單一連線中多路複用,則會在第一個串流之後,為所有串流傳回 true

傳回
boolean

這項要求是否重複使用先前要求中的通訊端。這時 DNS、連線和 SSL 時間會是 nulltrue

getSslEnd

public abstract @Nullable Date getSslEnd()

傳回 SSL 交握完成的時間。如果是 QUIC,這會與 getConnectEnd 的時間相同。

傳回
@Nullable Date

java.util.Date 代表 SSL 交握完成的時間。null (如果未使用 SSL 或重複使用通訊端,請參閱 getSocketReused)。

getSslStart

public abstract @Nullable Date getSslStart()

傳回 SSL 握手開始的時間。如果是 QUIC,這會與 getConnectStart 的時間相同。

傳回
@Nullable Date

java.util.Date,代表安全資料傳輸層 (SSL) 握手開始的時間。null (如果未使用 SSL 或重複使用通訊端,請參閱 getSocketReused)。

getTotalTimeMs

public abstract @Nullable Long getTotalTimeMs()

傳回要求啟動和完成之間的時間 (以毫秒為單位),包括失敗或取消,如果未收集到資料,則傳回 null。TODO(mgersh):Remove once new API works http://crbug.com/629194

getTtfbMs

public abstract @Nullable Long getTtfbMs()

傳回要求啟動和回應標頭的第一個位元組之間的時間 (以毫秒為單位),如果未收集這項資料,則傳回 null。TODO(mgersh):Remove once new API works http://crbug.com/629194