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

TCP 연결이 설정되고 HTTPS를 사용하는 경우 SSL 핸드셰이크가 완료된 후 연결 설정이 완료된 시간을 나타내는 java.util.Date입니다. QUIC 0-RTT의 경우 핸드셰이크 확인 시간을 나타내며 getSendingStart보다 늦게 발생할 수 있습니다. 소켓이 재사용된 경우 null (getSocketReused 참고)

getConnectStart

public abstract @Nullable Date getConnectStart()

연결 설정이 시작된 시간을 반환합니다.

반환
@Nullable Date

연결 설정이 시작된 시점을 나타냅니다(일반적으로 DNS 확인이 완료된 시점).java.util.Date 소켓이 재사용된 경우 null (getSocketReused 참고)

getDnsEnd

public abstract @Nullable Date getDnsEnd()

DNS 조회가 완료된 시간을 반환합니다. 이 함수와 getDnsStart는 결과가 DNS 서버에서 가져온 것인지 로컬 캐시에서 가져온 것인지와 관계없이 null이 아닌 값을 반환합니다.

반환
@Nullable Date

DNS 조회가 완료된 시간을 나타내는 java.util.Date입니다. 소켓이 재사용된 경우 null (getSocketReused 참고)

getDnsStart

public abstract @Nullable Date getDnsStart()

DNS 조회가 시작된 시간을 반환합니다. 이 함수와 getDnsEnd는 결과가 DNS 서버에서 가져온 것인지 로컬 캐시에서 가져온 것인지와 관계없이 null이 아닌 값을 반환합니다.

반환
@Nullable Date

DNS 조회가 시작된 시간을 나타내는 java.util.Date입니다. 소켓이 재사용된 경우 null (getSocketReused 참고)

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 핸드셰이크가 완료된 시간을 반환합니다. QUIC의 경우 getConnectEnd와 동일한 시간입니다.

반환
@Nullable Date

java.util.Date는 SSL 핸드셰이크가 완료된 시간을 나타냅니다. SSL이 사용되지 않거나 소켓이 재사용된 경우 null (getSocketReused 참고)

getSslStart

public abstract @Nullable Date getSslStart()

SSL 핸드셰이크가 시작된 시간을 반환합니다. QUIC의 경우 getConnectStart와 동일한 시간입니다.

반환
@Nullable Date

SSL 핸드셰이크가 시작된 시간을 나타내는 java.util.Date SSL이 사용되지 않거나 소켓이 재사용된 경우 null (getSocketReused 참고)

totalTimeMs

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