Xuất dữ liệu của giải pháp Theo dõi hiệu suất sang BigQuery

Bạn có thể xuất dữ liệu của giải pháp Giám sát hiệu suất từ các ứng dụng của Apple và Android vào BigQuery để phân tích thêm. BigQuery cho phép bạn phân tích dữ liệu bằng BigQuery SQL, xuất dữ liệu đó sang một nhà cung cấp dịch vụ đám mây khác và thậm chí là sử dụng dữ liệu đó cho các mô hình học máy tuỳ chỉnh của bạn.

Bật tính năng BigQuery Export

  1. Chuyển đến trang Tích hợp trong bảng điều khiển của Firebase, rồi nhấp vào Liên kết trong thẻ BigQuery.

  2. Làm theo hướng dẫn trên màn hình để bật BigQuery.

    Khi bạn bật tính năng BigQuery Export cho tính năng Giám sát hiệu suất, những điều sau sẽ xảy ra:

    • Firebase xuất một bản sao dữ liệu hiện có của bạn sang BigQuery. Quá trình truyền dữ liệu ban đầu để xuất có thể mất đến 48 giờ để hoàn tất.

    • Sau khi tạo tập dữ liệu, bạn không thể thay đổi vị trí này, nhưng có thể sao chép tập dữ liệu sang một vị trí khác hoặc di chuyển (tạo lại) tập dữ liệu ở một vị trí khác theo cách thủ công. Để tìm hiểu thêm, hãy xem bài viết Thay đổi vị trí tập dữ liệu.

    • Firebase thiết lập quy trình đồng bộ hoá dữ liệu thường xuyên từ dự án Firebase của bạn sang BigQuery. Các hoạt động xuất hằng ngày này thường kết thúc sau 24 giờ sau khi được lên lịch.

    • Theo mặc định, tất cả các ứng dụng trong dự án của bạn đều được liên kết với BigQuery. Mọi ứng dụng mà sau này bạn thêm vào dự án đều sẽ tự động được liên kết với BigQuery. Bạn có thể quản lý các ứng dụng gửi dữ liệu.

Để tắt tính năng BigQuery Export, hãy huỷ liên kết dự án của bạn trong bảng điều khiển của Firebase.

Dữ liệu nào được xuất sang BigQuery?

Đối với mỗi ứng dụng trong dự án, lệnh xuất sẽ tạo một bảng bao gồm tất cả các sự kiện hiệu suất đã thu thập. Mỗi hàng trong bảng là một sự kiện hiệu suất duy nhất có thể là một trong những sự kiện sau:

  • Theo dõi thời lượng – theo mặc định, các dấu vết thu thập chỉ số "thời lượng" (bao gồm thời gian bắt đầu ứng dụng, chạy ứng dụng trong nền trước và chạy trong nền ứng dụng) cũng như mọi dấu vết mã tuỳ chỉnh do nhà phát triển đo lường

    • event_type là mức giá DURATION_TRACE
    • event_name giống với tên dấu vết
  • Chỉ số theo dõi — các chỉ số tuỳ chỉnh được liên kết với các dấu vết mã tuỳ chỉnh do nhà phát triển đo lường

    • event_type là mức giá TRACE_METRIC
    • event_name là tên của chỉ số
    • parent_trace_name là tên theo dõi chứa chỉ số này
  • Dấu vết màn hình – dấu vết trong suốt thời gian hoạt động của màn hình (dấu vết kết xuất màn hình)

    • event_type là mức giá SCREEN_TRACE
    • event_name là tiền tố _st_ cộng với tên màn hình thực tế
  • Yêu cầu mạng – dấu vết trong suốt thời gian tồn tại của một yêu cầu mạng (dấu vết yêu cầu mạng HTTP)

    • event_type là mức giá NETWORK_REQUEST
    • event_name là mẫu được phân loại của URL yêu cầu mạng

Mỗi sự kiện hiệu suất chứa các thuộc tính của sự kiện (chẳng hạn như quốc gia và nhà mạng của thiết bị khách) cũng như thông tin cụ thể về sự kiện:

  • Dấu vết thời lượng, chỉ số dấu vết và dấu vết màn hình chứa trace_info
  • Chỉ số theo dõi chứa trace_info.metric_info
  • Dấu vết trên màn hình chứa trace_info.screen_info
  • Dấu vết mạng chứa network_info

Giản đồ dữ liệu chi tiết

Tên trường Loại Nội dung mô tả
event_timestamp timestamp Dấu thời gian kể từ Thời điểm bắt đầu sự kiện trên thiết bị khách (bắt đầu theo dõi, bắt đầu mạng, v.v.)
phiên_bản_hiển_thị_ứng_dụng chuỗi Phiên bản hiển thị của ứng dụng (ví dụ: "4.1.7")
  • Dành cho Android – VersionName
  • Đối với iOS – CFBundleShortVersionString
