RequestFinishedInfo.Metrics

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 Date?

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

abstract Date?

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

abstract Date?

DNS 조회가 완료된 시간을 반환합니다.

abstract Date?

DNS 조회가 시작된 시간을 반환합니다.

abstract Date?

HTTP/2 서버 푸시의 마지막 바이트를 수신한 시간을 반환합니다.

abstract Date?

HTTP/2 서버 푸시의 첫 번째 바이트가 수신된 시간을 반환합니다.

abstract Long?

네트워크 전송 계층을 통해 수신된 총 바이트를 반환합니다. 수집되지 않은 경우 null을 반환합니다.

abstract Date?

요청이 완료된 시간을 반환합니다.

abstract Date?

요청이 시작된 시간을 반환합니다.

abstract Date?

응답 헤더의 끝이 수신된 시간을 반환합니다.

abstract Date?

요청 전송이 완료된 시간을 반환합니다.

abstract Date?

요청 전송이 시작된 시간을 반환합니다.

abstract Long?

네트워크 전송 계층을 통해 전송된 총 바이트를 반환하거나 수집되지 않은 경우 null을 반환합니다.

abstract Boolean

소켓이 이전 요청에서 재사용되었는지 여부를 반환합니다.

abstract Date?

SSL 핸드셰이크가 완료된 시간을 반환합니다.

abstract Date?

SSL 핸드셰이크가 시작된 시간을 반환합니다.

abstract Long?

요청 시작과 종료 사이의 시간(밀리초)을 반환합니다(실패 또는 취소 포함). 수집되지 않은 경우 null를 반환합니다.

abstract Long?

요청 시작과 응답 헤더의 첫 번째 바이트 사이의 시간(밀리초)을 반환합니다. 수집되지 않은 경우 null을 반환합니다.

공개 생성자

측정항목

Metrics()

공개 함수

getConnectEnd

abstract fun getConnectEnd(): Date?

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

반환
Date?

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

getConnectStart

abstract fun getConnectStart(): Date?

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

반환
Date?

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

getDnsEnd

abstract fun getDnsEnd(): Date?

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

반환
Date?

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

getDnsStart

abstract fun getDnsStart(): Date?

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

반환
Date?

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

getPushEnd

abstract fun getPushEnd(): Date?

HTTP/2 서버 푸시의 마지막 바이트를 수신한 시간을 반환합니다.

반환
Date?

HTTP/2 서버 푸시의 마지막 바이트가 수신된 시간을 나타내는 java.util.Date 서버 푸시를 사용하지 않는 경우 null

getPushStart

abstract fun getPushStart(): Date?

HTTP/2 서버 푸시의 첫 번째 바이트가 수신된 시간을 반환합니다.

반환
Date?

HTTP/2 서버 푸시의 첫 번째 바이트가 수신된 시간을 나타내는 java.util.Date입니다. 서버 푸시를 사용하지 않는 경우 null

getReceivedByteCount

abstract fun getReceivedByteCount(): Long?

네트워크 전송 계층을 통해 수신된 총 바이트를 반환합니다. 수집되지 않은 경우 null을 반환합니다. 바이트 수에는 이전 리디렉션이 포함되지 않습니다.

getRequestEnd

abstract fun getRequestEnd(): Date?

요청이 완료된 시간을 반환합니다.

반환
Date?

요청이 완료된 시간을 나타내는 java.util.Date입니다.

getRequestStart

abstract fun getRequestStart(): Date?

요청이 시작된 시간을 반환합니다.

반환
Date?

java.util.Date: 네이티브 요청이 실제로 시작된 시간을 나타냅니다. 이 타임스탬프는 나타내는 시간의 시스템 시계와 일치합니다.

getResponseStart

abstract fun getResponseStart(): Date?

응답 헤더의 끝이 수신된 시간을 반환합니다.

반환
Date?

java.util.Date는 응답 헤더의 끝이 수신된 시간을 나타냅니다.

getSendingEnd

abstract fun getSendingEnd(): Date?

요청 전송이 완료된 시간을 반환합니다.

반환
Date?

HTTP 요청 본문 전송이 완료된 시점을 나타내는 java.util.Date입니다. (요청 본문 전송은 요청 헤더 전송 후에 이루어집니다.)

getSendingStart

abstract fun getSendingStart(): Date?

요청 전송이 시작된 시간을 반환합니다.

반환
Date?

HTTP 요청 헤더 전송이 시작된 시간을 나타내는 java.util.Date입니다.

getSentByteCount

abstract fun getSentByteCount(): Long?

네트워크 전송 계층을 통해 전송된 총 바이트를 반환하거나 수집되지 않은 경우 null을 반환합니다.

getSocketReused

abstract fun getSocketReused(): Boolean

소켓이 이전 요청에서 재사용되었는지 여부를 반환합니다. HTTP/2 또는 QUIC에서 스트림이 단일 연결에서 다중화되는 경우 첫 번째 스트림 이후의 모든 스트림에 대해 true를 반환합니다.

반환
Boolean

이 요청이 이전 요청의 소켓을 재사용했는지 여부입니다. true인 경우 DNS, 연결, SSL 시간이 null이 됩니다.

getSslEnd

abstract fun getSslEnd(): Date?

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

반환
Date?

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

getSslStart

abstract fun getSslStart(): Date?

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

반환
Date?

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

totalTimeMs

abstract fun getTotalTimeMs(): Long?

요청 시작과 종료 사이의 시간(밀리초)을 반환합니다(실패 또는 취소 포함). 수집되지 않은 경우 null를 반환합니다. TODO(mgersh): 새 API가 작동하면 삭제 http://crbug.com/629194

getTtfbMs

abstract fun getTtfbMs(): Long?

요청 시작과 응답 헤더의 첫 번째 바이트 사이의 시간(밀리초)을 반환합니다. 수집되지 않은 경우 null을 반환합니다. TODO(mgersh): 새 API가 작동하면 삭제 http://crbug.com/629194