Xuất dữ liệu Giám sát hiệu suất sang BigQuery

Bạn có thể xuất dữ liệu Giám sát hiệu suất từ ​​ứng dụng Apple và Android sang 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 nhà cung cấp đám mây khác và thậm chí sử dụng dữ liệu cho các mô hình ML tùy chỉnh của bạn.

Bật tính năng xuất BigQuery

  1. Chuyển đến trang Tích hợp trong bảng điều khiển Firebase, sau đó 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 xuất BigQuery cho Giám sát hiệu suất, điều sau đây sẽ xảy ra:

    • Firebase xuấ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 tới 48 giờ để hoàn thành.

    • Sau khi tập dữ liệu được tạo, bạn không thể thay đổi vị trí nhưng bạn 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 Thay đổi vị trí tập dữ liệu .

    • Firebase thiết lập đồng bộ hóa thường xuyên dữ liệu của bạn từ dự án Firebase với BigQuery. Các hoạt động xuất khẩu hàng ngày này thường kết thúc sau 24 giờ kể từ khi được lên lịch.

    • Theo mặc định, tất 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 sẽ tự động được liên kết với BigQuery. Bạn có thể quản lý ứng dụng nào gửi dữ liệu .

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

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

Đối với mỗi ứng dụng trong dự án, quá trì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 được ghi lại. 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 số liệu về "thời lượng", bao gồm khởi động ứng dụng, ứng dụng trong nền trước và ứng dụng trong nền cũng như mọi dấu vết mã tùy chỉnh do nhà phát triển thiết kế

    • event_typeDURATION_TRACE
    • event_name giống với tên theo dõi
  • Chỉ số theo dõi — chỉ số tùy chỉnh được liên kết với dấu vết mã tùy chỉnh do nhà phát triển thiết kế

    • event_typeTRACE_METRIC
    • event_name là tên của số liệu
    • parent_trace_name là tên theo dõi chứa số liệu này
  • Dấu vết màn hình - dấu vết kéo dài suốt thời gian tồn tại của màn hình (dấu vết hiển thị màn hình)

    • event_typeSCREEN_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 kéo dài suốt thời gian tồn tại của yêu cầu mạng (dấu vết yêu cầu mạng HTTP)

    • event_typeNETWORK_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 biểu diễn chứa các thuộc tính của sự kiện (chẳng hạn như quốc gia và nhà cung cấp 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, số liệu theo dõi và dấu vết màn hình chứa trace_info
  • Số liệu theo dõi chứa trace_info.metric_info
  • Dấu vết màn hình chứa trace_info.screen_info
  • Dấu vết mạng chứa network_info

Lược đồ dữ liệu chi tiết

Tên trường Kiểu Sự miêu tả
sự kiện_timestamp dấu thời gian Dấu thời gian kể từ Kỷ nguyên khi sự kiện bắt đầu trên thiết bị khách (bắt đầu theo dõi, bắt đầu mạng, v.v.)
ứng dụng_display_version sợi dây Phiên bản hiển thị của ứng dụng (ví dụ: "4.1.7")
  • Dành cho Android — VersionName
  • Dành cho iOS — CFBundleShortVersionString
ứng dụng_build_version sợi dây Phiên bản xây dựng của ứng dụng (ví dụ: "1523456")
  • Dành cho Android — VersionCode
  • Dành cho iOS — CFBundleVersion
phiên bản của hệ điều hành sợi dây Phiên bản hệ điều hành của thiết bị khách
  • Dành cho Android — Cấp độ API Android (ví dụ: "26")
  • Dành cho iOS — Phiên bản iOS (ví dụ: "11.4")
Tên thiết bị sợi dây Tên của thiết bị khách (ví dụ: "Google Pixel")
quốc gia sợi dây Mã quốc gia gồm hai chữ cái của quốc gia nơi sự kiện diễn ra (ví dụ: "US" hoặc "ZZ" cho quốc gia không xác định)
vận chuyển sợi dây Nhà cung cấp thiết bị khách hàng
loại đài phát thanh sợi dây Loại radio hoạt động khi sự kiện diễn ra (ví dụ: "WIFI")
thuộc tính tùy chỉnh Mảng<GHI> Tất cả thuộc tính tùy chỉnh được đính kèm với sự kiện này
custom_attributes.key sợi dây Khóa của thuộc tính tùy chỉnh
custom_attributes.value sợi dây Giá trị của thuộc tính tùy chỉnh
loại sự kiện sợi dây Loại sự kiện; những giá trị khả thi:
  • DURATION_TRACE — theo mặc định, các dấu vết thu thập số liệu về "thời lượng", bao gồm khởi động ứng dụng, ứng dụng trong nền trước và ứng dụng trong nền cũng như mọi dấu vết mã tùy chỉnh do nhà phát triển thiết kế
  • SCREEN_TRACE - dấu vết kéo dài suốt thời gian tồn tại của màn hình (dấu vết hiển thị màn hình)
  • TRACE_METRIC — số liệu tùy chỉnh được liên kết với dấu vết mã tùy chỉnh do nhà phát triển thiết kế
  • NETWORK_REQUEST - dấu vết kéo dài suốt thời gian tồn tại của yêu cầu mạng (dấu vết yêu cầu mạng HTTP)
tên sự kiện sợi dây Tên sự kiện
  • Trong DURATION_TRACE — tên dấu vết
  • Đối với TRACE_METRIC — tên chỉ số tùy 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
parent_trace_name sợi dây Tên của dấu vết gốc mang số liệu theo dõi
Chỉ hiện diện cho TRACE_METRIC
thông tin dấu vết GHI Chỉ hiện diện cho DURATION_TRACE , SCREEN_TRACETRACE_METRIC
trace_info.duration_us 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 ("thời lượng") từ đầu đến cuối dấu vết gốc
Đơn vị: micro giây
trace_info.screen_info GHI Chỉ hiện diện cho SCREEN_TRACE
trace_info.screen_info.slow_frame_ratio phao64 Tỷ lệ khung hình chậm cho 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 cho phiên bản màn hình này mất hơn 16 mili giây để hiển thị)
trace_info.screen_info.frozen_frame_ratio phao64 Tỷ lệ khung hình bị treo cho 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 cho phiên bản màn hình này mất hơn 700 mili giây để hiển thị)
trace_info.metric_info GHI Chỉ hiện diện cho TRACE_METRIC
trace_info.metric_info.metric_value int64 Giá trị của số liệu theo dõi
thông tin mạng GHI Chỉ hiện diện cho NETWORK_REQUEST
network_info.response_code int64 Mã phản hồi HTTP cho phản hồi mạng (ví dụ: 200, 404)
network_info.response_mime_type sợi dây Loại MIME của phản hồi mạng (ví dụ: "text/html")
network_info.request_http_method sợi dây Phương thức HTTP của yêu cầu mạng (ví dụ: "GET" hoặc "POST")
network_info.request_payload_bytes int64 Kích thước của tải trọng yêu cầu mạng
Đơn vị: byte
network_info.response_payload_bytes int64 Kích thước của tải trọng phản hồi mạng
Đơn vị: byte
network_info.request_completed_time_us int64 Micro giây sau event_timestamp khi quá trình gửi yêu cầu mạng hoàn tất
Đơn vị: micro giây
network_info.response_initiate_time_us int64 Micro giây sau event_timestamp khi phản hồi mạng được bắt đầu
Đơn vị: micro giây
network_info.response_completed_time_us int64 Micro giây sau event_timestamp khi phản hồi mạng hoàn tất
Đơn vị: micro giây

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

Các phần sau đây cung cấp 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 đã xuất của mình.

Xem phân tích độ trễ khởi động ứng dụng trung bình 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ị đóng băng với các điều kiện khác nhau

Ví dụ: bạn có thể kiểm tra tỷ lệ khung hình bị treo cùng với lượng thời gian người dùng dành cho mỗi màn hình của ứng dụng khi sử dụng các loại radio khác nhau (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 tốc độ truy cập bộ đệm để tải một số loại tệp nhất định từ đĩa

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

Ví dụ: bạn có thể tính tốc độ truy cập bộ đệm để 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 gian 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 người dùng ở Hoa Kỳ đưa ra yêu cầu mạng từ ứng dụng của bạn:

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 Giám sát hiệu suất của bạn đi bất cứ đâu

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

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

Định giá

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