คุณสามารถส่งออกข้อมูล Performance Monitoring จากแอป Apple และ Android ไปยัง BigQuery เพื่อการวิเคราะห์เพิ่มเติมได้ BigQuery ช่วยให้คุณสามารถวิเคราะห์ข้อมูลได้โดยใช้ BigQuery แล้วส่งออกไปยังผู้ให้บริการคลาวด์รายอื่น หรือแม้แต่ใช้ สำหรับโมเดล ML ที่กำหนดเอง
เปิดใช้การส่งออก BigQuery
ไปที่หน้า การผสานรวม ในคอนโซล Firebase จากนั้นคลิกลิงก์ใน BigQuery
ทำตามวิธีการบนหน้าจอเพื่อเปิดใช้BigQuery
เมื่อคุณเปิดใช้การส่งออก BigQuery สำหรับ Performance Monitoring จะเกิดสิ่งต่อไปนี้ เกิดขึ้น:
Firebase จะส่งออกสำเนาข้อมูลที่มีอยู่ไปยัง BigQuery การเผยแพร่ข้อมูลเพื่อส่งออกในช่วงแรกอาจใช้เวลาถึง ใช้เวลา 48 ชั่วโมงในการดำเนินการให้เสร็จสมบูรณ์
- คุณสามารถ กำหนดเวลาการทดแทนข้อมูลด้วยตนเอง ไม่เกิน 30 วันที่ผ่านมาหรือสำหรับวันที่ล่าสุดเมื่อคุณเปิดใช้ BigQuery ส่งออก (รายการใดรายการหนึ่งล่าสุด)
หลังจากสร้างชุดข้อมูลแล้ว ตำแหน่ง ไม่สามารถเปลี่ยนแปลง แต่คัดลอกชุดข้อมูลไปยังตำแหน่งอื่นได้ หรือย้าย (สร้างใหม่) ชุดข้อมูลไปยังตำแหน่งอื่นด้วยตนเอง เพื่อเรียนรู้ ดูข้อมูลเพิ่มเติมที่เปลี่ยนตำแหน่งชุดข้อมูล
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
สคีมาข้อมูลโดยละเอียด
ชื่อช่อง | ประเภท | คำอธิบาย |
---|---|---|
event_timestamp | การประทับเวลา | การประทับเวลาตั้งแต่ Epoch เมื่อเหตุการณ์เริ่มต้นในอุปกรณ์ไคลเอ็นต์ (การเริ่มติดตาม การเริ่มเครือข่าย เป็นต้น) |
เวอร์ชันที่แสดงของแอป | สตริง | แสดงเวอร์ชันของแอปพลิเคชัน (เช่น "4.1.7")
|
app_build_version | สตริง | เวอร์ชันบิลด์ของแอปพลิเคชัน (เช่น "1523456")
|
เวอร์ชันระบบปฏิบัติการ | สตริง | เวอร์ชันระบบปฏิบัติการของอุปกรณ์ไคลเอ็นต์
|
device_name [ชื่ออุปกรณ์] | สตริง | ชื่อของอุปกรณ์ไคลเอ็นต์ (เช่น "Google Pixel") |
country | สตริง | รหัสประเทศแบบ 2 ตัวอักษรของประเทศที่ใช้ทำกิจกรรม เกิดขึ้น (เช่น "US" หรือ "ZZ" สําหรับประเทศที่ไม่รู้จัก) |
ผู้ให้บริการ | สตริง | ผู้ให้บริการอุปกรณ์ไคลเอ็นต์ |
radio_type | สตริง | ประเภทสัญญาณวิทยุที่ใช้งานอยู่เมื่อเกิดเหตุการณ์ (เช่น "Wi-Fi") |
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;
อัตรา Hit ของแคชการประมวลผลสำหรับการโหลดไฟล์บางประเภทจากดิสก์
การวิเคราะห์นี้จะสมมติว่าคุณใช้การติดตามโค้ดที่กำหนดเองสำหรับการโหลดจาก
ที่มีแอตทริบิวต์ที่กำหนดเองชื่อ 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;
พกข้อมูล Performance Monitoring ไปได้ทุกที่
บางครั้งคุณต้องการเข้าถึงPerformance Monitoringข้อมูลฝั่งเซิร์ฟเวอร์หรือส่งข้อมูลไปยังโซลูชันของบุคคลที่สามอื่น การส่งออกข้อมูลไม่มีค่าใช้จ่ายในขณะนี้
คุณส่งออกข้อมูลได้โดยใช้วิธีต่อไปนี้
การใช้ UI เว็บของ BigQuery
การเรียกใช้คำสั่ง CLI
bq extract
การส่ง ดึงข้อมูลงาน ผ่าน API หรือไลบรารีของไคลเอ็นต์
ราคา
การส่งออกข้อมูลจาก Performance Monitoring และ BigQuery ไม่มีค่าใช้จ่าย ให้ขีดจำกัดการใช้งานที่ไม่มีค่าใช้จ่ายมากมาย ดูข้อมูลโดยละเอียดได้ที่ราคา BigQuery หรือแซนด์บ็อกซ์ BigQuery