หน้านี้มีคำแนะนำในการแก้ปัญหาสำหรับการเริ่มต้นใช้งานการตรวจสอบประสิทธิภาพหรือการใช้คุณลักษณะและเครื่องมือการตรวจสอบประสิทธิภาพ
ตรวจสอบการแก้ไขปัญหาเบื้องต้น
การตรวจสอบสองรายการต่อไปนี้เป็นแนวทางปฏิบัติที่ดีที่สุดทั่วไปที่แนะนำสำหรับทุกคนก่อนที่จะแก้ไขปัญหาเพิ่มเติม
1. ตรวจสอบข้อความบันทึกสำหรับเหตุการณ์ประสิทธิภาพ
ตรวจสอบข้อความบันทึกเพื่อให้แน่ใจว่า Performance Monitoring SDK กำลังบันทึกเหตุการณ์ประสิทธิภาพ
เปิดใช้งานการบันทึกการแก้ไขจุดบกพร่องสำหรับการตรวจสอบประสิทธิภาพในขณะสร้างโดยเพิ่มองค์ประกอบ
<meta-data>
ลงในไฟล์AndroidManifest.xml
ของแอป เช่น:<application> <meta-data android:name="firebase_performance_logcat_enabled" android:value="true" /> </application>
ตรวจสอบข้อความบันทึกของคุณเพื่อหาข้อความแสดงข้อผิดพลาด
การตรวจสอบประสิทธิภาพแท็กข้อความบันทึกด้วย
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 หรือสำหรับการตรวจสอบประสิทธิภาพ
เริ่มต้นใช้งานการตรวจสอบประสิทธิภาพ
หากคุณเริ่มต้นใช้งานการตรวจสอบประสิทธิภาพ ( iOS+ | Android | เว็บ ) เคล็ดลับการแก้ปัญหาต่อไปนี้สามารถช่วยแก้ปัญหาที่เกี่ยวข้องกับ Firebase ตรวจพบ SDK หรือแสดงข้อมูลประสิทธิภาพแรกในคอนโซล Firebase
Firebase สามารถตรวจจับได้ว่าคุณเพิ่ม Performance Monitoring SDK ลงในแอปสำเร็จหรือไม่ เมื่อได้รับข้อมูลเหตุการณ์ (เช่น การโต้ตอบกับแอป) จากแอปของคุณ โดยปกติภายใน 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)
ไฟล์กำหนดค่าอยู่ในไดเรกทอรี โมดูล (ระดับแอป) ของแอป
รหัสแอป Android ของ Firebase (
mobilesdk_app_id
) ที่แสดงในไฟล์กำหนดค่านั้นถูกต้องสำหรับแอปของคุณ ค้นหารหัสแอป Firebase ของคุณในการ์ด แอปของคุณ ใน ของคุณ การตั้งค่าโครงการ
หากมีสิ่งผิดปกติเกิดขึ้นกับไฟล์กำหนดค่าในแอปของคุณ ให้ลองทำดังนี้:
ลบไฟล์กำหนดค่าที่คุณมีอยู่ในแอปของคุณ
ทำตาม คำแนะนำเหล่านี้ เพื่อดาวน์โหลดไฟล์กำหนดค่าใหม่และเพิ่มลงในแอป Android
หาก SDK กำลังบันทึกเหตุการณ์และทุกอย่างดูเหมือนจะตั้งค่าอย่างถูกต้อง แต่คุณยังไม่เห็นข้อความตรวจพบ SDK หรือข้อมูลที่ประมวลผล (หลังจากผ่านไป 10 นาที) ให้ติดต่อ Firebase Support
ตรวจสอบการตั้งค่าปลั๊กอิน Performance Monitoring Gradle ดังนี้:
ตรวจสอบให้แน่ใจว่าคุณ ได้เพิ่มปลั๊กอิน อย่างถูกต้อง ตรวจสอบสิ่งต่อไปนี้โดยเฉพาะ:
- คุณเพิ่มปลั๊กอิน (
) ในไฟล์apply plugin: 'com.google.firebase.firebase-perf' build.gradle
ของ โมดูล (ระดับแอป) - คุณรวมการพึ่งพา classpath สำหรับปลั๊กอิน (
) ในไฟล์classpath 'com.google.firebase:perf-plugin:1.4.2' build.gradle
ระดับโครงการ ของคุณ
- คุณเพิ่มปลั๊กอิน (
ตรวจสอบให้แน่ใจว่าไม่ได้ ปิด ใช้งานปลั๊กอิน ผ่านแฟล็กใดสถานะหนึ่งต่อไปนี้:
-
instrumentationEnabled
ในไฟล์build.gradle
ของโมดูล (ระดับแอป) -
firebasePerformanceInstrumentationEnabled
ในไฟล์gradle.properties
ของคุณ
-
ตรวจสอบว่า SDK การตรวจสอบประสิทธิภาพ ไม่ได้ ปิดใช้งาน ผ่านการตั้งค่าสถานะอย่างใดอย่างหนึ่งต่อไปนี้ในไฟล์
AndroidManifest.xml
ของคุณ:-
firebase_performance_collection_enabled
-
firebase_performance_collection_deactivated
-
ตรวจสอบให้แน่ใจว่าไม่ได้ ปิด ใช้งานการตรวจสอบประสิทธิภาพขณะรันไทม์
หากคุณไม่พบสิ่งที่ถูกปิดใช้งานในแอปของคุณ โปรดติดต่อฝ่ายสนับสนุนของ Firebase
การตรวจสอบประสิทธิภาพจะประมวลผลข้อมูลเหตุการณ์ประสิทธิภาพก่อนที่จะแสดงใน แดชบอร์ด ประสิทธิภาพ
หากผ่านไป นานกว่า 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
ระดับโครงการ ของคุณ
- คุณเพิ่มปลั๊กอิน (
ตรวจสอบให้แน่ใจว่าไม่ได้ ปิด ใช้งานปลั๊กอิน ผ่านแฟล็กใดสถานะหนึ่งต่อไปนี้:
-
instrumentationEnabled
ในไฟล์build.gradle
ของโมดูล (ระดับแอป) -
firebasePerformanceInstrumentationEnabled
ในไฟล์gradle.properties
ของคุณ
-
ตรวจสอบว่า SDK การตรวจสอบประสิทธิภาพ ไม่ได้ ปิดใช้งาน ผ่านการตั้งค่าสถานะอย่างใดอย่างหนึ่งต่อไปนี้ในไฟล์
AndroidManifest.xml
ของคุณ:-
firebase_performance_collection_enabled
-
firebase_performance_collection_deactivated
-
ตรวจสอบให้แน่ใจว่าไม่ได้ ปิด ใช้งานการตรวจสอบประสิทธิภาพขณะรันไทม์
หากคุณไม่พบสิ่งที่ถูกปิดใช้งานในแอปของคุณ โปรดติดต่อฝ่ายสนับสนุนของ Firebase
หากคุณไม่มีข้อมูลสำหรับการติดตามการแสดงผลหน้าจอ ให้ลองทำตามขั้นตอนการแก้ปัญหาต่อไปนี้:
ตรวจสอบว่าคุณใช้ Android SDK เวอร์ชันล่าสุด (v20.3.2) ร่องรอยการแสดงผลหน้าจอใช้ได้เฉพาะกับ v15.2.0 หรือใหม่กว่า
ตรวจสอบให้แน่ใจว่าคุณไม่ได้ปิดใช้ งานการเร่งด้วยฮาร์ดแวร์ ด้วยตนเองสำหรับหน้าจอ
ตรวจสอบว่าคุณไม่ได้ใช้ DexGuard หรือ Jack การตรวจสอบประสิทธิภาพเข้ากันไม่ได้กับ toolchains เหล่านี้
DexGuard ปิดใช้งานการรวบรวมการติดตามการเริ่มต้นแอป แอปเบื้องหน้า และการติดตามแอปในเบื้องหลังโดยอัตโนมัติ อย่างไรก็ตาม การติดตามโค้ดที่กำหนดเอง ควรทำงานตามปกติหากแอปของคุณใช้ DexGuard
Jack เลิกใช้แล้วและโดยทั่วไปไม่ควรใช้ในแอปของคุณ
คุณเห็นข้อมูลประสิทธิภาพสำหรับการติดตามที่รวบรวมโดยอัตโนมัติ แต่ไม่เห็นสำหรับการติดตามโค้ดที่กำหนดเอง หรือไม่ ลองทำตามขั้นตอนการแก้ไขปัญหาต่อไปนี้:
หากคุณใช้การติดตามโค้ดที่กำหนดเองผ่าน Trace API ให้ตรวจสอบการตั้งค่าการติดตาม โดยเฉพาะสิ่งต่อไปนี้:
- ชื่อสำหรับการติดตามโค้ดที่กำหนดเองและเมตริกที่กำหนดเองต้องเป็นไปตามข้อกำหนดต่อไปนี้: ไม่มีช่องว่างนำหน้าหรือต่อท้าย ไม่มีอักขระขีดล่างนำหน้า (
_
) และความยาวสูงสุดคือ 32 อักขระ - การติดตามทั้งหมดจะต้องเริ่มต้นและหยุด การติดตามใดๆ ที่ไม่ได้เริ่ม ไม่หยุด หรือหยุดก่อนเริ่มต้นจะไม่ถูกบันทึก
- ชื่อสำหรับการติดตามโค้ดที่กำหนดเองและเมตริกที่กำหนดเองต้องเป็นไปตามข้อกำหนดต่อไปนี้: ไม่มีช่องว่างนำหน้าหรือต่อท้าย ไม่มีอักขระขีดล่างนำหน้า (
หากคุณติดตั้งการติดตามโค้ดแบบกำหนดเองผ่าน เครื่องหมาย
@AddTrace
ให้ตรวจสอบการตั้งค่าของปลั๊กอิน Performance Monitoring Gradle:ตรวจสอบให้แน่ใจว่าคุณ ได้เพิ่มปลั๊กอิน อย่างถูกต้อง ตรวจสอบสิ่งต่อไปนี้โดยเฉพาะ:
- คุณเพิ่มปลั๊กอิน (
) ในไฟล์apply plugin: 'com.google.firebase.firebase-perf' build.gradle
ของ โมดูล (ระดับแอป) - คุณรวมการพึ่งพา classpath สำหรับปลั๊กอิน (
) ในไฟล์classpath 'com.google.firebase:perf-plugin:1.4.2' build.gradle
ระดับโครงการ ของคุณ
- คุณเพิ่มปลั๊กอิน (
ตรวจสอบให้แน่ใจว่าไม่ได้ ปิด ใช้งานปลั๊กอิน ผ่านแฟล็กใดสถานะหนึ่งต่อไปนี้:
-
instrumentationEnabled
ในไฟล์build.gradle
ของโมดูล (ระดับแอป) -
firebasePerformanceInstrumentationEnabled
ในไฟล์gradle.properties
ของคุณ
-
ตรวจสอบข้อความบันทึกของคุณ เพื่อให้แน่ใจว่า Performance Monitoring กำลังบันทึกการติดตามโค้ดแบบกำหนดเองที่คาดไว้
หากการตรวจสอบประสิทธิภาพกำลังบันทึกเหตุการณ์ แต่ไม่มีข้อมูลแสดงหลังจาก 24 ชั่วโมง โปรดติดต่อฝ่ายสนับสนุนของ Firebase
หากคุณไม่มีข้อมูลคำขอเครือข่าย ให้ลองทำตามขั้นตอนการแก้ปัญหาต่อไปนี้:
สำหรับแอป Android ปลั๊กอิน Gradle การตรวจสอบประสิทธิภาพจะเปิดใช้งานเครื่องมือที่ให้ การตรวจสอบคำขอเครือข่าย HTTP/S โดยอัตโนมัติ ตรวจสอบสิ่งต่อไปนี้:
ตรวจสอบให้แน่ใจว่าคุณ ได้เพิ่มปลั๊กอิน อย่างถูกต้อง ตรวจสอบสิ่งต่อไปนี้โดยเฉพาะ:
- คุณเพิ่มปลั๊กอิน (
) ในไฟล์apply plugin: 'com.google.firebase.firebase-perf' build.gradle
ของ โมดูล (ระดับแอป) - คุณรวมการพึ่งพา classpath สำหรับปลั๊กอิน (
) ในไฟล์classpath 'com.google.firebase:perf-plugin:1.4.2' build.gradle
ระดับโครงการ ของคุณ
- คุณเพิ่มปลั๊กอิน (
ตรวจสอบให้แน่ใจว่าไม่ได้ ปิด ใช้งานปลั๊กอิน ผ่านแฟล็กใดสถานะหนึ่งต่อไปนี้:
-
instrumentationEnabled
ในไฟล์build.gradle
ของโมดูล (ระดับแอป) -
firebasePerformanceInstrumentationEnabled
ในไฟล์gradle.properties
ของคุณ
-
ตรวจสอบความเข้ากันไม่ได้ของไลบรารีเครือข่าย การตรวจสอบประสิทธิภาพจะรวบรวมเมตริกโดยอัตโนมัติสำหรับคำขอเครือข่ายที่ใช้ไลบรารีเครือข่ายต่อไปนี้: OkHttp 3.xx, Java's URLConnection และ Apache HttpClient
โปรดทราบว่า คุณสามารถ เพิ่มการตรวจสอบแบบกำหนดเองสำหรับคำขอเครือข่าย
โปรดทราบสิ่งต่อไปนี้:
ขึ้นอยู่กับลักษณะการทำงานของโค้ดและไลบรารีเครือข่ายที่ใช้โดยโค้ดของคุณ การตรวจสอบประสิทธิภาพอาจรายงานเฉพาะคำขอเครือข่ายที่เสร็จสมบูรณ์เท่านั้น ซึ่งหมายความว่าการเชื่อมต่อ HTTP/S ที่เปิดทิ้งไว้อาจไม่ได้รับการรายงาน
การตรวจสอบประสิทธิภาพไม่รองรับ DexGuard และ Jack
- DexGuard ปิดใช้งานการตรวจสอบคำขอเครือข่าย HTTP/S
- Jack เลิกใช้แล้วและโดยทั่วไปไม่ควรใช้ในแอปของคุณ
การตรวจสอบประสิทธิภาพไม่รายงานคำขอเครือข่ายที่มีส่วนหัว
Content-Type
ที่ไม่ถูกต้อง อย่างไรก็ตาม คำขอเครือข่ายที่ไม่มีส่วนหัวContent-Type
จะยังคงได้รับการยอมรับ
เรียนรู้เพิ่มเติมเกี่ยวกับ วิธีที่ Performance Monitoring รวมข้อมูลคำขอเครือข่าย ภายใต้รูปแบบ URL
คุณยังสามารถลองใช้ รูปแบบ URL ที่กำหนดเองได้ !
คำถามที่พบบ่อย
เราแทนที่ ปัญหายอดนิยม ด้วย การแจ้งเตือนล่าสุด เพื่อติดตามผลการแจ้งเตือนล่าสุด ซึ่งจะแจ้งให้คุณทราบโดยอัตโนมัติเมื่อเกินเกณฑ์ที่คุณตั้งไว้ ตอนนี้เลิกใช้งานปัญหาแล้ว และแทนที่ด้วยการแจ้งเตือน
ตัวเลือกแอปที่ด้านบนของการ์ดประสิทธิภาพจะกรองรายการแจ้งเตือนภายใต้ การแจ้งเตือนล่าสุด เฉพาะการแจ้งเตือนสามรายการล่าสุดสำหรับแอปที่เลือกเท่านั้นที่จะแสดง
หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับการแจ้งเตือน โปรดดู ที่ ตั้งค่าการแจ้งเตือนสำหรับปัญหาด้านประสิทธิภาพ
การตรวจสอบประสิทธิภาพรองรับ การแจ้งเตือน สำหรับเมตริกที่เกินเกณฑ์ที่กำหนด เพื่อหลีกเลี่ยงความสับสนกับเกณฑ์ที่กำหนดค่าได้สำหรับเมตริกประสิทธิภาพ เราจึงนำความสามารถในการกำหนดค่าเกณฑ์สำหรับ ปัญหาต่างๆ ออก
เราแทนที่หน้ารายละเอียดและเมตริกด้วยส่วนต่อประสานผู้ใช้ (UI) แบบรวมศูนย์ที่ออกแบบใหม่เพื่อปรับปรุงวิธีการแก้ไขปัญหาของคุณ UI การแก้ไขปัญหาใหม่นี้มีฟังก์ชันการทำงานหลักแบบเดียวกับที่รายละเอียดและเมตริกมีให้ หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับการแก้ไขปัญหา ดูที่ ดูข้อมูลเพิ่มเติมสำหรับการติดตามเฉพาะ
การตรวจสอบประสิทธิภาพจะรวบรวมข้อมูลประสิทธิภาพจากอุปกรณ์ของผู้ใช้แอปของคุณ หากแอปพลิเคชันของคุณมีผู้ใช้จำนวนมากหรือหากแอปสร้างกิจกรรมด้านประสิทธิภาพจำนวนมาก การตรวจสอบประสิทธิภาพอาจจำกัดการรวบรวมข้อมูลไว้ที่ชุดย่อยของอุปกรณ์เพื่อลดจำนวนเหตุการณ์ที่ประมวลผล ขีดจำกัดเหล่านี้สูงพอที่แม้จะมีเหตุการณ์น้อยลง ค่าเมตริกก็ยังเป็นตัวแทนของประสบการณ์แอปของผู้ใช้
ในการจัดการปริมาณข้อมูลที่เรารวบรวม การตรวจสอบประสิทธิภาพจะใช้ตัวเลือกการสุ่มตัวอย่างต่อไปนี้:
การจำกัดอัตราในอุปกรณ์ : เพื่อป้องกันไม่ให้อุปกรณ์ส่งการติดตามแบบฉับพลัน เราจะจำกัดจำนวนโค้ดและการติดตามคำขอเครือข่ายที่ส่งจากอุปกรณ์เป็น 300 เหตุการณ์ทุกๆ 10 นาที วิธีนี้ช่วยปกป้องอุปกรณ์จากเครื่องมือวัดแบบวนซ้ำที่สามารถส่งข้อมูลประสิทธิภาพจำนวนมาก และป้องกันไม่ให้อุปกรณ์เครื่องเดียวบิดเบือนการวัดประสิทธิภาพ
การสุ่มตัวอย่างแบบไดนามิก : การตรวจสอบประสิทธิภาพจะรวบรวมเหตุการณ์ประมาณ 100 ล้านเหตุการณ์สำหรับการติดตามโค้ดและ 100 ล้านสำหรับการติดตามคำขอเครือข่ายต่อแอปสำหรับผู้ใช้แอปทั้งหมด อัตราการสุ่มตัวอย่างแบบไดนามิกจะดึงข้อมูลบนอุปกรณ์ (โดยใช้ Firebase Remote Config) เพื่อพิจารณาว่าอุปกรณ์สุ่มควรจับและส่งการติดตามหรือไม่ อุปกรณ์ที่ไม่ได้เลือกสำหรับการสุ่มตัวอย่างจะไม่ส่งเหตุการณ์ใดๆ อัตราการสุ่มตัวอย่างแบบไดนามิกเป็นแบบเฉพาะแอปและปรับเพื่อให้แน่ใจว่าปริมาณข้อมูลที่รวบรวมโดยรวมยังคงต่ำกว่าขีดจำกัด
เซสชันผู้ใช้ส่งข้อมูลรายละเอียดเพิ่มเติมจากอุปกรณ์ของผู้ใช้ ทำให้ต้องใช้ทรัพยากรมากขึ้นในการจับภาพและส่งข้อมูล เพื่อลดผลกระทบของเซสชันผู้ใช้ การตรวจสอบประสิทธิภาพอาจจำกัดจำนวนเซสชันด้วย
การจำกัดอัตราฝั่งเซิร์ฟเวอร์ : เพื่อให้แน่ใจว่าแอปไม่เกินขีดจำกัดการสุ่มตัวอย่าง การตรวจสอบประสิทธิภาพอาจใช้การสุ่มตัวอย่างฝั่งเซิร์ฟเวอร์เพื่อลดเหตุการณ์บางอย่างที่ได้รับจากอุปกรณ์ แม้ว่าการจำกัดประเภทนี้จะไม่เปลี่ยนประสิทธิภาพของเมตริกของเรา แต่อาจทำให้เกิดการเปลี่ยนแปลงรูปแบบเล็กน้อย ซึ่งรวมถึงสิ่งต่อไปนี้:
- จำนวนการติดตามอาจแตกต่างจากจำนวนครั้งที่โค้ดหนึ่งชิ้นถูกเรียกใช้
- การติดตามที่เชื่อมโยงอย่างใกล้ชิดในโค้ดแต่ละรายการอาจมีจำนวนตัวอย่างที่แตกต่างกัน
เราแทนที่แท็บปัญหาด้วยการแนะนำการแจ้งเตือน ซึ่งจะแจ้งให้คุณทราบโดยอัตโนมัติเมื่อเกินเกณฑ์ที่คุณตั้งไว้ คุณไม่จำเป็นต้องตรวจสอบคอนโซล Firebase ด้วยตนเองเพื่อระบุสถานะของเกณฑ์อีกต่อไป หากต้องการเรียนรู้เกี่ยวกับการแจ้งเตือน โปรดดู ที่ ตั้งค่าการแจ้งเตือนสำหรับปัญหาด้านประสิทธิภาพ
เราได้ออกแบบส่วนการตรวจสอบประสิทธิภาพของคอนโซล Firebase ใหม่ เพื่อให้ แท็บแดชบอร์ด แสดงเมตริกหลักและการติดตามทั้งหมดในพื้นที่เดียว ส่วนหนึ่งของการออกแบบใหม่ เราได้ลบหน้า บนอุปกรณ์ และหน้า เครือข่าย ออก
ตารางการติดตามที่ด้านล่างของ แท็บแดช บอร์ดมีข้อมูลทั้งหมดเหมือนกันกับที่แสดงแท็บ บนอุปกรณ์ และ เครือข่าย แต่มีคุณสมบัติเพิ่มเติมบางอย่าง รวมถึงความสามารถในการจัดเรียงการติดตามของคุณตามเปอร์เซ็นต์การเปลี่ยนแปลงสำหรับเมตริกเฉพาะ หากต้องการดูเมตริกและข้อมูล ทั้งหมด สำหรับการติดตามเฉพาะ ให้คลิกชื่อการติดตามในตารางการติดตาม
ดูการติดตามของคุณในแท็บย่อยต่อไปนี้ของตารางการติดตาม:
- การติดตามคำขอเครือข่าย (ทั้งแบบสำเร็จรูปและแบบกำหนดเอง) — แท็บย่อย คำขอเครือข่าย
- การติดตามรหัสแบบกำหนดเอง — แท็บย่อย การติดตามแบบกำหนดเอง
- การเริ่มต้นแอป แอปเบื้องหน้า การติดตามแอปในพื้นหลัง — แท็บย่อย การติดตามที่กำหนดเอง
- ร่องรอยการเรนเดอร์หน้าจอ — แท็บย่อย การเรนเดอร์หน้าจอ
- การติดตามการโหลดหน้าเว็บ — แท็บย่อย การโหลดหน้าเว็บ
สำหรับรายละเอียดเกี่ยวกับตารางการติดตามและการดูเมตริกและข้อมูล โปรดไปที่หน้าภาพรวมคอนโซล ( iOS+ | Android | เว็บ )
เฟรมที่เรนเดอร์ช้าและเฟรมค้างคำนวณด้วยอัตรารีเฟรชอุปกรณ์ที่สมมติไว้ที่ 60Hz หากอัตราการรีเฟรชอุปกรณ์ต่ำกว่า 60Hz แต่ละเฟรมจะมีเวลาเรนเดอร์ช้าลงเนื่องจากมีการแสดงผลเฟรมต่อวินาทีน้อยลง เวลาในการเรนเดอร์ที่ช้าลงอาจทำให้รายงานเฟรมที่ช้าหรือค้างมากขึ้น เนื่องจากเฟรมที่มากขึ้นจะแสดงผลช้าลงหรือจะค้าง อย่างไรก็ตาม หากอัตราการรีเฟรชอุปกรณ์สูงกว่า 60Hz แต่ละเฟรมจะมีเวลาเรนเดอร์เร็วขึ้น ซึ่งอาจทำให้รายงานเฟรมที่ช้าหรือค้างน้อยลง นี่เป็นข้อจำกัดปัจจุบันใน Performance Monitoring SDK
หากต้องการดูประสิทธิภาพของแฟรกเมนต์นอกเหนือจากกิจกรรมแอพ ตรวจสอบให้แน่ใจว่าแอพของคุณใช้ Performance Monitoring Android SDK เวอร์ชัน 20.1.0 ขึ้นไป หากต้องการเรียนรู้เพิ่มเติม โปรดดู ที่ เพิ่มการตรวจสอบประสิทธิภาพให้กับแอปของคุณ
การติดตามแฟรกเมนต์และกิจกรรมแต่ละรายการจะขึ้นอยู่กับชื่อคลาสตามที่กำหนดไว้ในแอปพลิเคชันของคุณ การติดตามหน้าจอแต่ละรายการมีคำนำ หน้า st ตามด้วยชื่อคลาส บนคอนโซล Firebase คำนำหน้าจะถูกลบออก หากต้องการเรียนรู้เพิ่มเติม โปรดดู เรียนรู้เกี่ยวกับข้อมูลประสิทธิภาพการเรนเดอร์หน้าจอ (แอป Apple และ Android)
การตรวจสอบประสิทธิภาพดำเนินการสุ่มตัวอย่างเหตุการณ์ในทุกเหตุการณ์ที่รวบรวมบนอุปกรณ์ วิธีการนี้ช่วยให้เรารวบรวมเหตุการณ์ขั้นต่ำที่จำเป็นจากอุปกรณ์ของผู้ใช้เพื่อระบุเมตริกประสิทธิภาพ
การตรวจสอบประสิทธิภาพช่วยให้คุณตั้งค่าการแจ้งเตือนสำหรับเมตริกที่คุณสนใจ สำหรับการติดตามการเรนเดอร์หน้าจอที่สร้างขึ้น คุณสามารถ ตั้งค่าการเตือน เพื่อแจ้งให้คุณทราบเมื่อเปอร์เซ็นต์เฟรมที่ช้าและค้างเกินกว่าเกณฑ์ที่คุณตั้งไว้
การตรวจสอบประสิทธิภาพสำหรับ Android ใช้เครื่องมือวัด bytecode เพื่อให้คุณลักษณะบางอย่างที่พร้อมใช้งาน เช่น การตรวจสอบคำขอเครือข่าย HTTP/S ในฐานะที่เป็นส่วนหนึ่งของการคอมไพล์ กระบวนการต้องมีการวนซ้ำผ่านคลาสทั้งหมดของแอปของคุณ (รวมถึงการอ้างอิง) เพื่อใช้โค้ดที่มีความสำคัญในการวัดประสิทธิภาพคำขอเครือข่ายของแอปพลิเคชันของคุณ
ต่อไปนี้เป็นผู้สนับสนุนหลักบางส่วนที่ช่วยเพิ่มเวลาในการสร้าง:
- จำนวนคลาสหรือไฟล์
- ขนาดของแต่ละคลาส (บรรทัดของรหัส)
- การกำหนดค่าเครื่องของคุณ
- บิลด์เริ่มต้นเทียบกับบิลด์ที่ตามมา (บิลด์ที่ตามมามักจะเร็วกว่าบิลด์เริ่มต้น)
เพื่อเพิ่มประสิทธิภาพเวลาการสร้างของคุณ ให้พิจารณา การทำให้โค้ดของคุณเป็นโมดูล
เริ่มต้นด้วย v1.3.3 ของปลั๊กอินการตรวจสอบประสิทธิภาพ เราได้มุ่งเน้นที่การปรับปรุงอย่างมากในการประมวลผลส่วนเพิ่มและการแคชของอินพุตไลบรารี หากต้องการรับการปรับปรุงเวลาในการสร้างล่าสุด โปรดใช้ ปลั๊กอิน เวอร์ชันล่าสุด (v1.4.2)
โปรดทราบว่าคุณสามารถ ปิดใช้งานปลั๊กอินการตรวจสอบประสิทธิภาพ สำหรับการดีบักบิลด์ในเครื่องได้ หากคุณต้องการหลีกเลี่ยงเวลาบิลด์ที่ยาวนาน อย่างไรก็ตาม ไม่แนะนำให้ใช้วิธีนี้กับรุ่นที่ใช้งานจริง เนื่องจากอาจส่งผลให้การวัดประสิทธิภาพสำหรับคำขอเครือข่ายในแอปของคุณพลาดไป
การตรวจสอบประสิทธิภาพสำหรับ Android ใช้เครื่องมือวัด bytecode เพื่อให้คุณลักษณะบางอย่างที่พร้อมใช้งาน เช่น การตรวจสอบคำขอเครือข่าย HTTP/S ในฐานะที่เป็นส่วนหนึ่งของการคอมไพล์ กระบวนการต้องมีการวนซ้ำผ่านคลาสทั้งหมดของแอปของคุณ (รวมถึงการอ้างอิง) เพื่อใช้โค้ดที่มีความสำคัญในการวัดประสิทธิภาพคำขอเครือข่ายของแอปพลิเคชันของคุณ
หากคุณได้รับข้อผิดพลาดในการสร้าง เช่น JSR/RET are not supported with computeFrames option
หรือข้อผิดพลาดที่คล้ายกันหลังจากรวมเข้ากับปลั๊กอิน Performance Monitoring อาจเป็นเพราะคุณพึ่งพาไลบรารีที่เข้ากันไม่ได้กับปลั๊กอิน Performance Monitoring Gradle
เพื่อแก้ไขปัญหานี้ คุณสามารถแยกคลาส/ไลบรารีที่เข้ากันไม่ได้ออกจากการใช้งานโดยทำตามขั้นตอนเหล่านี้:
- อัปเดตเป็นปลั๊กอิน Performance Monitoring Gradle เวอร์ชันล่าสุด (ขั้นต่ำ v1.4.0 )
- อัปเดตเวอร์ชันปลั๊กอิน Android Gradle ของคุณเป็น v7.2.0 หรือใหม่กว่า
- เพิ่มแฟล็กต่อไปนี้ลงในไฟล์
build.gradle
ของโมดูล (ระดับแอป) เพื่อแยกคลาส/ไลบรารีที่เข้ากันไม่ได้ออกจากการใช้งาน:android { // ... androidComponents { onVariants(selector().all(), { instrumentation.excludes.add("example.incompatible.library") }) } }
หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับคุณสมบัติexclude
ของ APIInstrumentation
ของปลั๊กอิน Android Gradle โปรดดูที่ เครื่องมือ
โปรด แจ้งปัญหา Github เมื่อคุณพบข้อผิดพลาดในการสร้างเนื่องจากไลบรารีที่เข้ากันไม่ได้ เพื่อให้สามารถแยกออกจากการใช้งานในปลั๊กอินการตรวจสอบประสิทธิภาพ
หากคุณเปิดใช้งานการรวม BigQuery สำหรับการตรวจสอบประสิทธิภาพ Firebase ข้อมูลของคุณจะถูกส่งออกไปยัง BigQuery ภายใน 12 ถึง 24 ชั่วโมงหลังจากสิ้นสุดวัน (เวลาแปซิฟิก)
ตัวอย่างเช่น ข้อมูลของวันที่ 19 เมษายนจะพร้อมใช้งานใน BigQuery ในวันที่ 20 เมษายน ระหว่างเวลา 12.00 น. ถึงเที่ยงคืน (วันที่และเวลาทั้งหมดเป็นเวลาแปซิฟิก)
Near real-time data processing and display
Firebase Performance Monitoring processes collected performance data as it comes in, which results in near real-time data display in the Firebase console. Processed data displays in the console within a few minutes of its collection, hence the term "near real-time".
To take advantage of near real-time data processing, make sure your app uses a real-time compatible SDK version .
To take advantage of near real-time data processing, you only need to make sure that your app uses a Performance Monitoring SDK version that's compatible with real-time data processing.
These are the real-time compatible SDK versions:
- iOS — v7.3.0 or later
- tvOS — v8.9.0 or later
- Android — v19.0.10 or later (or Firebase Android BoM v26.1.0 or later)
- Web — v7.14.0 or later
Note that we always recommend using the latest version of SDK, but any version listed above will enable Performance Monitoring to process your data in near real time.
These are the SDK versions compatible with real-time data processing:
- iOS — v7.3.0 or later
- tvOS — v8.9.0 or later
- Android — v19.0.10 or later (or Firebase Android BoM v26.1.0 or later)
- Web — v7.14.0 or later
Note that we always recommend using the latest version of SDK, but any version listed above will enable Performance Monitoring to process your data in near real time.
If your app doesn't use a real-time compatible SDK version, you will still see all your app's performance data in the Firebase console. However, the display of performance data will be delayed by roughly 36 hours from the time of its collection.
Yes! Regardless of which SDK version an app instance uses, you'll see performance data from all your users.
However, if you're looking at recent data (less than roughly 36 hours old), then the displayed data is from users of app instances using a real-time compatible SDK version. The non-recent data, though, includes performance data from all versions of your app.
Contacting Firebase Support
If you reach out to Firebase Support , always include your Firebase App ID. Find your Firebase App ID in the Your apps card of your Project settings .