phiên bản_bản_sử_dụng_ứng_dụng chuỗi Phiên bản của ứng dụng (ví dụ: "1523456")
  • Dành cho Android – VersionCode
  • Đối với iOS – CFBundleVersion
phiên bản hệ điều hành chuỗi Phiên bản hệ điều hành của thiết bị khách
  • Đối với Android – Cấp độ API của Android (ví dụ: "26")
  • Đối với iOS – phiên bản iOS (ví dụ: "11.4")
tên_thiết_bị chuỗi Tên của thiết bị khách (ví dụ: "Google Pixel")
country chuỗi Mã quốc gia gồm hai chữ cái của quốc gia nơi diễn ra sự kiện (ví dụ: "US" hoặc "ZZ" cho quốc gia không xác định)
hãng vận tải chuỗi Nhà mạng của thiết bị khách
loại_vô tuyến chuỗi Loại đài đang hoạt động khi sự kiện diễn ra (ví dụ: "Wi-Fi")
thuộc tính tuỳ_chỉnh Hàm ARRAY<RECORD> Tất cả thuộc tính tùy chỉnh được đính kèm vào sự kiện này
thuộc tính_tùy_chỉnh.key chuỗi Khoá của thuộc tính tuỳ chỉnh
giá trị thuộc tính tuỳ chỉnh chuỗi Giá trị của thuộc tính tuỳ chỉnh
loại sự kiện chuỗi Loại sự kiện; giá trị có thể sử dụng:
  • DURATION_TRACE – theo mặc định, các dấu vết thu thập chỉ số "thời lượng" (bao gồm thời điểm bắt đầu ứng dụng, chạy ứng dụng trong nền trước và chạy trong nền ứng dụng), cũng như mọi dấu vết mã tuỳ chỉnh do nhà phát triển đo lường
  • SCREEN_TRACE – dấu vết trong suốt thời gian hoạt động của màn hình (dấu vết kết xuất màn hình)
  • TRACE_METRIC – các chỉ số tuỳ chỉnh được liên kết với dấu vết mã tuỳ chỉnh do nhà phát triển đo lường
  • NETWORK_REQUEST – dấu vết trong suốt thời gian tồn tại của một yêu cầu mạng (dấu vết yêu cầu mạng HTTP)
event_name chuỗi Tên sự kiện
  • Đối với DURATION_TRACE — tên dấu vết
  • Đối với TRACE_METRIC – tên chỉ số tuỳ chỉnh
  • Đối với SCREEN_TRACE_st_ theo sau là tên dấu vết
  • Đối với NETWORK_REQUEST – mẫu URL yêu cầu mạng
tên_dấu_do_cha_mẹ chuỗi Tên của dấu vết mẹ chứa chỉ số theo dõi
Chỉ có trong TRACE_METRIC
thông_tin_theo_dấu RECORD Chỉ xuất hiện đối với DURATION_TRACE, SCREEN_TRACETRACE_METRIC
trace_info.duration_vn int64
  • Đối với DURATION_TRACESCREEN_TRACE — Khoảng thời gian ("thời lượng") từ đầu đến cuối dấu vết
  • Đối với TRACE_METRIC – khoảng thời gian ("duration") tính từ thời điểm bắt đầu đến kết thúc của dấu vết gốc
Đơn vị: micrô giây
Thông_tin_theo_dõi.screen_info RECORD Chỉ trình bày cho SCREEN_TRACE
dấu vết_thông tin.screen_info.slow_frame_ratio độ chính xác đơn 64 Tỷ lệ khung hình chậm đối với dấu vết màn hình này, từ 0 đến 1 (ví dụ: giá trị 0, 05 có nghĩa là 5% số khung hình của phiên bản màn hình này mất hơn 16 mili giây để kết xuất)
dấu vết_thông tin.screen_info.frozen_frame_ratio độ chính xác đơn 64 Tỷ lệ khung hình bị treo của dấu vết màn hình này, từ 0 đến 1 (ví dụ: giá trị 0, 05 có nghĩa là 5% số khung hình của phiên bản màn hình này mất hơn 700 mili giây để kết xuất)
thông tin_theo_dõi.số_lượng_thông_tin RECORD Chỉ trình bày cho TRACE_METRIC
giá_trị_thông_tin. int64 Giá trị của chỉ số theo dõi
thông_tin_mạng RECORD Chỉ trình bày cho NETWORK_REQUEST
mạng_info.response_code int64 Mã phản hồi HTTP cho phản hồi mạng (ví dụ: 200, 404)
mạng_info.response_mime_type chuỗi Loại MIME của phản hồi mạng (ví dụ: "text/html")
phương thức mạng_info.request_http_method chuỗi Phương thức HTTP của yêu cầu mạng (ví dụ: "GET" hoặc "POST")
mạng_info.request_payload_bytes int64 Kích thước của tải trọng yêu cầu mạng
Đơn vị: byte
mạng_info.response_payload_bytes int64 Kích thước của tải trọng phản hồi mạng
Đơn vị: byte
mạng_info.request_complete_time_us int64 Micrô giây sau event_timestamp khi gửi xong yêu cầu mạng
Đơn vị: micrô giây
mạng_info.response_initiated_time_us int64 Micro giây sau event_timestamp khi phản hồi mạng bắt đầu
Đơn vị: micrô giây
mạng_info.response_complete_time_us int64 Phần triệu giây sau event_timestamp khi phản hồi mạng hoàn tất
Đơn vị: micrô giây

