Catch up on everything announced at Firebase Summit, and learn how Firebase can help you accelerate app development and run your app with confidence. Learn More

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

Sử dụng bộ sưu tập để sắp xếp ngăn nắp các trang Lưu và phân loại nội dung dựa trên lựa chọn ưu tiên của bạn.

Bạn có thể xuất dữ liệu Giám sát hiệu suất từ ​​ứng dụng 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 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 để theo dõi 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 đa 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 theo cách thủ công ở một vị trí khác. Để 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 sang BigQuery. Các hoạt động xuất 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 được liên kết với BigQuery. Mọi ứng dụng mà bạn thêm vào dự án sau này 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 đã 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 các 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 bắt đầu ứng dụng, ứng dụng ở nền trước và ứng dụng ở chế độ nền, cũng như bất kỳ dấu vết mã tùy chỉnh nào do nhà phát triển công cụ cung cấp

    • event_typeDURATION_TRACE
    • event_name giống với tên theo dõi
  • Số liệu theo dõi — 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 công cụ cung cấp

    • event_typeTRACE_METRIC
    • event_name là tên của chỉ số
    • parent_trace_name là tên theo dõi có 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 kết xuất màn hình)

    • event_typeSCREEN_TRACE
    • event_name là tiền tố _st_ cộng với tên hiển thị thực tế
  • Yêu cầu mạng — dấu vết kéo dài 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 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 dành riêng cho 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 dấu 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 Loại hình Sự mô tả
event_timestamp dấu thời gian Dấu thời gian kể từ Epoch 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.)
app_display_version sợi dây Phiên bản hiển thị của ứng dụng (ví dụ: "4.1.7")
  • Đối với Android — VersionName
  • Đối với iOS — CFBundleShortVersionString
app_build_version sợi dây Phiên bản xây dựng của ứng dụng (ví dụ: "1523456")
  • Đối với 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
  • Đố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ị 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 diễn ra sự kiện (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 dịch vụ của thiết bị khách
radio_type sợi dây Loại đài đang hoạt động khi sự kiện diễn ra (ví dụ: "WIFI")
custom_attributes Mảng<GHI> Tất cả cá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 — dấu vết thu thập, theo mặc định, chỉ số "thời lượng", bao gồm bắt đầu ứng dụng, ứng dụng ở nền trước và ứng dụng ở chế độ nền, cũng như bất kỳ dấu vết mã tùy chỉnh nào do nhà phát triển công cụ cung cấp
  • 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 kết xuất màn hình)
  • TRACE_METRIC — 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 công cụ cung cấp
  • NETWORK_REQUEST — dấu vết kéo dài 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_name sợi dây Tên của sự kiện
  • Đối với DURATION_TRACE — tên theo dõi
  • Đối với TRACE_METRIC — tên chỉ số tùy chỉnh
  • Đối với SCREEN_TRACE_st_ theo sau là tên theo dõi
  • Đố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
dấu vết_thông tin GHI LẠI Chỉ hiện diện cho DURATION_TRACE , SCREEN_TRACETRACE_METRIC
dấu vết_info.duration_us int64
  • Đối với DURATION_TRACESCREEN_TRACE — Khoảng thời gian ("thời lượng") từ đầu đến cuối theo dõi
  • Đối với TRACE_METRIC — khoảng thời gian ("thời lượng") từ đầu đến cuối của dấu vết gốc
Đơn vị: micro giây
dấu vết_info.screen_info GHI LẠI Chỉ hiện diện cho SCREEN_TRACE
trace_info.screen_info.slow_frame_ratio phao64 Tỷ lệ khung hình chậm cho theo dõi màn hình này, nằm trong khoảng 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 để kết xuất)
trace_info.screen_info.frozen_frame_ratio phao64 Tỷ lệ khung hình cố định cho theo dõi màn hình này, nằm trong khoảng 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 để kết xuất)
trace_info.metric_info GHI LẠI 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 LẠI 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")
mạng_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_initiated_time_us int64 Micro giây sau event_timestamp khi bắt đầu phản hồi mạng
Đơ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 các ví dụ về truy vấn mà bạn có thể chạy trong BigQuery đối với dữ liệu Giám sát hiệu suất đã xuất của mình.

Xem thông tin chi tiết về độ 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 trong 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 từng màn hình trong ứng dụng của bạn 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 đã tạo công cụ theo dõi mã tùy chỉnh để tải từ đĩa với một thuộc tính tùy chỉnh có tên là file-extension và một chỉ số tùy chỉnh (một TRACE_METRIC ) có tên là cache-hit được đặt thành 1 nếu lần truy cập bộ nhớ cache và 0 nếu lỗi bộ nhớ cache.

Ví dụ: bạn có thể tính tốc độ truy cập bộ đệm để tải các 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 xem người dùng từ Hoa Kỳ gửi yêu cầu mạng từ ứng dụng của bạn vào giờ nào trong ngày:

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 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 một giải pháp bên thứ ba khác. Hiện tại không tính 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 tính phí 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í hào phóng. Để biết thông tin chi tiết, hãy tham khảo giá BigQuery hoặc hộp cát BigQuery .