คุณสามารถส่งออกข้อมูลการตรวจสอบประสิทธิภาพจากแอป Apple และ Android ไปยัง BigQuery เพื่อการวิเคราะห์เพิ่มเติมได้ BigQuery ช่วยให้คุณวิเคราะห์ข้อมูลโดยใช้ BigQuery SQL, ส่งออกไปยังผู้ให้บริการระบบคลาวด์รายอื่น หรือแม้แต่ใช้ข้อมูลสำหรับโมเดล ML ที่คุณกำหนดเอง
เปิดใช้การส่งออก BigQuery
ไปที่หน้า การรวมระบบ ในคอนโซล Firebase จากนั้นคลิก ลิงก์ ในการ์ด BigQuery
ทำตามคำแนะนำบนหน้าจอเพื่อเปิดใช้ BigQuery
เมื่อคุณเปิดใช้การส่งออก BigQuery สำหรับการตรวจสอบประสิทธิภาพ สิ่งต่อไปนี้จะเกิดขึ้น:
Firebase ส่งออกสำเนาข้อมูลที่มีอยู่ ไปยัง BigQuery การเผยแพร่ข้อมูลเริ่มแรกเพื่อการส่งออกอาจใช้เวลาถึง 48 ชั่วโมงจึงจะเสร็จสมบูรณ์
- คุณ กำหนดเวลาการทดแทนข้อมูลด้วยตนเอง ได้สูงสุด 30 วันที่ผ่านมา หรือสำหรับวันที่ล่าสุดเมื่อคุณเปิดใช้ BigQuery Export (แล้วแต่ว่ากรณีใดจะล่าสุด)
หลังจากสร้างชุดข้อมูลแล้ว คุณจะเปลี่ยนตำแหน่งไม่ได้ แต่คุณสามารถคัดลอกชุดข้อมูลไปยังตำแหน่งอื่นหรือย้าย (สร้างใหม่) ชุดข้อมูลในตำแหน่งอื่นด้วยตนเองได้ หากต้องการเรียนรู้เพิ่มเติม ดู ที่ เปลี่ยนตำแหน่งชุดข้อมูล
Firebase ตั้งค่าการซิงค์ข้อมูลจากโปรเจ็กต์ Firebase ไปยัง BigQuery เป็นประจำ การดำเนินการส่งออกรายวันเหล่านี้มักจะเสร็จสิ้นภายใน 24 ชั่วโมงหลังจากกำหนดไว้
โดยค่าเริ่มต้น แอปทั้งหมดในโครงการจะลิงก์กับ BigQuery แอปใดๆ ที่คุณเพิ่มลงในโปรเจ็กต์ในภายหลังจะลิงก์กับ BigQuery โดยอัตโนมัติ คุณสามารถ จัดการได้ว่าแอปใดจะส่งข้อมูล
หากต้องการปิดใช้งานการส่งออก BigQuery ให้ยกเลิกการลิงก์โปรเจ็กต์ ในคอนโซล Firebase
ข้อมูลใดบ้างที่ส่งออกไปยัง BigQuery
สำหรับแต่ละแอพในโปรเจ็กต์ การส่งออกจะสร้างตารางที่รวมเหตุการณ์ประสิทธิภาพที่บันทึกไว้ทั้งหมด แต่ละแถวในตารางเป็นเหตุการณ์ประสิทธิภาพเดียวที่สามารถเป็นหนึ่งในสิ่งต่อไปนี้:
การติดตามระยะเวลา — การติดตามที่รวบรวมตามค่าเริ่มต้นหน่วยเมตริกของ "ระยะเวลา" ซึ่งรวมถึงการเริ่มต้นแอป แอปในเบื้องหน้า และแอปในเบื้องหลัง ตลอดจนการติดตามโค้ดแบบกำหนดเองที่เครื่องมือของนักพัฒนา
-
event_type
คือDURATION_TRACE
-
event_name
เหมือนกับชื่อการติดตาม
-
ตัววัดการติดตาม — ตัววัดแบบกำหนดเองที่เชื่อมโยงกับการติดตามโค้ดแบบกำหนดเองที่เครื่องมือของนักพัฒนา
-
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
สคีมาข้อมูลโดยละเอียด
ชื่อฟิลด์ | พิมพ์ | คำอธิบาย |
---|---|---|
เหตุการณ์_การประทับเวลา | การประทับเวลา | การประทับเวลาตั้งแต่ยุคที่เหตุการณ์เริ่มต้นบนอุปกรณ์ไคลเอนต์ (การเริ่มต้นการติดตาม การเริ่มต้นเครือข่าย ฯลฯ) |
app_display_version | เชือก | แสดงเวอร์ชันของแอปพลิเคชัน (เช่น "4.1.7")
|
app_build_version | เชือก | เวอร์ชันบิวด์ของแอปพลิเคชัน (เช่น "1523456")
|
os_version | เชือก | เวอร์ชันระบบปฏิบัติการของอุปกรณ์ไคลเอ็นต์
|
ชื่ออุปกรณ์ | เชือก | ชื่ออุปกรณ์ไคลเอ็นต์ (เช่น "Google Pixel") |
ประเทศ | เชือก | รหัสประเทศสองตัวอักษรของประเทศที่กิจกรรมเกิดขึ้น (เช่น "US" หรือ "ZZ" สำหรับประเทศที่ไม่รู้จัก) |
ผู้ให้บริการ | เชือก | ผู้ให้บริการอุปกรณ์ไคลเอนต์ |
radio_type | เชือก | ประเภทวิทยุที่ใช้งานอยู่เมื่อเหตุการณ์เกิดขึ้น (เช่น "WIFI") |
กำหนดเอง_แอตทริบิวต์ | อาร์เรย์<บันทึก> | แอตทริบิวต์ที่กำหนดเองทั้งหมดที่แนบมากับกิจกรรมนี้ |
custom_attributes.key | เชือก | คีย์ของแอตทริบิวต์ที่กำหนดเอง |
custom_attributes.value | เชือก | ค่าของแอตทริบิวต์ที่กำหนดเอง |
event_type | เชือก | ประเภทของงาน ค่าที่เป็นไปได้:
|
เหตุการณ์_ชื่อ | เชือก | ชื่อของกิจกรรม
|
parent_trace_name | เชือก | ชื่อของการติดตามพาเรนต์ที่มีเมทริกการติดตาม นำเสนอสำหรับ TRACE_METRIC เท่านั้น |
ติดตาม_ข้อมูล | บันทึก | นำเสนอเฉพาะในช่วง DURATION_TRACE , SCREEN_TRACE และ TRACE_METRIC |
Trace_info.duration_us | int64 |
|
Trace_info.screen_info | บันทึก | นำเสนอสำหรับ SCREEN_TRACE เท่านั้น |
Trace_info.screen_info.slow_frame_ratio | ลอย64 | อัตราส่วนของเฟรมที่ช้าสำหรับการติดตามหน้าจอนี้ ระหว่าง 0 ถึง 1 (เช่น ค่า 0.05 หมายความว่า 5% ของเฟรมสำหรับอินสแตนซ์หน้าจอนี้ใช้เวลาในการแสดงผลมากกว่า 16 มิลลิวินาที) |
Trace_info.screen_info.frozen_frame_ratio | ลอย64 | อัตราส่วนของเฟรมที่ค้างสำหรับการติดตามหน้าจอนี้ ระหว่าง 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 ของการตอบสนองของเครือข่าย (เช่น "ข้อความ/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
และตัววัดแบบกำหนดเอง ( 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 หรือไลบรารีไคลเอ็นต์
ราคา
ไม่มีค่าใช้จ่ายในการส่งออกข้อมูลจาก Performance Monitoring และ BigQuery ก็มีขีดจำกัดการใช้งานที่ไม่มีค่าใช้จ่ายมากมาย หากต้องการข้อมูลโดยละเอียด โปรดดู ราคา BigQuery หรือ แซนด์บ็อกซ์ของ BigQuery