Bạn có thể làm gì với dữ liệu đã xuất?

Các phần sau đây đưa ra ví dụ về các truy vấn mà bạn có thể chạy trong BigQuery dựa trên dữ liệu Giám sát hiệu suất mà bạn đã xuất.

Xem thông tin chi tiết về độ trễ trung bình khi khởi động ứng dụng theo quốc gia

SELECT AVG(trace_info.duration_us), country
FROM `TABLE_NAME`
WHERE _PARTITIONTIME > TIMESTAMP("YYYY-MM-DD")
AND event_type = "DURATION_TRACE"
AND event_name = "_app_start"
GROUP BY 2;

Kiểm tra tỷ lệ khung hình bị treo so với các điều kiện

Ví dụ: bạn có thể kiểm tra tỷ lệ khung hình bị treo cùng với khoảng thời gian người dùng sử dụng trên mỗi màn hình ứng dụng khi sử dụng nhiều loại đài phát (WiFi, 4G, v.v.).

SELECT
  AVG(trace_info.duration_us / 1000000) AS seconds_on_screen,
  AVG(trace_info.screen_info.frozen_frame_ratio) AS frozen_frame_ratio,
  event_name,
  radio_type
FROM `TABLE_NAME`
WHERE _PARTITIONTIME > TIMESTAMP("YYYY-MM-DD")
AND event_type = "SCREEN_TRACE"
GROUP BY event_name, radio_type
ORDER BY event_name, radio_type;

Tính toán tỷ lệ truy cập vào bộ nhớ đệm để tải một số loại tệp nhất định từ ổ đĩa

Bản phân tích này giả định rằng bạn đã đo lường một dấu vết mã tuỳ chỉnh để tải từ ổ đĩa bằng thuộc tính tuỳ chỉnh có tên file-extension và một chỉ số tuỳ chỉnh (TRACE_METRIC) có tên cache-hit được đặt thành 1 nếu lượt truy cập vào bộ nhớ đệm và 0 nếu thiếu bộ nhớ đệm.

Ví dụ: bạn có thể tính toán tỷ lệ lượt truy cập vào bộ nhớ đệm khi tải tệp PNG từ ổ đĩa:

SELECT AVG(trace_info.metric_info.metric_value) AS cache_hit_rate
FROM `TABLE_NAME`
WHERE _PARTITIONTIME > TIMESTAMP("YYYY-MM-DD")
AND event_type = "TRACE_METRIC"
AND event_name = "cache-hit"
AND parent_trace_name = "loadFromDisk"
AND STRUCT("file-extension", "png") IN UNNEST(custom_attributes);

Kiểm tra thời điểm trong ngày mà người dùng đưa ra yêu cầu mạng

Ví dụ: bạn có thể kiểm tra vào giờ nào trong ngày mà người dùng từ ứng dụng của bạn gửi yêu cầu về mạng lưới phát hành tại Hoa Kỳ:

SELECT
  count(1) AS hourly_count,
  EXTRACT(HOUR FROM event_timestamp) AS hour_of_day
FROM `TABLE_NAME`
WHERE _PARTITIONTIME > TIMESTAMP("YYYY-MM-DD")
AND event_type = "NETWORK_REQUEST"
AND country = "US"
GROUP BY 2 ORDER BY 2;

Mang dữ liệu của dịch vụ Giám sát hiệu suất đến mọi nơi

Đôi khi, bạn muốn truy cập vào dữ liệu của tính năng Giám sát hiệu suất phía máy chủ hoặc đẩy dữ liệu đó sang một giải pháp khác của bên thứ ba. Hiện tại, bạn không phải trả phí cho việc xuất dữ liệu.

Bạn có thể xuất dữ liệu của mình bằng cách:

Giá

Bạn không phải trả phí khi xuất dữ liệu từ tính năng Giám sát hiệu suất và BigQuery cung cấp các hạn mức sử dụng miễn phí rất hào phóng. Để biết thông tin chi tiết, hãy tham khảo Giá của BigQuery hoặc hộp cát BigQuery.