คุณส่งออกข้อมูลการตรวจสอบประสิทธิภาพจากแอป Apple และ Android ไปยัง BigQuery เพื่อวิเคราะห์เพิ่มเติมได้ BigQuery ช่วยให้คุณวิเคราะห์ข้อมูลโดยใช้ BigQuery SQL ส่งออกไปยังผู้ให้บริการระบบคลาวด์รายอื่น และแม้แต่ใช้ข้อมูลสำหรับโมเดล ML ที่คุณกำหนดเอง
เปิดใช้การส่งออก BigQuery
ไปที่หน้า การผสานรวม ในคอนโซล Firebase แล้วคลิก ลิงก์ ในการ์ด BigQuery
ทำตามวิธีการบนหน้าจอเพื่อเปิดใช้ BigQuery
เมื่อคุณเปิดใช้งานการส่งออก BigQuery สำหรับการตรวจสอบประสิทธิภาพ สิ่งต่อไปนี้จะเกิดขึ้น:
Firebase ส่งออกสำเนาข้อมูลที่มีอยู่ ไปยัง BigQuery การเผยแพร่ข้อมูลเพื่อส่งออกครั้งแรกอาจใช้เวลาถึง 48 ชั่วโมงจึงจะเสร็จสมบูรณ์
- คุณ กำหนดเวลาการเติมข้อมูลทดแทนด้วยตนเอง ได้สูงสุด 30 วันที่ผ่านมาหรือวันที่ล่าสุดเมื่อคุณเปิดใช้การส่งออก BigQuery (ขึ้นอยู่กับว่าวันใดเป็นล่าสุด)
หลังจากสร้างชุดข้อมูลแล้ว คุณจะเปลี่ยนตำแหน่งไม่ได้ แต่คุณสามารถคัดลอกชุดข้อมูลไปยังตำแหน่งอื่นหรือย้าย (สร้างใหม่) ชุดข้อมูลในตำแหน่งอื่นด้วยตนเองได้ หากต้องการเรียนรู้เพิ่มเติม โปรดดูที่ เปลี่ยนตำแหน่งชุดข้อมูล
Firebase ตั้งค่าการซิงค์ข้อมูลจากโปรเจ็กต์ Firebase ไปยัง BigQuery เป็นประจำ การดำเนินการส่งออกรายวันเหล่านี้มักจะเสร็จสิ้นภายใน 24 ชั่วโมงหลังจากกำหนดเวลา
โดยค่าเริ่มต้น แอปทั้งหมดในโครงการจะลิงก์กับ BigQuery แอปที่คุณเพิ่มในโครงการในภายหลังจะลิงก์กับ BigQuery โดยอัตโนมัติ คุณสามารถ จัดการว่าจะให้แอปใดส่งข้อมูล
หากต้องการปิดใช้งานการส่งออก BigQuery ให้ยกเลิกการลิงก์โครงการ ในคอนโซล Firebase
ข้อมูลใดบ้างที่ส่งออกไปยัง BigQuery
สำหรับแต่ละแอปในโปรเจ็กต์ การส่งออกจะสร้างตารางที่มีเหตุการณ์ประสิทธิภาพที่บันทึกทั้งหมด แต่ละแถวในตารางเป็นเหตุการณ์ประสิทธิภาพเดียวที่สามารถเป็นอย่างใดอย่างหนึ่งต่อไปนี้:
การติดตามระยะเวลา — การติดตามที่รวบรวมโดยค่าเริ่มต้น ตัววัดของ "ระยะเวลา" ซึ่งรวมถึงการเริ่มต้นแอป แอปในพื้นหน้า และแอปในพื้นหลัง ตลอดจนการติดตามโค้ดที่กำหนดเองซึ่งนักพัฒนาซอฟต์แวร์เป็นผู้ติดตั้ง
-
event_type
คือDURATION_TRACE
-
event_name
เหมือนกับชื่อการติดตาม
-
Trace metric — เมตริกแบบกำหนดเองที่เกี่ยวข้องกับการติดตามโค้ดแบบกำหนดเองที่พัฒนาโดยผู้พัฒนา
-
event_type
คือTRACE_METRIC
-
event_name
คือชื่อของเมตริก -
parent_trace_name
คือชื่อการติดตามที่มีเมทริกนี้
-
ร่องรอยหน้าจอ — ร่องรอยที่ครอบคลุมตลอดอายุการใช้งานของหน้าจอ (ร่องรอยการแสดงผลหน้าจอ)
-
event_type
คือSCREEN_TRACE
-
event_name
คือคำนำหน้า_st_
บวกกับชื่อหน้าจอจริง
-
คำขอเครือข่าย — การติดตามที่ครอบคลุมตลอดอายุของคำขอเครือข่าย (การติดตามคำขอเครือข่าย HTTP)
-
event_type
คือNETWORK_REQUEST
-
event_name
คือรูปแบบการจัดหมวดหมู่ของ URL คำขอเครือข่าย
-
เหตุการณ์ประสิทธิภาพแต่ละรายการมีแอตทริบิวต์ของเหตุการณ์ (เช่น ประเทศและผู้ให้บริการอุปกรณ์ไคลเอนต์) รวมถึงข้อมูลเฉพาะของเหตุการณ์:
- การติดตามระยะเวลา เมตริกการติดตาม และการติดตามหน้าจอประกอบด้วย
trace_info
- เมตริกการติดตามประกอบด้วย
trace_info.metric_info
- การติดตามหน้าจอประกอบด้วย
trace_info.screen_info
- การติดตามเครือข่ายประกอบด้วย
network_info
สคีมาข้อมูลโดยละเอียด
ชื่อฟิลด์ | พิมพ์ | คำอธิบาย |
---|---|---|
เหตุการณ์_timestamp | การประทับเวลา | การประทับเวลาตั้งแต่ Epoch เมื่อเหตุการณ์เริ่มต้นบนอุปกรณ์ไคลเอนต์ (การเริ่มการติดตาม การเริ่มต้นเครือข่าย ฯลฯ) |
app_display_version | สตริง | เวอร์ชันที่แสดงของแอปพลิเคชัน (เช่น "4.1.7")
|
app_build_version | สตริง | รุ่นบิลด์ของแอปพลิเคชัน (เช่น "1523456")
|
os_version | สตริง | เวอร์ชันระบบปฏิบัติการของอุปกรณ์ไคลเอ็นต์
|
ชื่ออุปกรณ์ | สตริง | ชื่ออุปกรณ์ไคลเอ็นต์ (เช่น "Google Pixel") |
ประเทศ | สตริง | รหัสประเทศ 2 ตัวอักษรของประเทศที่จัดงาน (เช่น "US" หรือ "ZZ" สำหรับประเทศที่ไม่รู้จัก) |
ผู้ให้บริการ | สตริง | ผู้ให้บริการอุปกรณ์ไคลเอนต์ |
radio_type | สตริง | ประเภทวิทยุที่ใช้งานเมื่อเหตุการณ์เกิดขึ้น (เช่น "WIFI") |
custom_attributes | อาร์เรย์<บันทึก> | แอตทริบิวต์ที่กำหนดเองทั้งหมดที่แนบมากับกิจกรรมนี้ |
custom_attributes.key | สตริง | คีย์ของแอตทริบิวต์ที่กำหนดเอง |
custom_attributes.value | สตริง | ค่าของแอตทริบิวต์ที่กำหนดเอง |
เหตุการณ์_ประเภท | สตริง | ประเภทของเหตุการณ์ ค่าที่เป็นไปได้:
|
เหตุการณ์_ชื่อ | สตริง | ชื่องาน
|
parent_trace_name | สตริง | ชื่อของพาเรนต์เทรซที่มีเมตริกการติดตาม แสดงเฉพาะสำหรับ TRACE_METRIC |
trace_info | บันทึก | แสดงเฉพาะสำหรับ DURATION_TRACE , SCREEN_TRACE และ TRACE_METRIC |
trace_info.duration_us | int64 |
|
trace_info.screen_info | บันทึก | แสดงเฉพาะสำหรับ SCREEN_TRACE |
trace_info.screen_info.slow_frame_ratio | float64 | อัตราส่วนของเฟรมที่ช้าสำหรับการติดตามหน้าจอนี้ ระหว่าง 0 ถึง 1 (เช่น ค่า 0.05 หมายความว่า 5% ของเฟรมสำหรับอินสแตนซ์หน้าจอนี้ใช้เวลาแสดงผลมากกว่า 16 มิลลิวินาที) |
trace_info.screen_info.frozen_frame_ratio | float64 | อัตราส่วนของเฟรมที่ค้างสำหรับการติดตามหน้าจอนี้ ระหว่าง 0 ถึง 1 (เช่น ค่า 0.05 หมายความว่า 5% ของเฟรมสำหรับอินสแตนซ์หน้าจอนี้ใช้เวลาแสดงผลมากกว่า 700 มิลลิวินาที) |
trace_info.metric_info | บันทึก | แสดงเฉพาะสำหรับ TRACE_METRIC |
trace_info.metric_info.metric_value | int64 | ค่าของเมตริกการติดตาม |
network_info | บันทึก | แสดงเฉพาะสำหรับ NETWORK_REQUEST |
network_info.response_code | int64 | รหัสการตอบสนอง HTTP สำหรับการตอบกลับเครือข่าย (เช่น 200, 404) |
network_info.response_mime_type | สตริง | ประเภท MIME ของการตอบสนองเครือข่าย (เช่น "text/html") |
network_info.request_http_method | สตริง | วิธีการ HTTP ของคำขอเครือข่าย (เช่น "GET" หรือ "POST") |
network_info.request_payload_bytes | int64 | ขนาดของเพย์โหลดคำขอเครือข่าย หน่วย: ไบต์ |
network_info.response_payload_bytes | int64 | ขนาดของเพย์โหลดการตอบสนองของเครือข่าย หน่วย: ไบต์ |
network_info.request_completed_time_us | int64 | ไมโครวินาทีหลังจาก event_timestamp เมื่อการส่งคำขอเครือข่ายเสร็จสมบูรณ์หน่วย: ไมโครวินาที |
network_info.response_initiated_time_us | int64 | ไมโครวินาทีหลังจาก event_timestamp เมื่อการตอบสนองของเครือข่ายเริ่มต้นขึ้นหน่วย: ไมโครวินาที |
network_info.response_completed_time_us | int64 | ไมโครวินาทีหลังจาก event_timestamp เมื่อการตอบสนองของเครือข่ายเสร็จสิ้นหน่วย: ไมโครวินาที |
คุณทำอะไรกับข้อมูลที่ส่งออกได้บ้าง
ส่วนต่อไปนี้แสดงตัวอย่างการค้นหาที่คุณเรียกใช้ใน BigQuery กับข้อมูลการตรวจสอบประสิทธิภาพที่ส่งออกได้
ดูรายละเอียดเวลาแฝงในการเริ่มต้นแอปโดยเฉลี่ยตามประเทศ
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;
ตรวจสอบอัตราส่วนของเฟรมที่ค้างกับเงื่อนไขต่างๆ
ตัวอย่างเช่น คุณสามารถตรวจสอบอัตราส่วนของเฟรมที่ค้างควบคู่ไปกับระยะเวลาที่ผู้ใช้ใช้ในแต่ละหน้าจอของแอปเมื่อใช้วิทยุประเภทต่างๆ (WiFi, 4G เป็นต้น)
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;
คำนวณอัตราการเข้าถึงแคชสำหรับการโหลดไฟล์บางประเภทจากดิสก์
การวิเคราะห์นี้ถือว่าคุณได้ใช้การติดตามโค้ดที่กำหนดเองสำหรับการโหลดจากดิสก์ด้วยแอตทริบิวต์ที่กำหนดเองชื่อ file-extension
และเมตริกที่กำหนดเอง (a TRACE_METRIC
) ที่ชื่อ cache-hit
ซึ่งตั้งค่าเป็น 1
หากพบแคช และ 0
หากไม่พบแคช
ตัวอย่างเช่น คุณสามารถคำนวณอัตราการเข้าชมแคชสำหรับการโหลดไฟล์ PNG จากดิสก์:
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);
ตรวจสอบเวลาของวันที่ผู้ใช้ออกคำขอเครือข่าย
ตัวอย่างเช่น คุณสามารถตรวจสอบได้ว่าผู้ใช้จากแอปของคุณส่งปัญหาเกี่ยวกับเครือข่ายในเวลาใดของวันจากสหรัฐอเมริกา:
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;
นำข้อมูลการตรวจสอบประสิทธิภาพของคุณไปใช้ได้ทุกที่
บางครั้งคุณต้องการเข้าถึงข้อมูลการตรวจสอบประสิทธิภาพของคุณฝั่งเซิร์ฟเวอร์หรือพุชไปยังโซลูชันของบริษัทอื่น ขณะนี้ไม่มีค่าใช้จ่ายสำหรับการส่งออกข้อมูล
คุณสามารถส่งออกข้อมูลของคุณโดย:
การใช้เว็บ UI ของ BigQuery
เรียกใช้คำสั่ง CLI
bq extract
การส่ง งานแยก ผ่าน API หรือไคลเอนต์ไลบรารี
ราคา
ไม่มีค่าใช้จ่ายสำหรับการส่งออกข้อมูลจากการตรวจสอบประสิทธิภาพ และ BigQuery ให้ขีดจำกัดการใช้งานที่ไม่เสียค่าใช้จ่ายมากมาย สำหรับข้อมูลโดยละเอียด โปรดดู ราคาของ BigQuery หรือ แซนด์บ็อกซ์ของ BigQuery