หน้านี้แสดงเคล็ดลับการแก้ปัญหาสำหรับการเริ่มต้นใช้งาน Performance Monitoring หรือการใช้ฟีเจอร์และเครื่องมือของ Performance Monitoring
การตรวจสอบเบื้องต้นเพื่อแก้ปัญหา
การตรวจสอบ 2 รายการต่อไปนี้เป็นแนวทางปฏิบัติแนะนำทั่วไปที่แนะนำสำหรับทุกคนก่อนที่จะแก้ปัญหาเพิ่มเติม
1. ตรวจสอบข้อความในบันทึกเพื่อดูเหตุการณ์ด้านประสิทธิภาพ
ตรวจสอบข้อความในบันทึกเพื่อให้แน่ใจว่า SDK ของ Performance Monitoring กำลังบันทึกเหตุการณ์ด้านประสิทธิภาพ
วิธีดูข้อความในบันทึกสำหรับเหตุการณ์ด้านประสิทธิภาพ
เปิดใช้การบันทึกแก้ไขข้อบกพร่องสำหรับ 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_URLLogging network request trace: URL
คลิก URL เพื่อดูข้อมูลในคอนโซล Firebase ระบบอาจใช้เวลาสักครู่ในการอัปเดตข้อมูลในแดชบอร์ด
หากแอปไม่ได้บันทึกเหตุการณ์ด้านประสิทธิภาพ โปรดดูเคล็ดลับการแก้ปัญหา
2. ตรวจสอบแดชบอร์ดสถานะ Firebase
ตรวจสอบแดชบอร์ดสถานะ Firebase ในกรณีที่ Firebase หรือ Performance Monitoring มีการหยุดทำงานที่ทราบ
เริ่มต้นใช้งาน Performance Monitoring
หากคุณเพิ่งเริ่มใช้ Performance Monitoring (iOS+ | Android | Web) เคล็ดลับการแก้ปัญหาต่อไปนี้จะช่วยแก้ปัญหาที่เกี่ยวข้องกับ Firebase ในการตรวจหา SDK หรือแสดงข้อมูลประสิทธิภาพแรกในคอนโซล Firebase
เพิ่ม SDK ลงในแอปแล้ว แต่คอนโซลยังคงแจ้งให้เพิ่ม SDK
Firebase จะตรวจหาได้ว่าคุณเพิ่ม SDK ของ Performance Monitoring ลงในแอปเรียบร้อยแล้วหรือไม่เมื่อได้รับข้อมูลเหตุการณ์ (เช่น การโต้ตอบกับแอป) จากแอป โดยปกติแล้วภายใน 10 นาทีหลังจากเริ่มแอป แดชบอร์ดประสิทธิภาพของคอนโซล Firebase จะแสดงข้อความ "ตรวจพบ SDK" จากนั้นภายใน 30 นาที แดชบอร์ดจะแสดงข้อมูลที่ประมวลผลแล้วในเบื้องต้น
หากคุณเพิ่ม SDK เวอร์ชันล่าสุดลงในแอปนานกว่า 10 นาทีแล้ว แต่ยังไม่เห็นการเปลี่ยนแปลงใดๆ ให้ตรวจสอบข้อความในบันทึกเพื่อให้แน่ใจว่า 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
แอปไม่บันทึกเหตุการณ์: ขั้นตอนการแก้ปัญหา
ตรวจสอบการตั้งค่าปลั๊กอิน Gradle ของ Performance Monitoring ดังนี้
ตรวจสอบว่าคุณเพิ่มปลั๊กอินอย่างถูกต้องแล้ว โดยเฉพาะอย่างยิ่ง ให้ตรวจสอบสิ่งต่อไปนี้
- คุณเพิ่มปลั๊กอิน (
) ในไฟล์โมดูล (ระดับแอป)apply plugin: 'com.google.firebase.firebase-perf' build.gradleแล้ว - คุณได้รวมทรัพยากร Dependency ของ classpath สำหรับปลั๊กอิน (
) ไว้ในไฟล์classpath 'com.google.firebase:perf-plugin:2.0.2' build.gradleระดับโปรเจ็กต์แล้ว
- คุณเพิ่มปลั๊กอิน (
ตรวจสอบว่า ปลั๊กอิน ไม่ได้ปิดใช้ผ่านแฟล็กอย่างใดอย่างหนึ่งต่อไปนี้
instrumentationEnabledในโมดูล (ระดับแอป) ไฟล์build.gradlefirebasePerformanceInstrumentationEnabledในไฟล์gradle.properties
ตรวจสอบว่า SDK ของ Performance Monitoring ไม่ได้ปิดใช้อยู่ผ่านแฟล็กใดแฟล็กหนึ่งต่อไปนี้ในไฟล์
AndroidManifest.xmlfirebase_performance_collection_enabledfirebase_performance_collection_deactivated
ตรวจสอบว่า Performance Monitoring ไม่ได้ปิดใช้อยู่ที่รันไทม์
หากไม่พบสิ่งที่ปิดใช้ในแอป โปรดติดต่อทีมสนับสนุนของ Firebase
Console แจ้งว่าตรวจพบ SDK แต่ไม่แสดงข้อมูล
Performance Monitoring จะประมวลผลข้อมูลเหตุการณ์ด้านประสิทธิภาพก่อนแสดงในแดชบอร์ดประสิทธิภาพ
หากผ่านไปนานกว่า 24 ชั่วโมงนับตั้งแต่ข้อความ "ตรวจพบ SDK" ปรากฏขึ้น และคุณยังไม่เห็นข้อมูล ให้ตรวจสอบแดชบอร์ดสถานะ Firebase ในกรณีที่เกิดการหยุดทำงานที่ทราบ หากไม่มีการหยุดทำงาน โปรดติดต่อทีมสนับสนุน Firebase
การแก้ปัญหาทั่วไป
หากคุณเพิ่ม SDK เรียบร้อยแล้วและกำลังใช้ Performance Monitoring ในแอป เคล็ดลับการแก้ปัญหาต่อไปนี้จะช่วยแก้ปัญหาทั่วไปที่เกี่ยวข้องกับฟีเจอร์และเครื่องมือของ Performance Monitoring ได้
แอปไม่ได้บันทึกเหตุการณ์ด้านประสิทธิภาพ
หากไม่เห็นข้อความในบันทึกสำหรับเหตุการณ์ด้านประสิทธิภาพ ให้ลองทำตามขั้นตอนการแก้ปัญหาต่อไปนี้
ตรวจสอบการตั้งค่าปลั๊กอิน Gradle ของ Performance Monitoring ดังนี้
ตรวจสอบว่าคุณเพิ่มปลั๊กอินอย่างถูกต้องแล้ว โดยเฉพาะอย่างยิ่ง ให้ตรวจสอบสิ่งต่อไปนี้
- คุณเพิ่มปลั๊กอิน (
) ในไฟล์โมดูล (ระดับแอป)apply plugin: 'com.google.firebase.firebase-perf' build.gradleแล้ว - คุณได้รวมทรัพยากร Dependency ของ classpath สำหรับปลั๊กอิน (
) ไว้ในไฟล์classpath 'com.google.firebase:perf-plugin:2.0.2' build.gradleระดับโปรเจ็กต์แล้ว
- คุณเพิ่มปลั๊กอิน (
ตรวจสอบว่าปลั๊กอินไม่ได้ปิดใช้ผ่านแฟล็กอย่างใดอย่างหนึ่งต่อไปนี้
instrumentationEnabledในโมดูล (ระดับแอป) ไฟล์build.gradlefirebasePerformanceInstrumentationEnabledในไฟล์gradle.properties
ตรวจสอบว่า SDK ของ Performance Monitoring ไม่ได้ปิดใช้อยู่ผ่านแฟล็กใดแฟล็กหนึ่งต่อไปนี้ในไฟล์
AndroidManifest.xmlfirebase_performance_collection_enabledfirebase_performance_collection_deactivated
ตรวจสอบว่า Performance Monitoring ไม่ได้ปิดใช้อยู่ที่รันไทม์
หากไม่พบสิ่งที่ปิดใช้ในแอป โปรดติดต่อทีมสนับสนุนของ Firebase
แดชบอร์ดประสิทธิภาพไม่มีข้อมูลการติดตามหน้าจอ
หากข้อมูลสำหรับการติดตามการแสดงผลหน้าจอหายไป ให้ลองทำตามขั้นตอนการแก้ปัญหาต่อไปนี้
ตรวจสอบว่าคุณใช้ Android SDK เวอร์ชันล่าสุด (v23.0.1) การติดตามการแสดงผลหน้าจอใช้ได้กับ v15.2.0 ขึ้นไปเท่านั้น
ตรวจสอบว่าคุณไม่ได้ปิดใช้การเร่งฮาร์ดแวร์สำหรับหน้าจอด้วยตนเอง
ตรวจสอบว่าคุณไม่ได้ใช้ DexGuard หรือ Jack Performance Monitoring ใช้ร่วมกับ Toolchain เหล่านี้ไม่ได้
DexGuard จะปิดใช้การรวบรวมการติดตามการเริ่มต้นแอป แอปที่ทำงานอยู่เบื้องหน้า และแอปที่ทำงานอยู่เบื้องหลังโดยอัตโนมัติ อย่างไรก็ตาม การติดตามโค้ดที่กำหนดเองควรทำงานตามปกติหากแอปใช้ DexGuard
Jack เลิกใช้งานแล้ว และโดยทั่วไปไม่ควรใช้ในแอปของคุณ
แดชบอร์ดประสิทธิภาพไม่มีข้อมูลการติดตามที่กำหนดเอง
คุณเห็นข้อมูลประสิทธิภาพสําหรับการติดตามที่รวบรวมโดยอัตโนมัติแต่ไม่เห็นสําหรับการติดตามโค้ดที่กําหนดเองใช่ไหม ลองทำตามขั้นตอนการแก้ปัญหาต่อไปนี้
หากคุณใช้เครื่องมือติดตามโค้ดที่กำหนดเองผ่าน Trace API ให้ตรวจสอบการตั้งค่าการติดตาม โดยเฉพาะอย่างยิ่งสิ่งต่อไปนี้
- ชื่อสำหรับการติดตามโค้ดที่กำหนดเองและเมตริกที่กำหนดเองต้องเป็นไปตามข้อกำหนดต่อไปนี้ ไม่มีช่องว่างนำหน้าหรือต่อท้าย ไม่มีอักขระขีดล่าง (
_) นำหน้า และมีความยาวสูงสุด 32 อักขระ - ต้องเริ่มและหยุดการติดตามทั้งหมด ระบบจะไม่บันทึกการติดตามที่ไม่ได้เริ่ม ไม่ได้หยุด หรือหยุดก่อนเริ่ม
- ชื่อสำหรับการติดตามโค้ดที่กำหนดเองและเมตริกที่กำหนดเองต้องเป็นไปตามข้อกำหนดต่อไปนี้ ไม่มีช่องว่างนำหน้าหรือต่อท้าย ไม่มีอักขระขีดล่าง (
หากคุณใช้เครื่องมือวัดการติดตามโค้ดที่กำหนดเองผ่านสัญลักษณ์
@AddTraceให้ตรวจสอบการตั้งค่าปลั๊กอิน Performance Monitoring Gradle ดังนี้ตรวจสอบว่าคุณเพิ่มปลั๊กอินอย่างถูกต้องแล้ว โดยเฉพาะอย่างยิ่ง ให้ตรวจสอบสิ่งต่อไปนี้
- คุณเพิ่มปลั๊กอิน (
) ในไฟล์โมดูล (ระดับแอป)apply plugin: 'com.google.firebase.firebase-perf' build.gradleแล้ว - คุณได้รวมทรัพยากร Dependency ของ classpath สำหรับปลั๊กอิน (
) ไว้ในไฟล์classpath 'com.google.firebase:perf-plugin:2.0.2' build.gradleระดับโปรเจ็กต์แล้ว
- คุณเพิ่มปลั๊กอิน (
ตรวจสอบว่า ปลั๊กอิน ไม่ได้ปิดใช้ผ่านแฟล็กอย่างใดอย่างหนึ่งต่อไปนี้
instrumentationEnabledในโมดูล (ระดับแอป) ไฟล์build.gradlefirebasePerformanceInstrumentationEnabledในไฟล์gradle.properties
ตรวจสอบข้อความในบันทึกเพื่อให้แน่ใจว่า Performance Monitoring กำลังบันทึกการติดตามโค้ดที่กำหนดเองตามที่คาดไว้
หาก Performance Monitoring บันทึกเหตุการณ์อยู่ แต่ไม่มีข้อมูลแสดงหลังจากผ่านไป 24 ชั่วโมง โปรดติดต่อทีมสนับสนุน Firebase
แดชบอร์ดประสิทธิภาพไม่มีข้อมูลคำขอเครือข่าย
หากข้อมูลคำขอเครือข่ายหายไป ให้ลองทำตามขั้นตอนการแก้ปัญหาต่อไปนี้
สำหรับแอป Android ปลั๊กอิน Performance Monitoring Gradle จะเปิดใช้การวัดประสิทธิภาพที่ให้การตรวจสอบคำขอเครือข่าย HTTP/S โดยอัตโนมัติ โปรดตรวจสอบสิ่งต่อไปนี้
ตรวจสอบว่าคุณเพิ่มปลั๊กอินอย่างถูกต้องแล้ว โดยเฉพาะอย่างยิ่ง ให้ตรวจสอบสิ่งต่อไปนี้
- คุณเพิ่มปลั๊กอิน (
) ในไฟล์โมดูล (ระดับแอป)apply plugin: 'com.google.firebase.firebase-perf' build.gradleแล้ว - คุณได้รวมทรัพยากร Dependency ของ classpath สำหรับปลั๊กอิน (
) ไว้ในไฟล์classpath 'com.google.firebase:perf-plugin:2.0.2' build.gradleระดับโปรเจ็กต์แล้ว
- คุณเพิ่มปลั๊กอิน (
ตรวจสอบว่า ปลั๊กอิน ไม่ได้ปิดใช้ผ่านแฟล็กอย่างใดอย่างหนึ่งต่อไปนี้
instrumentationEnabledในโมดูล (ระดับแอป) ไฟล์build.gradlefirebasePerformanceInstrumentationEnabledในไฟล์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 | Web)
เหตุใดจำนวนเฟรมที่ช้าและค้างจึงไม่เป็นไปตามที่ฉันคาดไว้
เฟรมที่แสดงผลช้าและเฟรมที่ค้างจะคำนวณโดยใช้อัตราการรีเฟรชของอุปกรณ์ที่สมมติขึ้นที่ 60Hz หากอัตราการรีเฟรชของอุปกรณ์ต่ำกว่า 60Hz แต่ละเฟรมจะมีเวลาในการแสดงผลช้าลงเนื่องจากมีการแสดงผลเฟรมน้อยลงต่อวินาที เวลาในการแสดงผลที่ช้าลงอาจทำให้มีการรายงานเฟรมที่ช้าหรือค้างมากขึ้น เนื่องจากเฟรมจำนวนมากขึ้นจะแสดงผลช้าลงหรือค้าง อย่างไรก็ตาม หากอัตราการรีเฟรชของอุปกรณ์สูงกว่า 60Hz แต่ละเฟรมจะมีเวลาในการแสดงผลที่เร็วขึ้น ซึ่งอาจทำให้ระบบรายงานเฟรมที่ช้าหรือค้างน้อยลง นี่เป็นข้อจำกัดปัจจุบันใน SDK ของ Performance Monitoring
ทำไมฉันจึงไม่เห็นการติดตาม Fragment
หากต้องการดูประสิทธิภาพของ Fragment นอกเหนือจากกิจกรรมในแอป ให้ตรวจสอบว่าแอปใช้ Performance Monitoring Android SDK เวอร์ชัน 20.1.0 ขึ้นไป ดูข้อมูลเพิ่มเติมได้ที่หัวข้อเพิ่ม Performance Monitoring ลงในแอป
ฉันจะทราบได้อย่างไรว่าการติดตามใดเกี่ยวข้องกับ Fragment และกิจกรรม
การติดตาม Fragment และกิจกรรมแต่ละรายการจะอิงตามชื่อคลาสตามที่กำหนดไว้ในแอปพลิเคชัน การติดตามหน้าจอแต่ละรายการจะมีคำนำหน้า st ตามด้วยชื่อคลาส ในคอนโซล Firebase ระบบจะนำคำนำหน้าออก ดูข้อมูลเพิ่มเติมได้ที่ดูข้อมูลเกี่ยวกับข้อมูลประสิทธิภาพการแสดงผลหน้าจอ (แอป Apple และ Android)
ทำไมฉันจึงเห็นการติดตาม Fragment น้อยกว่าการติดตามอื่นๆ
Performance Monitoring จะสุ่มตัวอย่างเหตุการณ์ในเหตุการณ์ทั้งหมดที่รวบรวมไว้ในอุปกรณ์ แนวทางนี้ช่วยให้เราสามารถรวบรวมเหตุการณ์ขั้นต่ำที่จำเป็นจากอุปกรณ์ของผู้ใช้เพื่อแสดงเมตริกประสิทธิภาพ
ฉันจะได้รับการแจ้งเตือนอย่างไรเมื่อมีปัญหาเกี่ยวกับประสิทธิภาพการแสดงผลของแอปพลิเคชัน
Performance Monitoring ช่วยให้คุณตั้งค่าการแจ้งเตือนสำหรับเมตริกที่สนใจได้ สำหรับการติดตามการแสดงผลหน้าจอที่สร้างขึ้น คุณสามารถตั้งค่าการแจ้งเตือนเพื่อแจ้งให้คุณทราบเมื่อเปอร์เซ็นต์เฟรมที่ช้าและค้างเกินเกณฑ์ที่คุณตั้งไว้
เวลาในการสร้างของฉันสูงหลังจากเปิดใช้ปลั๊กอิน Performance Monitoring Gradle ฉันจะปรับปรุงได้อย่างไร
Performance Monitoring สำหรับ Android ใช้การวัดไบต์โค้ดเพื่อให้บริการฟีเจอร์ที่พร้อมใช้งานทันที เช่น การตรวจสอบคำขอเครือข่าย HTTP/S ในขั้นตอนการคอมไพล์ กระบวนการนี้ต้องมีการทำซ้ำผ่านคลาสทั้งหมดของแอป (รวมถึงทรัพยากร Dependency) เพื่อใช้เครื่องมือวัดโค้ดที่มีความสำคัญในการวัดประสิทธิภาพคำขอเครือข่ายของแอปพลิเคชัน
ปัจจัยสำคัญที่ทำให้เวลาในการสร้างเพิ่มขึ้นมีดังนี้
- จำนวนชั้นเรียนหรือไฟล์
- ขนาดของแต่ละคลาส (บรรทัดโค้ด)
- การกำหนดค่าเครื่องของคุณ
- บิลด์เริ่มต้นเทียบกับบิลด์ที่ตามมา (บิลด์ที่ตามมามักจะเร็วกว่าบิลด์เริ่มต้น)
หากต้องการเพิ่มประสิทธิภาพเวลาในการสร้าง ให้ลองแยกโค้ดออกเป็นโมดูล
ตั้งแต่เวอร์ชัน v1.3.3 ของปลั๊กอิน Performance Monitoring เราได้มุ่งเน้นที่การปรับปรุงอย่างมากในกระบวนการบิลด์แบบเพิ่มทีละส่วนและการแคชอินพุตของไลบรารี หากต้องการรับการปรับปรุงเวลาบิลด์ล่าสุด โปรดตรวจสอบว่าคุณใช้ปลั๊กอินเวอร์ชันล่าสุด (v2.0.2)
โปรดทราบว่าคุณสามารถปิดใช้ปลั๊กอิน Performance Monitoring สำหรับบิลด์การแก้ไขข้อบกพร่องในเครื่องได้หากต้องการหลีกเลี่ยงเวลาในการสร้างที่นาน อย่างไรก็ตาม เราไม่แนะนำให้ใช้วิธีนี้กับบิลด์เวอร์ชันที่ใช้งานจริง เนื่องจากอาจส่งผลให้ไม่สามารถวัดประสิทธิภาพของคำขอเครือข่ายในแอปได้
ฉันควรทำอย่างไรหากได้รับข้อผิดพลาดในการสร้างเนื่องจากไลบรารีที่เข้ากันไม่ได้กับปลั๊กอิน Gradle Performance Monitoring
Performance Monitoring สำหรับ Android ใช้การวัดไบต์โค้ดเพื่อให้บริการฟีเจอร์ที่พร้อมใช้งานทันที เช่น การตรวจสอบคำขอเครือข่าย HTTP/S ในขั้นตอนการคอมไพล์ กระบวนการนี้ต้องมีการทำซ้ำผ่านคลาสทั้งหมดของแอป (รวมถึงทรัพยากร Dependency) เพื่อใช้เครื่องมือวัดโค้ดที่มีความสำคัญในการวัดประสิทธิภาพคำขอเครือข่ายของแอปพลิเคชัน
หากคุณได้รับข้อผิดพลาดในการสร้าง เช่น JSR/RET are not supported with
computeFrames option หรือข้อผิดพลาดที่คล้ายกันหลังจากผสานรวมกับปลั๊กอิน Performance Monitoring อาจเป็นเพราะคุณมีการพึ่งพาไลบรารีที่เข้ากันไม่ได้กับปลั๊กอิน Performance Monitoring Gradle ด้วย
หากต้องการหลีกเลี่ยงปัญหานี้ คุณสามารถยกเว้นคลาส/ไลบรารีที่ใช้ร่วมกันไม่ได้จากการใช้เครื่องมือโดยทำตามขั้นตอนต่อไปนี้
- อัปเดตเป็นปลั๊กอิน Gradle ของ Performance Monitoring เวอร์ชันล่าสุด (ขั้นต่ำ v1.4.0)
- อัปเดตเวอร์ชันปลั๊กอิน Android Gradle เป็น v7.2.0 ขึ้นไป
- เพิ่ม Flag ต่อไปนี้ลงในไฟล์
build.gradleของโมดูล (ระดับแอป) เพื่อยกเว้นคลาส/ไลบรารีที่ใช้ร่วมกันไม่ได้จากการใช้เครื่องมือ ดูข้อมูลเพิ่มเติมเกี่ยวกับพร็อพเพอร์ตี้android { // ... androidComponents { onVariants(selector().all(), { instrumentation.excludes.add("example.incompatible.library") }) } }
excludeของ APIInstrumentationของปลั๊กอิน Android Gradle ได้ที่การวัดประสิทธิภาพ
โปรดรายงานปัญหาใน GitHub เมื่อพบข้อผิดพลาดในการสร้างเนื่องจากไลบรารีที่เข้ากันไม่ได้ เพื่อให้สามารถยกเว้นไลบรารีดังกล่าวจากการใช้เครื่องมือในปลั๊กอิน Performance Monitoring ได้ด้วย
ข้อมูล Performance Monitoring ของฉันใช้เวลานานกว่าที่คาดไว้ในการส่งออกไปยัง BigQuery ไม่ใช่แบบเรียลไทม์ใช่ไหม
หากคุณเปิดใช้การผสานรวม BigQuery สำหรับ Firebase Performance Monitoring ระบบจะส่งออกข้อมูลไปยัง BigQuery ภายใน 12 ถึง 24 ชั่วโมงหลังจากสิ้นสุดวัน (เวลาแปซิฟิก)
ตัวอย่างเช่น ข้อมูลของวันที่ 19 เมษายนจะพร้อมใช้งานใน BigQuery ในวันที่ 20 เมษายนระหว่างเวลา 12:00 น. ถึงเที่ยงคืน (วันที่และเวลาทั้งหมดเป็นเวลาแปซิฟิก)
ฉันสร้างรูปแบบ URL ที่กำหนดเองได้กี่รูปแบบ
คุณสามารถสร้างรูปแบบ URL ที่กำหนดเองได้สูงสุด 400 รูปแบบต่อแอป และรูปแบบ URL ที่กำหนดเองได้สูงสุด 100 รูปแบบต่อโดเมนสำหรับแอปนั้น
การประมวลผลและการแสดงข้อมูลแบบเกือบเรียลไทม์
ข้อมูลประสิทธิภาพแบบ "เกือบเรียลไทม์" หมายถึงอะไร
Firebase Performance Monitoring จะประมวลผลข้อมูลประสิทธิภาพที่รวบรวมไว้เมื่อได้รับข้อมูล ซึ่งส่งผลให้มีการแสดงข้อมูลแบบเกือบเรียลไทม์ในคอนโซล Firebase ข้อมูลที่ประมวลผลแล้วจะแสดงในคอนโซลภายในไม่กี่นาทีหลังจากรวบรวมข้อมูล จึงเป็นที่มาของคำว่า "เกือบเรียลไทม์"
หากต้องการใช้ประโยชน์จากการประมวลผลข้อมูลแบบเกือบเรียลไทม์ ให้ตรวจสอบว่าแอปใช้ SDK เวอร์ชันที่เข้ากันได้กับแบบเรียลไทม์
ฉันจะดูข้อมูลประสิทธิภาพแบบเกือบเรียลไทม์สําหรับแอปได้อย่างไร
หากต้องการใช้ประโยชน์จากการประมวลผลข้อมูลแบบเกือบเรียลไทม์ คุณเพียงแค่ต้องตรวจสอบว่าแอปใช้ SDK ของ Performance Monitoring เวอร์ชันที่เข้ากันได้กับการประมวลผลข้อมูลแบบเรียลไทม์
เวอร์ชัน 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 ของ Performance Monitoring เวอร์ชันใดบ้างที่ถือว่าเข้ากันได้กับแบบเรียลไทม์
เวอร์ชัน 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 เวอร์ชันที่เข้ากันได้แบบเรียลไทม์ อย่างไรก็ตาม ข้อมูลที่ไม่ใช่ข้อมูลล่าสุดจะรวมข้อมูลประสิทธิภาพจากแอปทุกเวอร์ชัน
ทำไมฉันจึงไม่เห็นการแสดงข้อมูลประสิทธิภาพแบบเรียลไทม์
หากต้องการดูข้อมูลประสิทธิภาพแบบเรียลไทม์ ให้ตรวจสอบว่าแอปใช้ SDK Performance Monitoring เวอร์ชันที่เข้ากันได้กับการประมวลผลข้อมูลแบบเรียลไทม์
- iOS — v7.3.0 ขึ้นไป
- tvOS — v8.9.0 ขึ้นไป
- Android — v19.0.10 ขึ้นไป (หรือ Firebase Android BoM v26.1.0 ขึ้นไป)
- เว็บ — v7.14.0 ขึ้นไป
โปรดทราบว่าเราขอแนะนำให้ใช้ SDK เวอร์ชันล่าสุดเสมอ แต่เวอร์ชันที่ระบุไว้ข้างต้นจะช่วยให้ Performance Monitoring ประมวลผลข้อมูลของคุณได้เกือบเรียลไทม์
การติดต่อทีมสนับสนุนของ Firebase
หากคุณติดต่อทีมสนับสนุนของ Firebase โปรดระบุรหัสแอป Firebase ด้วยเสมอ ค้นหารหัสแอป Firebase ในการ์ดแอปของคุณในsettings การตั้งค่าโปรเจ็กต์