หน้านี้มีเคล็ดลับการแก้ปัญหาเกี่ยวกับการเริ่มต้นใช้งาน Performance Monitoring หรือการใช้ฟีเจอร์และเครื่องมือของ Performance Monitoring
การตรวจสอบเพื่อแก้ปัญหาเบื้องต้น
การตรวจสอบ 2 รายการต่อไปนี้เป็นแนวทางปฏิบัติแนะนำทั่วไปที่แนะนำให้ทุกคนทำก่อนแก้ปัญหาเพิ่มเติม
1. ตรวจสอบข้อความบันทึกเพื่อหาเหตุการณ์ด้านประสิทธิภาพ
ตรวจสอบข้อความบันทึกเพื่อให้แน่ใจว่า Performance Monitoring SDK กําลังบันทึกเหตุการณ์ประสิทธิภาพ
วิธีดูข้อความบันทึกสําหรับเหตุการณ์ประสิทธิภาพ
เปิดใช้การบันทึกการแก้ไขข้อบกพร่องสําหรับ Performance Monitoring ขณะสร้างโดยการเพิ่มองค์ประกอบ
<meta-data>
ลงในไฟล์AndroidManifest.xml
ของแอป ดังนี้<application> <meta-data android:name="firebase_performance_logcat_enabled" android:value="true" /> </application>
ตรวจสอบข้อความบันทึกเพื่อหาข้อความแสดงข้อผิดพลาด
Performance Monitoring ติดแท็กข้อความบันทึกด้วย
FirebasePerformance
เมื่อใช้การกรอง logcat คุณสามารถดูการติดตามระยะเวลาและการบันทึกคําขอเครือข่าย HTTP/S โดยเฉพาะได้โดยเรียกใช้คําสั่งต่อไปนี้adb logcat -s FirebasePerformance
ตรวจสอบบันทึกประเภทต่อไปนี้ซึ่งบ่งชี้ว่า Performance Monitoring บันทึกเหตุการณ์ด้านประสิทธิภาพ
Logging trace metric: TRACE_NAME, FIREBASE_PERFORMANCE_CONSOLE_URL
Logging network request trace: URL
คลิก URL เพื่อดูข้อมูลในคอนโซล Firebase ระบบอาจใช้เวลาสักครู่ในการอัปเดตข้อมูลในแดชบอร์ด
หากแอปไม่ได้บันทึกเหตุการณ์ด้านประสิทธิภาพ โปรดดูเคล็ดลับการแก้ปัญหา
2. ตรวจสอบแดชบอร์ดสถานะ Firebase
ตรวจสอบหน้าแดชบอร์ดสถานะ Firebase ในกรณีที่ทราบว่า Firebase หรือ Performance Monitoring หยุดให้บริการ
การเริ่มต้นใช้งาน Performance Monitoring
หากคุณเพิ่งเริ่มต้นใช้งาน Performance Monitoring (iOS+ | Android | เว็บ) เคล็ดลับการแก้ปัญหาต่อไปนี้จะช่วยแก้ปัญหาที่เกี่ยวข้องกับ Firebase ที่ตรวจหา SDK หรือแสดงข้อมูลประสิทธิภาพครั้งแรกในคอนโซล Firebase
เพิ่ม SDK ลงในแอปแล้ว แต่คอนโซลยังคงบอกให้เพิ่ม SDK
Firebase จะตรวจจับได้ว่าคุณเพิ่ม Performance Monitoring SDK ลงในแอปเรียบร้อยแล้วหรือไม่เมื่อได้รับข้อมูลเหตุการณ์ (เช่น การโต้ตอบของแอป) จากแอปของคุณ โดยปกติแล้วภายใน 10 นาทีหลังจากเริ่มแอป แดชบอร์ดประสิทธิภาพของคอนโซล Firebase จะแสดงข้อความ "ตรวจพบ SDK" จากนั้นภายใน 30 นาที แดชบอร์ดจะแสดงข้อมูลที่ประมวลผลเบื้องต้น
หากผ่านไปนานกว่า 10 นาทีแล้วนับตั้งแต่ที่คุณเพิ่ม SDK เวอร์ชันล่าสุดลงในแอป แต่คุณยังไม่เห็นการเปลี่ยนแปลงใดๆ ให้ตรวจสอบข้อความบันทึกเพื่อให้แน่ใจว่า Performance Monitoring บันทึกเหตุการณ์อยู่ ลองทำตามขั้นตอนการแก้ปัญหาที่เหมาะสมตามที่อธิบายไว้ด้านล่างเพื่อแก้ปัญหาข้อความการตรวจหา SDK ที่ล่าช้า
แอปบันทึกเหตุการณ์: ขั้นตอนการแก้ปัญหา
ตรวจสอบว่าคุณใช้ Performance Monitoring Android SDK 19.1.0 ขึ้นไป (หรือ Firebase BoM 26.3.0 ขึ้นไป) โปรดดูหมายเหตุการเผยแพร่
หากคุณยังพัฒนาในเครื่องอยู่ ให้ลองสร้างเหตุการณ์เพิ่มเติมสําหรับการเก็บรวบรวมข้อมูล ดังนี้
- สร้างเหตุการณ์โดยการสลับแอประหว่างเบื้องหน้าและเบื้องหลังหลายครั้ง การโต้ตอบกับแอปโดยการไปยังส่วนต่างๆ ของหน้าจอ และ/หรือการเรียกคําขอเครือข่าย
ตรวจสอบว่าได้เพิ่มไฟล์การกําหนดค่า Firebase (
google-services.json
) ลงในแอปอย่างถูกต้องและคุณไม่ได้แก้ไขไฟล์ โดยให้ตรวจสอบสิ่งต่อไปนี้ชื่อไฟล์การกําหนดค่าไม่มีอักขระต่อท้ายเกิน เช่น
(2)
ไฟล์การกําหนดค่าอยู่ในไดเรกทอรีโมดูล (ระดับแอป) ของแอป
รหัสแอป Firebase สำหรับ Android (
mobilesdk_app_id
) ที่แสดงในไฟล์การกําหนดค่าถูกต้องสําหรับแอปของคุณ ค้นหารหัสแอป Firebase ในการ์ดแอปของคุณของsettings การตั้งค่าโปรเจ็กต์
หากมีข้อผิดพลาดใดๆ เกี่ยวกับไฟล์การกําหนดค่าในแอป ให้ลองทําดังนี้
ลบไฟล์การกําหนดค่าที่คุณมีอยู่ในแอป
ทําตามวิธีการเหล่านี้เพื่อดาวน์โหลดไฟล์การกําหนดค่าใหม่และเพิ่มลงในแอป Android
หาก SDK บันทึกเหตุการณ์และดูเหมือนว่าทุกอย่างจะตั้งค่าอย่างถูกต้องแล้ว แต่คุณยังไม่เห็นข้อความการตรวจหา SDK หรือข้อมูลที่ประมวลผลแล้ว (หลังจากผ่านไป 10 นาที) ให้ติดต่อทีมสนับสนุนของ Firebase
แอปไม่บันทึกเหตุการณ์ ขั้นตอนแก้ปัญหา
ตรวจสอบการตั้งค่าของปลั๊กอิน Performance Monitoring Gradle ดังนี้
ตรวจสอบว่าคุณเพิ่มปลั๊กอินอย่างถูกต้องแล้ว โดยให้ตรวจสอบสิ่งต่อไปนี้
- คุณได้เพิ่มปลั๊กอิน (
) ในไฟล์apply plugin: 'com.google.firebase.firebase-perf' build.gradle
โมดูล (ระดับแอป) - คุณรวมการพึ่งพา classpath สําหรับปลั๊กอิน (
) ไว้ในไฟล์classpath 'com.google.firebase:perf-plugin:1.4.2' build.gradle
ระดับโปรเจ็กต์
- คุณได้เพิ่มปลั๊กอิน (
ตรวจสอบว่าปลั๊กอินไม่ได้ปิดใช้ผ่าน Flag ต่อไปนี้
instrumentationEnabled
ในไฟล์โมดูล (ระดับแอป)build.gradle
firebasePerformanceInstrumentationEnabled
ในไฟล์gradle.properties
ตรวจสอบว่า Performance Monitoring SDK ไม่ได้ disabled ผ่าน Flag ใด Flag หนึ่งต่อไปนี้ในไฟล์
AndroidManifest.xml
firebase_performance_collection_enabled
firebase_performance_collection_deactivated
หากไม่พบรายการใดที่ปิดใช้ในแอป ให้ติดต่อทีมสนับสนุน Firebase
คอนโซลระบุว่าตรวจพบ SDK แต่ไม่มีข้อมูลแสดง
Performance Monitoring จะประมวลผลข้อมูลเหตุการณ์ประสิทธิภาพก่อนที่จะแสดงในแดชบอร์ดประสิทธิภาพ
หากผ่านไปนานกว่า 24 ชั่วโมงนับตั้งแต่ที่ข้อความ "ตรวจพบ SDK" ปรากฏขึ้น แต่คุณยังไม่เห็นข้อมูล ให้ตรวจสอบหน้าแดชบอร์ดสถานะของ Firebase ในกรณีที่มีการหยุดทำงานที่ทราบ หากไม่มีการหยุดทำงาน ให้ติดต่อทีมสนับสนุน Firebase
การแก้ปัญหาทั่วไป
หากคุณเพิ่ม SDK และกำลังใช้ Performance Monitoring ในแอปเรียบร้อยแล้ว เคล็ดลับการแก้ปัญหาต่อไปนี้จะช่วยแก้ปัญหาทั่วไปที่เกี่ยวข้องกับฟีเจอร์และเครื่องมือของ Performance Monitoring
แอปไม่ได้บันทึกเหตุการณ์ด้านประสิทธิภาพ
หากไม่เห็นข้อความบันทึกสําหรับเหตุการณ์ด้านประสิทธิภาพ ให้ลองทําตามขั้นตอนการแก้ปัญหาต่อไปนี้
ตรวจสอบการตั้งค่าของปลั๊กอิน Performance Monitoring Gradle ดังนี้
ตรวจสอบว่าคุณเพิ่มปลั๊กอินอย่างถูกต้องแล้ว โดยให้ตรวจสอบสิ่งต่อไปนี้
- คุณได้เพิ่มปลั๊กอิน (
) ในไฟล์apply plugin: 'com.google.firebase.firebase-perf' build.gradle
โมดูล (ระดับแอป) - คุณรวมการพึ่งพา classpath สําหรับปลั๊กอิน (
) ไว้ในไฟล์classpath 'com.google.firebase:perf-plugin:1.4.2' build.gradle
ระดับโปรเจ็กต์
- คุณได้เพิ่มปลั๊กอิน (
ตรวจสอบว่าปลั๊กอินไม่ได้ปิดใช้ผ่าน Flag ต่อไปนี้
instrumentationEnabled
ในไฟล์โมดูล (ระดับแอป)build.gradle
firebasePerformanceInstrumentationEnabled
ในไฟล์gradle.properties
ตรวจสอบว่า Performance Monitoring SDK ไม่ได้ disabled ผ่าน Flag ใด Flag หนึ่งต่อไปนี้ในไฟล์
AndroidManifest.xml
firebase_performance_collection_enabled
firebase_performance_collection_deactivated
หากไม่พบรายการใดที่ปิดใช้ในแอป ให้ติดต่อทีมสนับสนุน Firebase
หน้าแดชบอร์ดประสิทธิภาพไม่มีข้อมูลการติดตามหน้าจอ
หากไม่มีข้อมูลร่องรอยการแสดงผลหน้าจอ ให้ลองทำตามขั้นตอนการแก้ปัญหาต่อไปนี้
ตรวจสอบว่าคุณใช้ Android SDK เวอร์ชันล่าสุด (v21.0.2) ร่องรอยการแสดงผลหน้าจอจะใช้ได้กับ v15.2.0 ขึ้นไปเท่านั้น
ตรวจสอบว่าคุณไม่ได้ปิดใช้การเร่งฮาร์ดแวร์ด้วยตนเองสำหรับหน้าจอ
ตรวจสอบว่าคุณไม่ได้ใช้ DexGuard หรือ Jack Performance Monitoring ใช้ร่วมกับเครื่องมือเหล่านี้ไม่ได้
DexGuard จะปิดใช้การเก็บรวบรวมการติดตามการเริ่มต้นแอป แอปที่ทำงานอยู่เบื้องหน้า และแอปที่ทำงานอยู่เบื้องหลังโดยอัตโนมัติ อย่างไรก็ตาม ร่องรอยโค้ดที่กำหนดเองควรทำงานตามปกติหากแอปใช้ DexGuard
Jack เลิกใช้งานแล้วและโดยทั่วไปไม่ควรใช้ในแอป
หน้าแดชบอร์ดประสิทธิภาพไม่มีข้อมูลการติดตามที่กําหนดเอง
คุณเห็นข้อมูลประสิทธิภาพของร่องรอยที่รวบรวมโดยอัตโนมัติแต่ไม่เห็นร่องรอยของโค้ดที่กําหนดเองใช่ไหม ลองทำตามขั้นตอนการแก้ปัญหาต่อไปนี้
หากคุณติดตั้งเครื่องมือติดตามโค้ดที่กําหนดเองผ่าน Trace API ให้ตรวจสอบการตั้งค่าการติดตาม โดยเฉพาะรายการต่อไปนี้
- ชื่อการติดตามโค้ดที่กำหนดเองและเมตริกที่กำหนดเองต้องเป็นไปตามข้อกำหนดต่อไปนี้ นั่นคือ ไม่มีอักขระเว้นวรรคนำหน้าหรือตามหลัง ไม่มีอักขระขีดล่าง (
_
) นำหน้า และความยาวสูงสุดคือ 32 อักขระ - ต้องเริ่มและหยุดการติดตามทั้งหมด ระบบจะไม่บันทึกการติดตามที่ไม่ได้เริ่ม ไม่ได้หยุด หรือหยุดก่อนเริ่ม
- ชื่อการติดตามโค้ดที่กำหนดเองและเมตริกที่กำหนดเองต้องเป็นไปตามข้อกำหนดต่อไปนี้ นั่นคือ ไม่มีอักขระเว้นวรรคนำหน้าหรือตามหลัง ไม่มีอักขระขีดล่าง (
หากคุณติดตั้งเครื่องมือติดตามโค้ดที่กําหนดเองผ่าน
@AddTrace
การเขียน ให้ตรวจสอบการตั้งค่าของปลั๊กอิน Performance MonitoringGradle ดังนี้ตรวจสอบว่าคุณเพิ่มปลั๊กอินอย่างถูกต้องแล้ว โดยให้ตรวจสอบสิ่งต่อไปนี้
- คุณได้เพิ่มปลั๊กอิน (
) ในไฟล์apply plugin: 'com.google.firebase.firebase-perf' build.gradle
โมดูล (ระดับแอป) - คุณรวมการพึ่งพา classpath สําหรับปลั๊กอิน (
) ไว้ในไฟล์classpath 'com.google.firebase:perf-plugin:1.4.2' build.gradle
ระดับโปรเจ็กต์
- คุณได้เพิ่มปลั๊กอิน (
ตรวจสอบว่าปลั๊กอินไม่ได้ปิดใช้ผ่าน Flag ต่อไปนี้
instrumentationEnabled
ในไฟล์โมดูล (ระดับแอป)build.gradle
firebasePerformanceInstrumentationEnabled
ในไฟล์gradle.properties
ตรวจสอบข้อความบันทึกเพื่อให้แน่ใจว่า Performance Monitoring บันทึกร่องรอยโค้ดที่กําหนดเองตามที่คาดไว้
หาก Performance Monitoring บันทึกเหตุการณ์ แต่ไม่มีข้อมูลแสดงหลังจากผ่านไป 24 ชั่วโมง ให้ติดต่อทีมสนับสนุน Firebase
แดชบอร์ดประสิทธิภาพไม่มีข้อมูลคําขอเครือข่าย
หากไม่มีข้อมูลคําขอเครือข่าย ให้ลองทําตามขั้นตอนการแก้ปัญหาต่อไปนี้
สําหรับแอป Android Performance Monitoringปลั๊กอิน Gradle จะเปิดใช้เครื่องมือวัดผลที่ให้การตรวจสอบคําขอเครือข่าย HTTP/S โดยอัตโนมัติ โปรดตรวจสอบสิ่งต่อไปนี้
ตรวจสอบว่าคุณเพิ่มปลั๊กอินอย่างถูกต้องแล้ว โดยให้ตรวจสอบสิ่งต่อไปนี้
- คุณได้เพิ่มปลั๊กอิน (
) ในไฟล์apply plugin: 'com.google.firebase.firebase-perf' build.gradle
โมดูล (ระดับแอป) - คุณรวมการพึ่งพา classpath สําหรับปลั๊กอิน (
) ไว้ในไฟล์classpath 'com.google.firebase:perf-plugin:1.4.2' build.gradle
ระดับโปรเจ็กต์
- คุณได้เพิ่มปลั๊กอิน (
ตรวจสอบว่าปลั๊กอินไม่ได้ปิดใช้ผ่าน Flag ต่อไปนี้
instrumentationEnabled
ในไฟล์โมดูล (ระดับแอป)build.gradle
firebasePerformanceInstrumentationEnabled
ในไฟล์gradle.properties
ตรวจสอบว่าคลังเครือข่ายเข้ากันไม่ได้หรือไม่ Performance Monitoring จะรวบรวมเมตริกสําหรับคําขอเครือข่ายที่ใช้ไลบรารีเครือข่ายต่อไปนี้โดยอัตโนมัติ ได้แก่ OkHttp 3.x.x, URLConnection ของ Java และ Apache HttpClient
โปรดทราบว่าคุณสามารถเพิ่มการตรวจสอบที่กําหนดเองสําหรับคําขอเครือข่ายได้
ข้อควรระวังมีดังต่อไปนี้
Performance Monitoring อาจรายงานเฉพาะคําขอเครือข่ายที่เสร็จสมบูรณ์ ทั้งนี้ขึ้นอยู่กับลักษณะการทํางานของโค้ดและไลบรารีการทํางานของเครือข่ายที่โค้ดใช้ ซึ่งหมายความว่าระบบอาจไม่รายงานการเชื่อมต่อ HTTP/S ที่เปิดอยู่
Performance Monitoring ไม่สามารถใช้งานร่วมกับ DexGuard และ Jack
- DexGuard จะปิดใช้การตรวจสอบคําขอเครือข่าย HTTP/S
- Jack เลิกใช้งานแล้ว และโดยทั่วไปไม่ควรนำมาใช้ในแอป
Performance Monitoring ไม่รายงานคําขอเครือข่ายที่มีส่วนหัว
Content-Type
ไม่ถูกต้อง อย่างไรก็ตาม ระบบจะยังคงยอมรับคำขอเครือข่ายที่ไม่มีส่วนหัวContent-Type
ระบบไม่รวบรวมข้อมูลคําขอเครือข่ายตามที่คาดไว้
ดูข้อมูลเพิ่มเติมเกี่ยวกับวิธีที่ Performance Monitoring รวมข้อมูลคําขอเครือข่ายใน URL รูปแบบต่างๆ
นอกจากนี้ คุณยังลองใช้รูปแบบ URL ที่กำหนดเองได้ด้วย
คำถามที่พบบ่อย
เกิดอะไรขึ้นกับปัญหาสำคัญในการ์ดประสิทธิภาพในหน้าแรกของโปรเจ็กต์
เราได้แทนที่ปัญหายอดนิยมด้วยการแจ้งเตือนล่าสุดเพื่อติดตามการเปิดตัวการแจ้งเตือนเมื่อเร็วๆ นี้ ซึ่งจะแจ้งให้คุณทราบโดยอัตโนมัติเมื่อเกิดเหตุการณ์เกินเกณฑ์ที่ตั้งไว้ เราเลิกใช้งานปัญหาแล้ว และแทนที่ด้วยคำเตือน
เครื่องมือเลือกแอปที่ด้านบนของการ์ดประสิทธิภาพจะกรองรายการการแจ้งเตือนในส่วนการแจ้งเตือนล่าสุด ระบบจะแสดงเฉพาะการแจ้งเตือน 3 รายการล่าสุดสำหรับแอปที่เลือก
ดูข้อมูลเพิ่มเติมเกี่ยวกับการแจ้งเตือนได้ที่หัวข้อตั้งค่าการแจ้งเตือนปัญหาด้านประสิทธิภาพ
ความสามารถในการตั้งเกณฑ์สำหรับปัญหาในคอนโซลหายไปไหน
Performance Monitoring รองรับการแจ้งเตือนสําหรับเมตริกที่เกินเกณฑ์ที่กําหนด เราได้นําความสามารถในการกําหนดค่าเกณฑ์สําหรับปัญหาออกเพื่อไม่ให้เกิดความสับสนกับเกณฑ์ที่กําหนดค่าได้เหล่านี้สําหรับเมตริกประสิทธิภาพ
จะเกิดอะไรขึ้นกับรายละเอียดและข้อมูลเมตริกในคอนโซล Firebase
เราได้แทนที่หน้ารายละเอียดและเมตริกด้วยอินเทอร์เฟซผู้ใช้ (UI) แบบรวมที่ออกแบบใหม่เพื่อปรับปรุงวิธีแก้ปัญหา UI การแก้ปัญหาแบบใหม่นี้จะมีฟังก์ชันหลักเหมือนกับรายละเอียดและเมตริก ดูข้อมูลเพิ่มเติมเกี่ยวกับการแก้ปัญหาได้ที่หัวข้อดูข้อมูลเพิ่มเติมสำหรับการติดตามที่เฉพาะเจาะจง
เหตุใดจำนวนตัวอย่างจึงไม่ตรงกับที่ฉันคาดไว้
Performance Monitoring รวบรวมข้อมูลประสิทธิภาพจากอุปกรณ์ของผู้ใช้แอป หากแอปพลิเคชันมีผู้ใช้จํานวนมากหรือแอปสร้างกิจกรรมด้านประสิทธิภาพจํานวนมาก Performance Monitoring อาจจํากัดการเก็บรวบรวมข้อมูลไว้เฉพาะอุปกรณ์บางส่วนเพื่อลดจํานวนเหตุการณ์ที่ประมวลผล ขีดจํากัดเหล่านี้สูงพอที่แม้ว่าจะมีเหตุการณ์น้อยลง แต่ค่าเมตริกจะยังคงแสดงถึงประสบการณ์การใช้งานแอปของผู้ใช้
Performance Monitoring ใช้ตัวเลือกการสุ่มตัวอย่างต่อไปนี้เพื่อจัดการปริมาณข้อมูลที่รวบรวม
การจำกัดอัตราในอุปกรณ์: เราจำกัดจำนวนการติดตามโค้ดและคำขอเครือข่ายที่ส่งจากอุปกรณ์ไว้ที่ 300 เหตุการณ์ทุก 10 นาทีเพื่อป้องกันไม่ให้อุปกรณ์ส่งการติดตามจำนวนมากในทันที แนวทางนี้ช่วยปกป้องอุปกรณ์จากเครื่องมือวัดผลแบบวนซ้ำที่ส่งข้อมูลประสิทธิภาพจํานวนมาก และป้องกันไม่ให้อุปกรณ์เครื่องเดียวบิดเบือนการวัดประสิทธิภาพ
การสุ่มตัวอย่างแบบไดนามิก: Performance Monitoring จะรวบรวมการติดตามโค้ดและการติดตามคําขอเครือข่ายจํานวนจํากัดต่อแอปทุกวันในผู้ใช้แอปทั้งหมด ระบบจะดึงข้อมูลอัตราการสุ่มตัวอย่างแบบไดนามิกในอุปกรณ์ (โดยใช้ Firebase Remote Config) เพื่อระบุว่าอุปกรณ์แบบสุ่มควรบันทึกและส่งร่องรอยหรือไม่ อุปกรณ์ที่ไม่ได้เลือกสําหรับการสุ่มตัวอย่างจะไม่ส่งเหตุการณ์ใดๆ อัตราการสุ่มตัวอย่างแบบไดนามิกจะเจาะจงแอปและปรับเพื่อให้ปริมาณข้อมูลโดยรวมที่รวบรวมอยู่ต่ำกว่าขีดจํากัด
โปรเจ็กต์ที่เปิดใช้การผสานรวม BigQuery จะมีขีดจํากัดที่สูงขึ้นสําหรับจํานวนการติดตามคําขอเครือข่าย
เซสชันของผู้ใช้จะส่งข้อมูลเพิ่มเติมโดยละเอียดจากอุปกรณ์ของผู้ใช้ ซึ่งต้องใช้ทรัพยากรเพิ่มเติมในการบันทึกและส่งข้อมูล Performance Monitoring อาจจำกัดจำนวนเซสชันด้วยเพื่อลดผลกระทบต่อเซสชันของผู้ใช้
การจำกัดอัตราการส่งข้อมูลฝั่งเซิร์ฟเวอร์: Performance Monitoring อาจใช้การสุ่มตัวอย่างฝั่งเซิร์ฟเวอร์เพื่อทิ้งเหตุการณ์บางอย่างที่ได้รับจากอุปกรณ์ เพื่อให้มั่นใจว่าแอปจะไม่ส่งข้อมูลเกินขีดจำกัดการสุ่มตัวอย่าง แม้ว่าการจํากัดประเภทนี้จะไม่เปลี่ยนแปลงประสิทธิภาพของเมตริก แต่อาจทําให้รูปแบบมีการเปลี่ยนแปลงเล็กน้อย ซึ่งรวมถึงการเปลี่ยนแปลงต่อไปนี้
- จํานวนการติดตามอาจแตกต่างจากจํานวนครั้งที่มีการเรียกใช้โค้ด
- แต่ละร่องรอยที่เชื่อมโยงกันอย่างใกล้ชิดในโค้ดอาจมีจำนวนตัวอย่างต่างกัน
เกิดอะไรขึ้นกับแท็บปัญหาในคอนโซล
เราได้แทนที่แท็บปัญหาด้วยการเปิดตัวการแจ้งเตือน ซึ่งจะแจ้งให้คุณทราบโดยอัตโนมัติเมื่อมีการใช้จ่ายเกินเกณฑ์ที่ตั้งไว้ คุณไม่จําเป็นต้องตรวจสอบFirebaseคอนโซลด้วยตนเองเพื่อดูสถานะของเกณฑ์อีกต่อไป ดูข้อมูลเกี่ยวกับการแจ้งเตือนได้ที่ตั้งค่าการแจ้งเตือนปัญหาด้านประสิทธิภาพ
เกิดอะไรขึ้นกับแท็บในอุปกรณ์และเครือข่ายในคอนโซล ฉันจะดูร่องรอยที่อยู่ในหน้าเหล่านั้นได้อย่างไร
เราได้ออกแบบส่วน Performance Monitoring ของคอนโซล Firebase ใหม่เพื่อให้แท็บหน้าแดชบอร์ดแสดงเมตริกหลักและการติดตามทั้งหมดของคุณในพื้นที่เดียว ในการปรับปรุงครั้งนี้ เราได้นำหน้าในอุปกรณ์และหน้าเครือข่ายออก
ตารางร่องรอยที่ด้านล่างของแท็บแดชบอร์ดมีข้อมูลทั้งหมดเหมือนกับที่แท็บในอุปกรณ์และเครือข่ายแสดง แต่มีฟีเจอร์เพิ่มเติมบางอย่าง รวมถึงความสามารถในการจัดเรียงร่องรอยตามเปอร์เซ็นต์การเปลี่ยนแปลงของเมตริกที่เฉพาะเจาะจง หากต้องการดูเมตริกและข้อมูลทั้งหมดของการติดตาม ให้คลิกชื่อการติดตามในตารางการติดตาม
ดูการติดตามในแท็บย่อยต่อไปนี้ของตารางการติดตาม
- การติดตามคำขอเครือข่าย (ทั้งแบบสำเร็จรูปและแบบกําหนดเอง) — แท็บย่อยคําขอเครือข่าย
- การติดตามโค้ดที่กำหนดเอง — แท็บย่อยการติดตามที่กำหนดเอง
- การเริ่มต้นแอป แอปที่ทำงานอยู่เบื้องหน้า แอปที่ทำงานอยู่เบื้องหลัง — แท็บย่อยการติดตามที่กําหนดเอง
- การติดตามการแสดงผลของหน้าจอ — แท็บย่อยการแสดงผลของหน้าจอ
- การติดตามการโหลดหน้าเว็บ — แท็บย่อยการโหลดหน้าเว็บ
ดูรายละเอียดเกี่ยวกับตารางการติดตาม รวมถึงการดูเมตริกและข้อมูลได้ที่หน้าภาพรวมของคอนโซล (iOS+ | Android | เว็บ)
เหตุใดจำนวนเฟรมที่ช้าและเฟรมที่หยุดนิ่งจึงไม่ตรงกับที่ฉันคาดไว้
ระบบจะคำนวณเฟรมที่แสดงผลช้าและเฟรมที่ค้างโดยใช้อัตราการรีเฟรชของอุปกรณ์ที่สมมติไว้ที่ 60Hz หากอัตราการรีเฟรชของอุปกรณ์ต่ำกว่า 60Hz แต่ละเฟรมจะมีเวลาในการเรนเดอร์ช้าลงเนื่องจากมีการแสดงผลเฟรมต่อวินาทีน้อยลง เวลาในการเรนเดอร์ที่ช้าลงอาจทำให้ระบบรายงานเฟรมที่ช้าหรือค้างมากขึ้นเนื่องจากเฟรมจำนวนมากขึ้นจะแสดงผลช้าลงหรือค้าง อย่างไรก็ตาม หากอัตราการรีเฟรชของอุปกรณ์สูงกว่า 60Hz แต่ละเฟรมจะมีเวลาในการเรนเดอร์เร็วขึ้น ซึ่งอาจทำให้ระบบรายงานเฟรมที่ช้าหรือค้างน้อยลง นี่เป็นข้อจำกัดปัจจุบันใน Performance Monitoring SDK
ทําไมฉันจึงไม่เห็นร่องรอยของเศษ
หากต้องการดูประสิทธิภาพของข้อมูลโค้ดที่แยกเป็นส่วนๆ นอกเหนือจากกิจกรรมการใช้แอป ให้ตรวจสอบว่าแอปของคุณใช้ Performance Monitoring Android SDK เวอร์ชัน 20.1.0 ขึ้นไป ดูข้อมูลเพิ่มเติมได้ที่หัวข้อเพิ่มการตรวจสอบประสิทธิภาพลงในแอป
ฉันจะทราบได้อย่างไรว่าร่องรอยใดเกี่ยวข้องกับข้อมูลโค้ดที่แยกส่วนและกิจกรรม
ร่องรอยของข้อมูลโค้ดและกิจกรรมแต่ละรายการจะอิงตามชื่อคลาสตามที่กําหนดไว้ในแอปพลิเคชัน การติดตามหน้าจอแต่ละรายการจะมีคำนำหน้า st ตามด้วยชื่อของคลาส ระบบจะนำคำนำหน้าออกในคอนโซล Firebase ดูข้อมูลเพิ่มเติมได้ที่ดูข้อมูลเกี่ยวกับข้อมูลประสิทธิภาพการแสดงผลหน้าจอ (แอป Apple และ Android)
เหตุใดฉันจึงเห็นร่องรอยของชิ้นส่วนน้อยกว่าร่องรอยอื่นๆ
Performance Monitoring ทำการสุ่มตัวอย่างเหตุการณ์จากเหตุการณ์ทั้งหมดที่รวบรวมในอุปกรณ์ แนวทางนี้ช่วยให้เรารวบรวมเหตุการณ์ขั้นต่ำที่จำเป็นจากอุปกรณ์ของผู้ใช้เพื่อแสดงเมตริกประสิทธิภาพ
ฉันจะได้รับการแจ้งเตือนอย่างไรเมื่อเกิดปัญหาเกี่ยวกับประสิทธิภาพการแสดงผลของแอปพลิเคชัน
Performance Monitoring ช่วยให้คุณตั้งค่าการแจ้งเตือนสำหรับเมตริกที่คุณสนใจได้ สําหรับร่องรอยการแสดงผลหน้าจอที่สร้างขึ้น คุณสามารถตั้งค่าการแจ้งเตือนให้แจ้งเตือนเมื่อเปอร์เซ็นต์เฟรมที่ช้าและค้างเกินเกณฑ์ที่ตั้งไว้
ใช้เวลาสร้างนานหลังจากเปิดใช้Performance Monitoringปลั๊กอิน Gradle ฉันจะปรับปรุงเรื่องนี้ได้อย่างไร
Performance Monitoring สำหรับ Android ใช้เครื่องมือวัดผลไบต์โค้ดเพื่อให้ฟีเจอร์บางอย่างพร้อมใช้งานทันที เช่น การตรวจสอบคําขอเครือข่าย HTTP/S กระบวนการนี้เป็นส่วนหนึ่งของการคอมไพล์ ซึ่งต้องมีการวนซ้ำผ่านคลาสทั้งหมดของแอป (รวมถึงข้อกําหนด) เพื่อเครื่องมือวัดโค้ดที่มีความสําคัญในการวัดประสิทธิภาพคําขอเครือข่ายของแอปพลิเคชัน
ปัจจัยหลักที่ทําให้เวลาสร้างเพิ่มขึ้นมีดังนี้
- จำนวนชั้นเรียนหรือไฟล์
- ขนาดของคลาสแต่ละคลาส (บรรทัดโค้ด)
- การกำหนดค่าเครื่อง
- บิลด์เริ่มต้นเทียบกับบิลด์ที่ตามมา (โดยปกติแล้วบิลด์ที่ตามมาจะเร็วกว่าบิลด์เริ่มต้น)
หากต้องการเพิ่มประสิทธิภาพเวลาสร้างบิวด์ ให้ลองแยกโค้ดเป็นโมดูล
ตั้งแต่ v1.3.3 ของปลั๊กอิน Performance Monitoring เราได้มุ่งเน้นที่การปรับปรุงการประมวลผลการบิลด์ที่เพิ่มขึ้นและการแคชอินพุตของไลบรารี หากต้องการรับการปรับปรุงเวลาสร้างล่าสุด โปรดใช้ปลั๊กอินเวอร์ชันล่าสุด (v1.4.2)
โปรดทราบว่าคุณสามารถปิดใช้Performance Monitoringปลั๊กอินสำหรับบิลด์แก้ไขข้อบกพร่องในเครื่องได้หากต้องการหลีกเลี่ยงเวลาสร้างที่นาน อย่างไรก็ตาม เราไม่แนะนําวิธีการนี้สําหรับบิลด์เวอร์ชันที่ใช้งานจริง เนื่องจากอาจส่งผลให้การวัดประสิทธิภาพสําหรับคําขอเครือข่ายในแอปพลาดไป
ฉันควรทำอย่างไรหากพบข้อผิดพลาดในการสร้างเนื่องจากไลบรารีที่ใช้ร่วมกันไม่ได้กับPerformance Monitoringปลั๊กอิน Gradle
Performance Monitoring สำหรับ Android ใช้เครื่องมือวัดผลไบต์โค้ดเพื่อให้ฟีเจอร์บางอย่างพร้อมใช้งานทันที เช่น การตรวจสอบคําขอเครือข่าย HTTP/S กระบวนการนี้เป็นส่วนหนึ่งของการคอมไพล์ ซึ่งต้องมีการวนซ้ำผ่านคลาสทั้งหมดของแอป (รวมถึงข้อกําหนด) เพื่อเครื่องมือวัดโค้ดที่มีความสําคัญในการวัดประสิทธิภาพคําขอเครือข่ายของแอปพลิเคชัน
หากพบข้อผิดพลาดเกี่ยวกับบิลด์ เช่น JSR/RET are not supported with
computeFrames option
หรือข้อผิดพลาดที่คล้ายกันหลังจากผสานรวมกับปลั๊กอิน Performance Monitoring อาจเป็นเพราะคุณมีไลบรารีที่ใช้งานร่วมกับปลั๊กอิน Gradle ของ Performance Monitoring ไม่ได้
หากต้องการแก้ปัญหานี้ คุณสามารถยกเว้นคลาส/ไลบรารีที่เข้ากันไม่ได้ไม่ให้มีเครื่องมือวัดผลได้โดยทำตามขั้นตอนต่อไปนี้
- อัปเดตPerformance Monitoringปลั๊กอิน Gradle เป็นเวอร์ชันล่าสุด (อย่างน้อย v1.4.0)
- อัปเดตปลั๊กอิน Android Gradle เป็นเวอร์ชัน 7.2.0 ขึ้นไป
- เพิ่ม Flag ต่อไปนี้ลงในไฟล์
build.gradle
ของโมดูล (ระดับแอป) เพื่อยกเว้นคลาส/ไลบรารีที่เข้ากันไม่ได้ไม่ให้มีการตรวจสอบ ดังนี้android { // ... androidComponents { onVariants(selector().all(), { instrumentation.excludes.add("example.incompatible.library") }) } }
ดูข้อมูลเพิ่มเติมเกี่ยวกับพร็อพเพอร์ตี้exclude
ของInstrumentation
API ของปลั๊กอิน Gradle ของ Android ได้ที่การตรวจสอบ
โปรดรายงานปัญหาใน GitHub เมื่อพบข้อผิดพลาดในการสร้างเนื่องจากไลบรารีที่เข้ากันไม่ได้ เพื่อให้ระบบยกเว้นไลบรารีดังกล่าวจากการติดแท็กในปลั๊กอิน Performance Monitoring ด้วย
การส่งออกข้อมูล Performance Monitoring ไปยัง BigQuery ใช้เวลานานกว่าที่คาดไว้ ข้อมูลนี้ไม่ใช่แบบเรียลไทม์ใช่ไหม
หากคุณเปิดใช้การผสานรวม BigQuery สําหรับ Firebase Performance Monitoring ระบบจะส่งออกข้อมูลไปยัง BigQuery ภายใน 12-24 ชั่วโมงหลังจากสิ้นสุดวัน (เวลาเขตเวลาแปซิฟิก)
ตัวอย่างเช่น ข้อมูลของวันที่ 19 เมษายนจะพร้อมใช้งานใน BigQuery ในวันที่ 20 เมษายนระหว่างเวลา 12:00 น. ถึงเที่ยงคืน (วันที่และเวลาทั้งหมดเป็นเขตเวลาแปซิฟิก)
การประมวลผลและการแสดงข้อมูลแบบเกือบเรียลไทม์
ข้อมูลประสิทธิภาพแบบ "เกือบเรียลไทม์" หมายถึงอะไร
Firebase Performance Monitoring จะประมวลผลข้อมูลประสิทธิภาพที่รวบรวมได้ทันทีที่ได้รับ ซึ่งส่งผลให้ข้อมูลแสดงแบบเกือบเรียลไทม์ในคอนโซล Firebase ข้อมูลที่ประมวลผลแล้วจะแสดงในคอนโซลภายในไม่กี่นาทีหลังจากรวบรวมข้อมูล จึงเป็นที่มาของคำว่า "เกือบเรียลไทม์"
หากต้องการใช้ประโยชน์จากการประมวลผลข้อมูลแบบเกือบเรียลไทม์ โปรดตรวจสอบว่าแอปใช้ SDK เวอร์ชันที่เข้ากันได้แบบเรียลไทม์
ฉันจะดูข้อมูลประสิทธิภาพของแอปแบบใกล้เคียงกับเรียลไทม์ได้อย่างไร
หากต้องการใช้ประโยชน์จากการประมวลผลข้อมูลแบบเกือบเรียลไทม์ เพียงตรวจสอบว่าแอปของคุณใช้ Performance Monitoring SDK เวอร์ชันที่เข้ากันได้กับการประมวลผลข้อมูลแบบเรียลไทม์
เวอร์ชัน SDK ที่ใช้งานร่วมกันได้แบบเรียลไทม์มีดังนี้
- iOS — v7.3.0 ขึ้นไป
- tvOS — v8.9.0 ขึ้นไป
- Android — v19.0.10 ขึ้นไป (หรือ Firebase Android BoM v26.1.0 ขึ้นไป)
- เว็บ — v7.14.0 ขึ้นไป
โปรดทราบว่าเราขอแนะนำให้ใช้ SDK เวอร์ชันล่าสุดเสมอ แต่เวอร์ชันใดก็ได้ที่ระบุไว้ข้างต้นจะช่วยให้ Performance Monitoring ประมวลผลข้อมูลของคุณแบบเกือบเรียลไทม์
Performance Monitoring SDK เวอร์ชันใดบ้างที่ถือว่าใช้งานร่วมกันได้แบบเรียลไทม์
SDK เวอร์ชันต่อไปนี้เข้ากันได้กับการประมวลผลข้อมูลแบบเรียลไทม์
- iOS — v7.3.0 ขึ้นไป
- tvOS — v8.9.0 ขึ้นไป
- Android — v19.0.10 ขึ้นไป (หรือ Firebase Android BoM v26.1.0 ขึ้นไป)
- เว็บ — v7.14.0 ขึ้นไป
โปรดทราบว่าเราขอแนะนำให้ใช้ SDK เวอร์ชันล่าสุดเสมอ แต่เวอร์ชันใดก็ได้ที่ระบุไว้ข้างต้นจะช่วยให้ Performance Monitoring ประมวลผลข้อมูลของคุณแบบเกือบเรียลไทม์
จะเกิดอะไรขึ้นหากฉันไม่อัปเดตแอปให้ใช้ SDK เวอร์ชันที่ใช้งานร่วมกันได้แบบเรียลไทม์
หากแอปไม่ได้ใช้ SDK เวอร์ชันที่เข้ากันได้แบบเรียลไทม์ คุณจะยังคงเห็นข้อมูลประสิทธิภาพทั้งหมดของแอปในคอนโซล Firebase อย่างไรก็ตาม การแสดงข้อมูลประสิทธิภาพจะล่าช้าประมาณ 36 ชั่วโมงนับจากเวลาที่รวบรวม
ฉันอัปเดตเป็น SDK เวอร์ชันที่ใช้งานร่วมกันได้แบบเรียลไทม์แล้ว แต่ผู้ใช้บางรายยังใช้แอปเวอร์ชันเก่าอยู่ ฉันจะยังดูข้อมูลประสิทธิภาพของผู้ใช้เหล่านั้นในคอนโซล Firebase ได้ไหม
แน่นอน คุณจะดูข้อมูลประสิทธิภาพจากผู้ใช้ทั้งหมดได้ ไม่ว่าอินสแตนซ์แอปจะใช้ SDK เวอร์ชันใดก็ตาม
อย่างไรก็ตาม หากคุณดูข้อมูลล่าสุด (มีอายุไม่ถึง 36 ชั่วโมง) ข้อมูลที่แสดงจะมาจากผู้ใช้อินสแตนซ์แอปที่ใช้ SDK เวอร์ชันที่เข้ากันได้แบบเรียลไทม์ อย่างไรก็ตาม ข้อมูลที่ไม่ใหม่จะรวมข้อมูลประสิทธิภาพจากแอปทุกเวอร์ชัน
การติดต่อทีมสนับสนุน Firebase
หากคุณติดต่อทีมสนับสนุนของ Firebase ให้ระบุรหัสแอป Firebase เสมอ ค้นหารหัสแอป Firebase ในการ์ดแอปของคุณของการตั้งค่าโปรเจ็กต์settings