RequestFinishedInfo.Metrics

public abstract class RequestFinishedInfo.Metrics


Các chỉ số được thu thập cho một yêu cầu duy nhất. Hầu hết các chỉ số này đều là dấu thời gian cho các sự kiện trong suốt thời gian tồn tại của yêu cầu. Bạn có thể dùng các chỉ số này để tạo một dòng thời gian chi tiết nhằm điều tra hiệu suất.

Các sự kiện diễn ra theo thứ tự sau:

  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
Thời gian bắt đầu được báo cáo là thời gian yêu cầu bắt đầu chặn sự kiện, chứ không phải thời gian sự kiện thực sự xảy ra, ngoại trừ thời gian bắt đầu và kết thúc của thông báo đẩy. Nếu một chỉ số không có ý nghĩa hoặc không có sẵn, kể cả trong trường hợp yêu cầu hoàn tất trước khi đạt đến giai đoạn đó, thì thời gian bắt đầu và kết thúc sẽ là null. Nếu không có thời gian nào dành cho việc chặn một sự kiện, thì thời gian bắt đầu và kết thúc sẽ giống nhau.

Nếu đồng hồ hệ thống được điều chỉnh trong quá trình yêu cầu, thì một số giá trị java.util.Date có thể không khớp với đồng hồ hệ thống. Dấu thời gian được ghi lại bằng đồng hồ đảm bảo không chạy ngược. Tất cả dấu thời gian đều chính xác so với đồng hồ hệ thống tại thời điểm bắt đầu yêu cầu và việc lấy hiệu số giữa hai dấu thời gian sẽ cho ra hiệu số chính xác giữa các sự kiện. Để duy trì thuộc tính này, dấu thời gian cho các sự kiện khác ngoài thời gian bắt đầu yêu cầu không được đảm bảo khớp với đồng hồ hệ thống tại thời điểm mà chúng biểu thị.

Hầu hết các chỉ số về thời gian đều được lấy từ LoadTimingInfo, trong đó lưu giữ thông tin cho .

Tóm tắt

Hàm khởi tạo công khai

Phương thức công khai

abstract @Nullable Date

Trả về thời gian khi quá trình thiết lập kết nối hoàn tất.

abstract @Nullable Date

Trả về thời gian bắt đầu thiết lập kết nối.

abstract @Nullable Date

Trả về thời gian khi quá trình tra cứu DNS hoàn tất.

abstract @Nullable Date

Trả về thời gian bắt đầu tra cứu DNS.

abstract @Nullable Date

Trả về thời gian nhận được byte cuối cùng của tính năng đẩy từ máy chủ HTTP/2.

abstract @Nullable Date

Trả về thời gian nhận được byte đầu tiên của công nghệ đẩy của máy chủ HTTP/2.

abstract @Nullable Long

Trả về tổng số byte nhận được qua lớp truyền tải mạng hoặc null nếu không được thu thập.

abstract @Nullable Date

Trả về thời gian khi yêu cầu hoàn tất.

abstract @Nullable Date

Trả về thời gian bắt đầu yêu cầu.

abstract @Nullable Date

Trả về thời gian nhận được phần cuối của tiêu đề phản hồi.

abstract @Nullable Date

Trả về thời gian khi yêu cầu gửi hoàn tất.

abstract @Nullable Date

Trả về thời gian bắt đầu gửi yêu cầu.

abstract @Nullable Long

Trả về tổng số byte được gửi qua lớp truyền tải mạng hoặc null nếu không được thu thập.

abstract boolean

Trả về việc ổ cắm có được dùng lại từ một yêu cầu trước đó hay không.

abstract @Nullable Date

Trả về thời gian khi quá trình bắt tay SSL kết thúc.

abstract @Nullable Date

Trả về thời gian bắt đầu bắt tay giao thức SSL.

abstract @Nullable Long

Trả về số mili giây giữa thời điểm bắt đầu và kết thúc yêu cầu, bao gồm cả trường hợp thất bại hoặc huỷ bỏ, hoặc null nếu không thu thập được.

abstract @Nullable Long

Trả về số mili giây giữa thời điểm bắt đầu yêu cầu và byte đầu tiên của tiêu đề phản hồi, hoặc null nếu không được thu thập.

Hàm khởi tạo công khai

Chỉ số

public Metrics()

Phương thức công khai

getConnectEnd

public abstract @Nullable Date getConnectEnd()

Trả về thời gian khi quá trình thiết lập kết nối hoàn tất.

Giá trị trả về
@Nullable Date

java.util.Date biểu thị thời điểm hoàn tất việc thiết lập kết nối, sau khi thiết lập kết nối TCP và nếu sử dụng HTTPS, thì quá trình bắt tay SSL sẽ hoàn tất. Đối với QUIC 0-RTT, điều này biểu thị thời gian xác nhận bắt tay và có thể xảy ra muộn hơn getSendingStart. null nếu ổ cắm được dùng lại (xem getSocketReused).

getConnectStart

public abstract @Nullable Date getConnectStart()

Trả về thời gian bắt đầu thiết lập kết nối.

Giá trị trả về
@Nullable Date

java.util.Date biểu thị thời điểm bắt đầu thiết lập kết nối, thường là khi quá trình phân giải DNS kết thúc. null nếu ổ cắm được dùng lại (xem getSocketReused).

getDnsEnd

public abstract @Nullable Date getDnsEnd()

Trả về thời gian khi quá trình tra cứu DNS hoàn tất. getDnsStartgetDnsStart sẽ trả về các giá trị không rỗng, bất kể kết quả đến từ máy chủ DNS hay bộ nhớ đệm cục bộ.

Giá trị trả về
@Nullable Date

