คุณส่งออกข้อมูลการตรวจสอบประสิทธิภาพจากแอป Apple และ Android ไปยัง BigQuery เพื่อการวิเคราะห์เพิ่มเติมได้ BigQuery ช่วยให้คุณวิเคราะห์ข้อมูลโดยใช้ BigQuery SQL ส่งออกไปยังผู้ให้บริการระบบคลาวด์รายอื่น และแม้กระทั่งใช้ข้อมูลสำหรับโมเดล ML ที่กำหนดเองของคุณ
เปิดใช้งานการส่งออก BigQuery
ไปที่หน้า การผสานการ ทำงานในคอนโซล Firebase จากนั้นคลิก ลิงก์ ในการ์ด BigQuery
ทำตามคำแนะนำบนหน้าจอเพื่อเปิดใช้ BigQuery
เมื่อคุณเปิดใช้งานการส่งออก BigQuery สำหรับการตรวจสอบประสิทธิภาพ:
Firebase ส่งออกสำเนาของข้อมูลที่มีอยู่ของคุณ ไปยัง BigQuery
เมื่อทำการลิงก์ครั้งแรก Firebase จะกำหนดเวลาตาราง BigQuery ของคุณโดยอัตโนมัติเพื่อทดแทนข้อมูลในช่วง 7 วันที่ผ่านมา เพื่อให้คุณเริ่มทำการทดลองได้ทันที เผื่อเวลาไว้สองสามชั่วโมงเพื่อให้ข้อมูลเริ่มต้นพร้อมใช้งานใน BigQuery
คุณยัง กำหนดเวลาการทดแทนข้อมูลด้วยตนเอง ได้สูงสุด 30 วันที่ผ่านมา
หลังจากสร้างชุดข้อมูลแล้ว คุณจะไม่สามารถเปลี่ยนตำแหน่งได้ แต่คุณสามารถคัดลอกชุดข้อมูลไปยังตำแหน่งอื่นหรือย้าย (สร้างใหม่) ชุดข้อมูลด้วยตนเองในตำแหน่งอื่นได้ หากต้องการเรียนรู้เพิ่มเติม โปรดดู ที่ เปลี่ยนตำแหน่งชุดข้อมูล
Firebase ตั้งค่าการซิงค์ข้อมูลจากโปรเจ็กต์ Firebase กับ BigQuery เป็นประจำ การดำเนินการส่งออกรายวันเหล่านี้เริ่มต้นเวลา 04.00 น. ตามเวลาแปซิฟิก และมักจะเสร็จสิ้นใน 24 ชั่วโมง
โดยค่าเริ่มต้น แอปทั้งหมดในโปรเจ็กต์ของคุณจะลิงก์กับ BigQuery และแอปที่คุณเพิ่มลงในโปรเจ็กต์ในภายหลังจะลิงก์กับ BigQuery โดยอัตโนมัติ คุณสามารถ จัดการได้ว่าแอปใดส่งข้อมูล
หากต้องการปิดใช้งานการส่งออก BigQuery ให้ ยกเลิกการลิงก์โปรเจ็ กต์ของคุณในคอนโซล Firebase
ข้อมูลใดบ้างที่ส่งออกไปยัง BigQuery
สำหรับแต่ละแอปในโปรเจ็กต์ การส่งออกจะสร้างตารางที่รวมเหตุการณ์ประสิทธิภาพที่บันทึกไว้ทั้งหมด แต่ละแถวในตารางเป็นเหตุการณ์ประสิทธิภาพเดียวที่สามารถเป็นอย่างใดอย่างหนึ่งต่อไปนี้:
การ ติดตามระยะเวลา — การติดตามที่รวบรวมตามค่าเริ่มต้น เมตริกของ "duration" ซึ่งรวมถึงการเริ่มต้นแอป แอปในเบื้องหน้า และแอปในพื้นหลัง ตลอดจนการติดตามโค้ดที่กำหนดเองที่นักพัฒนาซอฟต์แวร์ใช้
-
event_type
คือDURATION_TRACE
-
event_name
เหมือนกับชื่อการติดตาม
-
ตัววัดการ ติดตาม — ตัววัดแบบกำหนดเองที่เชื่อมโยงกับการสืบค้นกลับของรหัสแบบกำหนดเองที่นักพัฒนาซอฟต์แวร์ใช้
-
event_type
คือTRACE_METRIC
-
event_name
เป็นชื่อของ metric -
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
สคีมาข้อมูลโดยละเอียด
ชื่อสนาม | พิมพ์ | คำอธิบาย |
---|---|---|
event_timestamp | การประทับเวลา | การประทับเวลาตั้งแต่ Epoch เมื่อเหตุการณ์เริ่มต้นบนอุปกรณ์ไคลเอ็นต์ (การเริ่มติดตาม เริ่มเครือข่าย ฯลฯ) |
app_display_version | สตริง | แสดงเวอร์ชันของแอปพลิเคชัน (เช่น "4.1.7")
|
app_build_version | สตริง | เวอร์ชันบิลด์ของแอปพลิเคชัน (เช่น "1523456")
|
os_version | สตริง | เวอร์ชัน OS ของอุปกรณ์ไคลเอ็นต์
|
ชื่ออุปกรณ์ | สตริง | ชื่ออุปกรณ์ไคลเอ็นต์ (เช่น "Google Pixel") |
ประเทศ | สตริง | รหัสประเทศสองตัวอักษรของประเทศที่เกิดเหตุการณ์ (เช่น "US" หรือ "ZZ" สำหรับประเทศที่ไม่รู้จัก) |
ผู้ให้บริการ | สตริง | ผู้ให้บริการอุปกรณ์ไคลเอ็นต์ |
radio_type | สตริง | ประเภทวิทยุที่ใช้งานอยู่เมื่อเกิดเหตุการณ์ (เช่น "WIFI") |
custom_attributes | ARRAY<บันทึก> | แอตทริบิวต์ที่กำหนดเองทั้งหมดที่แนบมากับกิจกรรมนี้ |
custom_attributes.key | สตริง | คีย์ของแอตทริบิวต์ที่กำหนดเอง |
custom_attributes.value | สตริง | ค่าของแอตทริบิวต์ที่กำหนดเอง |
event_type | สตริง | ประเภทของงาน; ค่าที่เป็นไปได้:
|
event_name | สตริง | ชื่องาน
|
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 | ขนาดของเพย์โหลดคำขอเครือข่าย หน่วย: byte |
network_info.response_payload_bytes | int64 | ขนาดของเพย์โหลดการตอบสนองของเครือข่าย หน่วย: byte |
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