คุณสามารถส่งออกข้อมูลการตรวจสอบประสิทธิภาพจากแอป Apple และ Android ไปยัง BigQuery สําหรับเพิ่มเติม การวิเคราะห์ของคุณ BigQuery ช่วยให้คุณวิเคราะห์ข้อมูลได้โดยใช้ BigQuery SQL แล้วส่งออกไปยังผู้ให้บริการคลาวด์รายอื่น หรือแม้แต่ใช้ สำหรับโมเดล ML ที่กำหนดเอง
เปิดใช้การส่งออก BigQuery
ไปที่หน้า การผสานรวม ในคอนโซล Firebase จากนั้นคลิกลิงก์ใน BigQuery
ทำตามวิธีการบนหน้าจอเพื่อเปิดใช้ BigQuery
สิ่งต่อไปนี้จะเกิดขึ้นเมื่อคุณเปิดใช้ BigQuery Export สำหรับการตรวจสอบประสิทธิภาพ เกิดขึ้น:
Firebase จะส่งออกสำเนาข้อมูลที่มีอยู่ไปยัง BigQuery การเผยแพร่ข้อมูลเพื่อส่งออกในช่วงแรกอาจใช้เวลาถึง ใช้เวลา 48 ชั่วโมงในการดำเนินการให้เสร็จสมบูรณ์
- คุณสามารถ กำหนดเวลาการทดแทนข้อมูลด้วยตนเอง ไม่เกิน 30 วันที่ผ่านมา หรือสำหรับวันที่ล่าสุดเมื่อคุณเปิดใช้ BigQuery ส่งออก (รายการใดรายการหนึ่งล่าสุด)
หลังจากสร้างชุดข้อมูลแล้ว ตำแหน่ง ไม่สามารถเปลี่ยนแปลง แต่คัดลอกชุดข้อมูลไปยังตำแหน่งอื่นได้ หรือย้าย (สร้างใหม่) ชุดข้อมูลไปยังตำแหน่งอื่นด้วยตนเอง เพื่อเรียนรู้ ดูข้อมูลเพิ่มเติมที่เปลี่ยนตำแหน่งชุดข้อมูล
Firebase จะตั้งค่าการซิงค์ข้อมูลจากโปรเจ็กต์ Firebase เป็นประจำเพื่อ BigQuery โดยทั่วไปการดำเนินการส่งออกประจำวันเหล่านี้มักจะเสร็จสิ้นภายใน 24 ชั่วโมง หลังจากตั้งเวลา
โดยค่าเริ่มต้น แอปทั้งหมดในโปรเจ็กต์จะลิงก์กับ BigQuery ช่วง แอปที่คุณเพิ่มในโปรเจ็กต์ในภายหลังจะลิงก์โดยอัตโนมัติ BigQuery คุณสามารถ จัดการแอปที่ส่งข้อมูล
วิธีปิดใช้งาน BigQuery Export ยกเลิกการลิงก์โปรเจ็กต์ ในคอนโซล Firebase
ข้อมูลที่ส่งออกไปยัง BigQuery
สำหรับแต่ละแอปในโปรเจ็กต์ การส่งออกจะสร้างตารางที่รวมข้อมูล เหตุการณ์ด้านประสิทธิภาพที่บันทึกไว้ แต่ละแถวในตารางเป็นเหตุการณ์ด้านประสิทธิภาพรายการเดียว ที่อาจเป็นอย่างใดอย่างหนึ่งต่อไปนี้
การติดตามระยะเวลา — การติดตามที่รวบรวมเมตริกของ "duration" ซึ่งรวมถึงการเริ่มแอป การใช้แอปในเบื้องหน้า และในแอปในเบื้องหลัง ตลอดจนการติดตามโค้ดที่กำหนดเองที่มาจากนักพัฒนาซอฟต์แวร์
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
สคีมาข้อมูลโดยละเอียด
ชื่อช่อง | ประเภท | คำอธิบาย |
---|---|---|
event_timestamp | การประทับเวลา | การประทับเวลาตั้งแต่ Epoch เมื่อเหตุการณ์เริ่มต้นในอุปกรณ์ไคลเอ็นต์ (การเริ่มติดตาม การเริ่มเครือข่าย เป็นต้น) |
เวอร์ชันที่แสดงของแอป | สตริง | แสดงเวอร์ชันของแอปพลิเคชัน (เช่น "4.1.7")
|
app_build_version | สตริง | เวอร์ชันบิลด์ของแอปพลิเคชัน (เช่น "1523456")
|
เวอร์ชันระบบปฏิบัติการ | สตริง | เวอร์ชันระบบปฏิบัติการของอุปกรณ์ไคลเอ็นต์
|
device_name [ชื่ออุปกรณ์] | สตริง | ชื่อของอุปกรณ์ไคลเอ็นต์ (เช่น "Google Pixel") |
country | สตริง | รหัสประเทศแบบ 2 ตัวอักษรของประเทศที่ใช้ทำกิจกรรม เกิดขึ้น (เช่น "US" หรือ "ZZ" สําหรับประเทศที่ไม่รู้จัก) |
ผู้ให้บริการ | สตริง | ผู้ให้บริการอุปกรณ์ไคลเอ็นต์ |
ประเภทวิทยุ | สตริง | ประเภทวิทยุที่ใช้งานอยู่เมื่อเกิดเหตุการณ์ (เช่น "WIFI") |
custom_attributes | ARRAY<RECORD> | แอตทริบิวต์ที่กำหนดเองทั้งหมดที่แนบมากับเหตุการณ์นี้ |
custom_attributes.key | สตริง | คีย์ของแอตทริบิวต์ที่กำหนดเอง |
custom_attributes.value | สตริง | ค่าของแอตทริบิวต์ที่กำหนดเอง |
ประเภทเหตุการณ์ | สตริง | ประเภทกิจกรรม ค่าที่เป็นไปได้ ได้แก่
|
event_name | สตริง | ชื่อเหตุการณ์
|
ชื่อการติดตามระดับบนสุด | สตริง | ชื่อของการติดตามระดับบนสุดที่มีเมตริกการติดตาม นำเสนอสำหรับ TRACE_METRIC เท่านั้น |
ข้อมูลการติดตาม | RECORD | นำเสนอสำหรับ DURATION_TRACE เท่านั้น
SCREEN_TRACE และ TRACE_METRIC |
Track_info.duration_th | int64 |
|
Track_info.screen_info | RECORD | นำเสนอสำหรับ SCREEN_TRACE เท่านั้น |
Track_info.screen_info.slow_frame_ratio | Float 64 | อัตราส่วนของเฟรมที่ช้าสำหรับการติดตามหน้าจอนี้ระหว่าง 0 ถึง 1 (เช่น ค่า 0.05 หมายถึง 5% ของเฟรมสำหรับหน้าจอนี้ อินสแตนซ์ใช้เวลาแสดงผลนานกว่า 16 มิลลิวินาที) |
Track_info.screen_info.frozen_frame_ratio | Float 64 | อัตราส่วนของเฟรมที่ค้างสำหรับการติดตามหน้าจอนี้ระหว่าง 0 ถึง 1 (เช่น ค่า 0.05 หมายถึง 5% ของเฟรมสำหรับหน้าจอนี้ อินสแตนซ์ใช้เวลาแสดงผลนานกว่า 700 มิลลิวินาที) |
Track_info.metric_info | RECORD | นำเสนอสำหรับ TRACE_METRIC เท่านั้น |
Track_info.metric_info.metric_value | int64 | ค่าของเมตริกการติดตาม |
ข้อมูลเครือข่าย | RECORD | นำเสนอสำหรับ 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 เทียบกับข้อมูล Performance Monitoring ที่ส่งออก
ดูรายละเอียดเวลาในการตอบสนองของการเริ่มแอปโดยเฉลี่ยตามประเทศ
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;
ตรวจสอบอัตราส่วนของเฟรมที่ค้างกับเงื่อนไขต่างๆ
ตัวอย่างเช่น คุณสามารถตรวจสอบอัตราส่วนของเฟรมที่ค้างควบคู่ไปกับจำนวน เวลาที่ผู้ใช้อยู่ในแต่ละหน้าจอของแอปเมื่อใช้วิทยุประเภทต่างๆ (Wi-Fi, 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
หาก
ไม่พบแคช
เช่น คุณสามารถคำนวณอัตรา Hit ของแคชสำหรับการโหลดไฟล์ 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