java.util.Date biểu thị thời điểm tra cứu DNS hoàn tất. null nếu ổ cắm được dùng lại (xem getSocketReused).

getDnsStart

public abstract @Nullable Date getDnsStart()

Trả về thời gian bắt đầu tra cứu DNS. getDnsEndgetDnsEnd sẽ trả về các giá trị không rỗng, bất kể kết quả đến từ máy chủ DNS hay bộ nhớ đệm cục bộ.

Giá trị trả về
@Nullable Date

java.util.Date biểu thị thời điểm bắt đầu tra cứu DNS. null nếu ổ cắm được dùng lại (xem getSocketReused).

getPushEnd

public abstract @Nullable Date getPushEnd()

Trả về thời gian nhận được byte cuối cùng của công nghệ đẩy của máy chủ HTTP/2.

Giá trị trả về
@Nullable Date

java.util.Date biểu thị thời điểm nhận được byte cuối cùng của một công nghệ đẩy của máy chủ HTTP/2. null nếu không dùng tính năng đẩy từ máy chủ.

getPushStart

public abstract @Nullable Date getPushStart()

Trả về thời gian nhận được byte đầu tiên của thông báo đẩy máy chủ HTTP/2.

Giá trị trả về
@Nullable Date

java.util.Date biểu thị thời điểm nhận được byte đầu tiên của một công nghệ đẩy của máy chủ HTTP/2. null nếu không dùng tính năng đẩy từ máy chủ.

getReceivedByteCount

public abstract @Nullable Long getReceivedByteCount()

Trả về tổng số byte nhận được qua lớp truyền tải mạng hoặc null nếu không được thu thập. Số byte không bao gồm bất kỳ lệnh chuyển hướng nào trước đó.

getRequestEnd

public abstract @Nullable Date getRequestEnd()

Trả về thời gian khi yêu cầu hoàn tất.

Giá trị trả về
@Nullable Date

java.util.Date biểu thị thời điểm yêu cầu hoàn tất.

getRequestStart

public abstract @Nullable Date getRequestStart()

Trả về thời gian bắt đầu yêu cầu.

Giá trị trả về
@Nullable Date

java.util.Date biểu thị thời điểm yêu cầu gốc thực sự bắt đầu. Dấu thời gian này sẽ khớp với đồng hồ hệ thống tại thời điểm mà dấu thời gian đó biểu thị.

getResponseStart

public abstract @Nullable Date getResponseStart()

Trả về thời gian nhận được phần cuối của tiêu đề phản hồi.

Giá trị trả về
@Nullable Date

java.util.Date biểu thị thời điểm nhận được phần cuối của tiêu đề phản hồi.

getSendingEnd

public abstract @Nullable Date getSendingEnd()

Trả về thời gian khi yêu cầu gửi hoàn tất.

Giá trị trả về
@Nullable Date

java.util.Date biểu thị thời điểm gửi xong nội dung yêu cầu HTTP. (Nội dung yêu cầu được gửi sau khi tiêu đề yêu cầu được gửi.)

getSendingStart

public abstract @Nullable Date getSendingStart()

Trả về thời gian bắt đầu gửi yêu cầu.

Giá trị trả về
@Nullable Date

java.util.Date biểu thị thời điểm bắt đầu gửi tiêu đề yêu cầu HTTP.

getSentByteCount

public abstract @Nullable Long getSentByteCount()

Trả về tổng số byte được gửi qua lớp truyền tải mạng hoặc null nếu không được thu thập.

getSocketReused

public abstract boolean getSocketReused()

Trả về việc ổ cắm có được dùng lại từ một yêu cầu trước đó hay không. Trong HTTP/2 hoặc QUIC, nếu các luồng được ghép kênh trong một kết nối duy nhất, thì hàm này sẽ trả về true cho tất cả các luồng sau luồng đầu tiên.

Giá trị trả về
boolean

liệu yêu cầu này có sử dụng lại một ổ cắm từ yêu cầu trước đó hay không. Khi true, thời gian DNS, kết nối và SSL sẽ là null.

getSslEnd

public abstract @Nullable Date getSslEnd()

Trả về thời gian khi quá trình bắt tay SSL kết thúc. Đối với QUIC, thời gian này sẽ giống với getConnectEnd.

Giá trị trả về
@Nullable Date

java.util.Date biểu thị thời điểm hoàn tất quy trình bắt tay SSL. null nếu không dùng SSL hoặc nếu ổ cắm được dùng lại (xem getSocketReused).

getSslStart

public abstract @Nullable Date getSslStart()

Trả về thời gian bắt đầu bắt tay giao thức SSL. Đối với QUIC, thời gian này sẽ giống với getConnectStart.

Giá trị trả về
@Nullable Date

java.util.Date biểu thị thời điểm bắt đầu bắt tay SSL. null nếu không dùng SSL hoặc nếu ổ cắm được dùng lại (xem getSocketReused).

getTotalTimeMs

public abstract @Nullable Long getTotalTimeMs()

Trả về số mili giây giữa thời điểm bắt đầu và kết thúc yêu cầu, bao gồm cả trường hợp thất bại hoặc huỷ bỏ, hoặc null nếu không thu thập được. VIỆC CẦN LÀM(mgersh): Xoá sau khi API mới hoạt động http://crbug.com/629194

getTtfbMs

public abstract @Nullable Long getTtfbMs()

Trả về số mili giây giữa thời điểm bắt đầu yêu cầu và byte đầu tiên của tiêu đề phản hồi, hoặc null nếu không được thu thập. VIỆC CẦN LÀM(mgersh): Xoá sau khi API mới hoạt động http://crbug.com/629194