تقدّم هذه الصفحة نصائح حول تحديد المشاكل وحلّها للبدء باستخدام Performance Monitoring أو استخدام ميزات Performance Monitoring وأدواتها.
عمليات التحقّق الأولى لتحديد المشاكل وحلّها
إنّ التحقّقَين التاليَين هما من أفضل الممارسات العامة التي ننصح بها أي مستخدم قبل إجراء المزيد من عمليات تحديد المشاكل وحلّها.
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_URL
Logging network request trace: URL
انقر على عنوان URL لعرض بياناتك في وحدة تحكُّم Firebase. قد يستغرق تعديل البيانات في لوحة البيانات بضع ثوانٍ.
إذا لم يكن تطبيقك يسجّل أحداث الأداء، راجِع نصائح تحديد المشاكل وحلّها.
2- مراجعة لوحة بيانات حالة Firebase
يُرجى الانتقال إلى لوحة بيانات حالة Firebase في حال حدوث انقطاع معروف في الخدمة في Firebase أو في Performance Monitoring.
بدء استخدام Performance Monitoring
إذا كنت بصدد بدء استخدام Performance Monitoring (iOS والإصدارات الأحدث | Android | الويب)، يمكن أن تساعدك الخطوات التالية المتعلّقة بتحديد المشاكل وحلّها في حلّ المشاكل المتعلّقة برصد Firebase لحزمة SDK أو عرض بيانات الأداء الأولى في وحدة تحكّم Firebase.
Added the SDK to app, but console still says to add SDK
يمكن لمنصّة Firebase رصد ما إذا كنت قد أضفت حزمة تطوير البرامج (SDK) لنظام التشغيل Performance Monitoring إلى تطبيقك بنجاح، وذلك عند تلقّيها معلومات عن الأحداث (مثل التفاعلات مع التطبيق) من تطبيقك. وعادةً ما تظهر رسالة "تم رصد حزمة SDK" في لوحة بيانات الأداء لوحة تحكّم Firebase خلال 10 دقائق من بدء تشغيل تطبيقك. بعد ذلك، في غضون 30 دقيقة، تعرض لوحة البيانات البيانات الأولية التي تمت معالجتها.
إذا مرّ أكثر من 10 دقائق على إضافة أحدث إصدار من حزمة تطوير البرامج (SDK) إلى تطبيقك، ولم يظهر أي تغيير بعد، يمكنك الاطّلاع على رسائل logging للتأكّد من أنّ Performance Monitoring يسجّل الأحداث. جرِّب خطوات تحديد المشاكل وحلّها المناسبة كما هو موضّح أدناه لمحاولة تحديد المشاكل المتعلّقة بتأخُّر ظهور رسالة رصد حزمة SDK وحلّها.
التطبيق يسجِّل الأحداث: خطوات تحديد المشاكل وحلّها
تأكَّد من استخدام Performance Monitoring الإصدار 19.1.0 أو إصدار أحدث من حزمة تطوير البرامج (SDK) لنظام التشغيل Android (أو Firebase BoM 26.3.0 أو إصدار أحدث)، اطّلِع على ملاحظة الإصدار.
إذا كنت لا تزال في مرحلة التطوير على الجهاز، جرِّب إنشاء المزيد من الأحداث لجمع data:
- إنشاء أحداث من خلال تبديل تطبيقك بين المقدّمة والخلفية عدة مرات، والتفاعل مع تطبيقك من خلال التنقّل بين الشاشات، و/أو بدء طلبات الشبكة
تأكَّد من أنّه تمت إضافة ملف إعدادات 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 'com.google.firebase:perf-plugin:1.4.2' build.gradle
على مستوى المشروع.
- أضفت المكوّن الإضافي
(
تأكَّد من أنّه لم يتم إيقاف المكوّن الإضافي من خلال أيّ من العلامتَين التاليتَين:
instrumentationEnabled
في ملفbuild.gradle
(على مستوى التطبيق)firebasePerformanceInstrumentationEnabled
فيملفgradle.properties
تأكَّد من أنّ حزمة SDK لنظام التشغيل Performance Monitoring غير متوقفة من خلال أي من العلامتَين التاليتَين في ملف
AndroidManifest.xml
:firebase_performance_collection_enabled
firebase_performance_collection_deactivated
تأكَّد من أنّ Performance Monitoring غير متوقف أثناء وقت التشغيل.
إذا لم تتمكّن من العثور على أي ميزة تم إيقافها في تطبيقك، تواصَل مع فريق دعم Firebase.
تشير Console إلى أنّه تم رصد حزمة 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 'com.google.firebase:perf-plugin:1.4.2' build.gradle
على مستوى المشروع.
- أضفت المكوّن الإضافي
(
تأكَّد من أنّه لم يتم إيقاف المكوّن الإضافي من خلال أيّ من العلامتَين التاليتَين:
instrumentationEnabled
في ملفbuild.gradle
(على مستوى التطبيق)firebasePerformanceInstrumentationEnabled
فيملفgradle.properties
تأكَّد من أنّ حزمة SDK لنظام التشغيل Performance Monitoring غير متوقفة من خلال أي من العلامتَين التاليتَين في ملف
AndroidManifest.xml
:firebase_performance_collection_enabled
firebase_performance_collection_deactivated
تأكَّد من أنّ Performance Monitoring غير متوقف أثناء وقت التشغيل.
إذا لم تتمكّن من العثور على أي ميزة تم إيقافها في تطبيقك، تواصَل مع فريق دعم Firebase.
لوحة بيانات الأداء لا تتضمّن بيانات تتبُّع الشاشة
إذا كانت بيانات تتبُّع عرض الشاشة غير متوفّرة، جرِّب الخطوات التالية لتحديد المشاكل وحلّها:
تأكَّد من استخدام أحدث إصدار من حزمة تطوير البرامج (SDK) لنظام التشغيل Android (الإصدار 21.0.2). لا تتوفّر عمليات تتبُّع عرض الشاشة إلا مع الإصدار 15.2.0 أو الإصدارات الأحدث.
تأكَّد من أنّك لم توقف يدويًا ميزة تسريع الأجهزة لشاشة معيّنة.
تأكَّد من عدم استخدام DexGuard أو Jack. Performance Monitoring غير متوافق مع سلاسل الأدوات هذه.
يوقف DexGuard عملية جمع عمليات تتبُّع بدء تشغيل التطبيق والتطبيق الذي يعمل في المقدّمة والتطبيق الذي يعمل في الخلفية تلقائيًا. ومع ذلك، من المفترض أن تعمل أي عمليات تتبُّع الرموز المخصّصة بشكلٍ طبيعي إذا كان تطبيقك يستخدم DexGuard.
تم إيقاف Jack نهائيًا ويجب عدم استخدامه في تطبيقك بشكل عام.
لوحة بيانات الأداء لا تتضمّن بيانات التتبّع المخصّصة
هل تظهر لك بيانات الأداء للمسارات التي يتم جمعها تلقائيًا ولكن ليس لمسار الرموز البرمجية المخصّصة؟ يُرجى اتّباع الخطوات التالية لتحديد المشاكل وحلّها:
إذا كنت قد أعددت عمليات تتبُّع الرموز البرمجية المخصّصة من خلال Trace API، تحقّق من إعداد عمليات التتبُّع، خاصةً ما يلي:
- يجب أن تستوفي أسماء عمليات تتبُّع الرموز البرمجية المخصّصة والمقاييس المخصّصة
المتطلبات التالية: عدم تضمين مسافات بيضاء في بداية الاسم أو نهايته، وعدم تضمين علامة تحت خط (
_
) في بداية الاسم، ويجب ألا يزيد طول الاسم عن 32 حرفًا. - يجب بدء جميع عمليات التتبّع وإيقافها. ولن يتم تسجيل أيّ عملية تتبُّع لم يتم بدؤها أو إيقافها أو إيقافها قبل بدؤها.
- يجب أن تستوفي أسماء عمليات تتبُّع الرموز البرمجية المخصّصة والمقاييس المخصّصة
المتطلبات التالية: عدم تضمين مسافات بيضاء في بداية الاسم أو نهايته، وعدم تضمين علامة تحت خط (
إذا أعددت عمليات تتبُّع الرموز البرمجية المخصّصة من خلال
@AddTrace
ترميز، تحقّق من إعداد المكوّن الإضافي Performance Monitoring Gradle:تأكَّد من إضافة المكوّن الإضافي بشكل صحيح. وعلى وجه التحديد، يُرجى التحقّق مما يلي:
- أضفت المكوّن الإضافي
(
) فيملفapply plugin: 'com.google.firebase.firebase-perf' build.gradle
وحدة التطبيق (على مستوى التطبيق). - لقد أدرجت التبعية لمسار الطباعة للإضافة
(
) في ملفclasspath 'com.google.firebase:perf-plugin:1.4.2' build.gradle
على مستوى المشروع.
- أضفت المكوّن الإضافي
(
تأكَّد من أنّه لم يتم إيقاف المكوّن الإضافي من خلال أيّ من العلامتَين التاليتَين:
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 'com.google.firebase:perf-plugin:1.4.2' build.gradle
على مستوى المشروع.
- أضفت المكوّن الإضافي
(
تأكَّد من أنّه لم يتم إيقاف المكوّن الإضافي من خلال أيّ من العلامتَين التاليتَين:
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 المخصّصة.
الأسئلة الشائعة
ما الذي حدث لأبرز المشاكل في بطاقة "الأداء" على صفحة المشروع الرئيسية؟
لقد استبدلنا أهمّ المشاكل بـ التنبيهات الأخيرة في إطار متابعة الميزات التي طرحناها مؤخرًا للتنبيهات، والتي تُعلمك تلقائيًا عند تجاوز الحدود التي تحدّدها. تم إيقاف المشاكل نهائيًا وتم استبدالها بالتنبيهات.
تصفِّح أداة اختيار التطبيقات في أعلى بطاقة "الأداء" إدخالات التنبيهات ضمن التنبيهات الأخيرة. لا يتم عرض سوى آخر ثلاثة تنبيهات للتطبيقات التي تم اختيارها.
لمزيد من المعلومات عن التنبيهات، اطّلِع على مقالة إعداد تنبيهات بشأن مشاكل الأداء.
ما الذي حدث لإمكانية ضبط الحدود الدنيا للمشاكل في وحدة التحكّم؟
تتيح Performance Monitoring التنبيهات للمقاييس التي تتجاوز الحدود الدنيا المحدّدة. لتجنُّب حدوث التباس مع هذه الحدود القابلة للضبط ومقاييس الأداء، أزلنا إمكانية ضبط الحدود القصوى لالمشاكل.
ما الذي حدث لمعلومات "التفاصيل والمقاييس" في وحدة تحكّم Firebase؟
لقد استبدلنا صفحتَي "التفاصيل" و"المقاييس" بواجهة مستخدم (UI) مركزية تمت إعادة تصميمها حديثًا لتحسين طريقة تحديد المشاكل وحلّها. توفّر واجهة مستخدِم تحديد المشاكل وحلّها الجديدة هذه الوظائف الأساسية نفسها التي كانت توفّرها "التفاصيل" و"المقاييس". لمزيد من المعلومات عن تحديد المشاكل وحلّها، يُرجى الاطّلاع على مقالة عرض المزيد من البيانات لتتبُّع معيّن.
لماذا لا يكون عدد العيّنات على النحو المتوقّع؟
يجمع تطبيق Performance Monitoring بيانات الأداء من أجهزة مستخدمي تطبيقك. إذا كان تطبيقك يضمّ العديد من المستخدمين أو إذا كان يُنشئ قدرًا كبيرًا من أنشطة الأداء، قد يقتصر جمع البيانات على مجموعة فرعية من الأجهزة في Performance Monitoring بهدف تقليل عدد الأحداث التي تتم معالجتها. هذه الحدود عالية بما يكفي لكي تظل قيم المقاييس تمثل تجربة المستخدم للتطبيق، حتى مع انخفاض عدد الأحداث.
لإدارة حجم البيانات التي نجمعها، يستخدم Performance Monitoring خيارات أخذ العينات التالية:
وضع حدود لمعدّل الإرسال على الجهاز: لمنع الجهاز من إرسال كميات مفاجئة من عمليات التتبّع، نحدّ من عدد عمليات تتبّع الرموز البرمجية وطلبات الشبكة المُرسَلة من الجهاز إلى 300 حدث كل 10 دقائق. تحمي هذه الطريقة الجهاز من الأدوات المتكرّرة التي يمكنها إرسال كميات كبيرة من بيانات الأداء، و تمنع جهازًا واحدًا من تشويه قياسات الأداء.
التحليل الديناميكي: Performance Monitoring يجمع عددًا محدودًا من عمليات تتبُّع الرموز البرمجية وعمليات تتبُّع طلبات الشبكة لكل تطبيق يوميًا على مستوى جميع مستخدمي التطبيق. يتم جلب معدّل قياس ديناميكي على الأجهزة (باستخدام Firebase Remote Config) لتحديد ما إذا كان يجب على جهاز عشوائي تسجيل عمليات التتبّع وإرسالها. لا يُرسِل أي جهاز لم يتم اختياره لتحليل عيّنات أي أحداث. يكون معدّل أخذ العينات الديناميكي متعلقًا بالتطبيق ويتم تعديله لضمان بقاء إجمالي حجم البيانات التي يتم جمعها تحت الحدّ المسموح به.
تحصل المشاريع التي فعّلت دمج BigQuery على حدّ أقصى أعلى ل عدد عمليات تتبُّع طلبات الشبكة.
تُرسِل جلسات المستخدمين بيانات إضافية ومفصّلة من جهاز المستخدم، ما يتطلّب مزيدًا من الموارد لتسجيل البيانات وإرسالها. للحدّ من تأثير جلسات المستخدِمين، قد يفرض Performance Monitoring أيضًا قيودًا على عدد الجلسات.
وضع حدود للمعدل من جهة الخادم: لضمان عدم تجاوز التطبيقات حدود تحليل عيّنات الأداء، قد تستخدم Performance Monitoring تحليل عيّنات الأداء من جهة الخادم لحذف بعض الأحداث التي يتم تلقّيها من الأجهزة. على الرغم من أنّ هذا النوع من التقييد لا يغيّر فعالية مقاييسنا، إلا أنّه قد يتسبب في حدوث تغييرات طفيفة في الأنماط، بما في ذلك ما يلي:
- يمكن أن يختلف عدد عمليات التتبّع عن عدد المرات التي تم فيها تنفيذ قطعة من الرمز البرمجي.
- قد تحتوي كل عملية تتبُّع مرتبطة ارتباطًا وثيقًا في الرمز البرمجي على عدد مختلف من عيّنات.
ماذا حدث لعلامة التبويب المشاكل في وحدة التحكّم؟
لقد استبدلنا علامة التبويب "المشاكل" بميزة "التنبيهات" التي تُعلمك تلقائيًا عند تجاوز الحدود التي تحدّدها. لم يعد عليك التحقّق يدويًا من وحدة تحكّم Firebase لتحديد حالة أحد الحدود الدنيا. للتعرّف على التنبيهات، اطّلِع على إعداد تنبيهات بشأن مشاكل الأداء.
ماذا حدث لعلامتَي التبويب على الجهاز والشبكة في وحدة التحكّم؟ كيف يمكنني عرض عمليات التتبّع التي كانت على هذه الصفحات؟
أعدنا تصميم قسم Performance Monitoring في وحدة تحكّم Firebase لكي تعرض علامة التبويب لوحة البيانات المقاييس الرئيسية وجميع عمليات التتبّع في مساحة واحدة. في إطار عملية إعادة التصميم، أزلنا صفحتَي على الجهاز والشبكة.
يحتوي جدول عمليات التتبّع في أسفل علامة التبويب لوحة البيانات على كلّ المعلومات نفسها التي تعرضها علامتا التبويب على الجهاز والشبكة، ولكن مع بعض الميزات المضافة، بما في ذلك إمكانية ترتيب عمليات التتبّع حسب النسبة المئوية للتغيير لمقياس معيّن. لعرض جميع المقاييس والبيانات المتعلّقة بمسار traced معيّن، انقر على اسم المسار في جدول المسارات.
يمكنك الاطّلاع على عمليات التتبّع في علامات التبويب الفرعية التالية من جدول عمليات التتبّع:
- عمليات تتبُّع طلبات الشبكة (التلقائية والمخصّصة) - علامة التبويب الفرعية طلبات الشبكة
- عمليات تتبُّع الرموز البرمجية المخصّصة: علامة التبويب الفرعية عمليات التتبُّع المخصّصة
- عمليات تتبُّع بدء التطبيق والتطبيق الذي يعمل في المقدّمة والتطبيق الذي يعمل في الخلفية: علامة التبويب الفرعية عمليات التتبُّع المخصّصة
- عمليات تتبُّع عرض الشاشة: علامة التبويب الفرعية عرض الشاشة
- عمليات تتبُّع تحميل الصفحة - علامة التبويب الفرعية تحميل الصفحة
للاطّلاع على تفاصيل عن جدول عمليات التتبّع وعرض المقاييس والبيانات، يُرجى الانتقال إلى صفحة النظرة العامة على وحدة التحكّم (iOS والإصدارات الأحدث | Android | الويب).
لماذا لا يتطابق عدد اللقطات البطيئة والمجمّدة مع ما أتوقّعه؟
يتم احتساب اللقطات التي يتم عرضها ببطء واللقطات المتوقّفة باستخدام معدل إعادة تحميل جهاز افتراضي يبلغ 60 هرتز. إذا كان معدّل تحديث الشاشة على الجهاز أقل من 60 هرتز، سيكون وقت عرض كل لقطة أبطأ لأنّه يتم عرض عدد أقل من اللقطات في الثانية. يمكن أن تؤدي أوقات العرض البطيئة إلى الإبلاغ عن المزيد من اللقطات البطيئة أو المتوقّفة لأنّ المزيد من اللقطات ستظهر بشكل أبطأ أو ستتوقّف. ومع ذلك، إذا كان معدل التحديث في الجهاز أعلى من 60 هرتز، سيكون وقت عرض كل لقطة أسرع. وقد يؤدي ذلك إلى الإبلاغ عن عدد أقل من اللقطات البطيئة أو المتوقّفة. هذا هو أحد الصعوبات التي تواجهك حاليًا في حزمة SDK لنظام التشغيل Performance Monitoring.
لماذا لا يمكنني الاطّلاع على عمليات تتبُّع المقاطع؟
للاطّلاع على أداء الأجزاء بالإضافة إلى نشاط التطبيق، تأكَّد من أنّ تطبيقك يستخدم الإصدار 20.1.0 أو إصدار أحدث من حزمة تطوير البرامج (SDK) لنظام التشغيل Performance Monitoring. لمزيد من المعلومات، يُرجى الاطّلاع على مقالة إضافة ميزة "مراقبة الأداء" إلى تطبيقك.
كيف يمكنني معرفة عمليات التتبّع المرتبطة بالمقاطع والأنشطة؟
يستند كلّ من تتبُّع المقتطفات والأنشطة إلى اسم الفئة كما هو محدّد في تطبيقك. يحتوي كلّ من عمليات تتبُّع الشاشة على البادئة st يليها اسم الفئة. في وحدة تحكُّم Firebase، تتم إزالة البادئة. لمزيد من المعلومات، يُرجى الاطّلاع على التعرّف على بيانات أداء عرض الشاشة (تطبيقات Apple وAndroid) .
لماذا أرى عددًا أقل من عمليات تتبُّع الشظايا مقارنةً بعمليات التتبُّع الأخرى؟
Performance Monitoring تُجري تحليل عينات الأحداث على جميع الأحداث التي يتم جمعها على أحد الأجهزة. يتيح لنا هذا النهج جمع الحد الأدنى من الأحداث المطلوبة من أجهزة المستخدمين لتوفير مقاييس الأداء.
كيف يتم إعلامي عند حدوث مشكلة في أداء عرض تطبيقي؟
تتيح لك ميزة Performance Monitoring إعداد تنبيهات للمقاييس التي تهمّك. بالنسبة إلى تتبُّعات عرض الشاشة التي تم إنشاؤها، يمكنك إعداد تنبيهات لإعلامك عندما تتجاوز النسبة المئوية للإطارات البطيئة والمجمّدة الحدّ الذي تحدّده.
تستغرق عملية الإنشاء وقتًا طويلاً بعد تفعيل المكوّن الإضافي Performance Monitoring Gradle. كيف يمكنني تحسين ذلك؟
يستخدم Performance Monitoring لنظام التشغيل Android أدوات فحص الرمز الثنائي لتوفير بعض الميزات الجاهزة للاستخدام، مثل مراقبة طلبات الشبكة باستخدام بروتوكول HTTP/S. كجزء من عملية الترجمة، تتطلّب العملية تكرار جميع فئات تطبيقك (بما في ذلك التبعيات) لإعداد الرمز البرمجي المهم في قياس أداء طلبات الشبكة لتطبيقك.
في ما يلي بعض العوامل الرئيسية التي تساهم في زيادة وقت الإنشاء:
- عدد الصفوف أو الملفات
- حجم كلّ فئة من هذه الفئات (أسطر الرمز البرمجي)
- إعدادات جهازك
- الإصدار الأولي مقارنةً بالإصدار اللاحق (عادةً ما يكون الإصدار اللاحق أسرع من الإصدار الأولي)
لتحسين وقت الإنشاء، ننصحك بتقسيم الرمز إلى وحدات.
بدءًا من الإصدار 1.3.3 من المكوّن الإضافي Performance Monitoring، ركّزنا على إجراء تحسينات مهمة في معالجة الإنشاء المتزايد وتخزين بيانات الإدخال في المكتبة. للحصول على أحدث التحسينات في وقت إنشاء التطبيق، تأكَّد من استخدام أحدث إصدار من المكوّن الإضافي (الإصدار 1.4.2).
تجدر الإشارة إلى أنّه يمكنك إيقاف الإضافة Performance Monitoring لإصدارات تصحيح الأخطاء على الجهاز المحلي إذا كنت تريد تجنُّب أوقات الإنشاء الطويلة. ومع ذلك، لا يُنصح باستخدام هذا النهج مع إصدارات الإصدار العلني، لأنّ ذلك قد يؤدي إلى عدم تسجيل قياسات الأداء لطلبات الشبكة في تطبيقك.
ما الذي يجب فعله في حال ظهور أخطاء في عملية الإنشاء بسبب عدم توافق المكتبات مع المكوّن الإضافي Performance Monitoring Gradle؟
يستخدم Performance Monitoring لنظام التشغيل Android أدوات فحص الرمز الثنائي لتوفير بعض الميزات الجاهزة للاستخدام، مثل مراقبة طلبات الشبكة باستخدام بروتوكول HTTP/S. كجزء من عملية الترجمة، تتطلّب العملية تكرار جميع فئات تطبيقك (بما في ذلك التبعيات) لإعداد الرمز البرمجي المهم في قياس أداء طلبات الشبكة لتطبيقك.
إذا ظهرت لك أخطاء في عملية التصميم مثل JSR/RET are not supported with
computeFrames option
أو أخطاء مشابهة بعد الدمج مع المكوّن الإضافي Performance Monitoring،
قد يرجع ذلك إلى أنّ لديك أيضًا تبعية لمكتبة غير متوافقة
مع المكوّن الإضافي Performance Monitoring Gradle.
لحلّ هذه المشكلة، يمكنك استبعاد الفئات أو المكتبات غير المتوافقة من الأدوات باتّباع الخطوات التالية:
- ثبِّت أحدث إصدار من Performance Monitoring المكوّن الإضافي لنظام Gradle (الإصدار 1.4.0 بحد أدنى).
- حدِّث الإصدار 7.2.0 من المكوّن الإضافي لنظام Gradle المتوافق مع Android أو إصدار أحدث.
- أضِف العلامة التالية إلى ملف
build.gradle
للوحدة (على مستوى التطبيق) لاستبعاد الفئات أو المكتبات غير المتوافقة من الفحص:android { // ... androidComponents { onVariants(selector().all(), { instrumentation.excludes.add("example.incompatible.library") }) } }
لمزيد من المعلومات عن سمةexclude
لواجهة برمجة التطبيقاتInstrumentation
في المكوّن الإضافي 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: الإصدار 7.3.0 أو إصدار أحدث
- tvOS: الإصدار 8.9.0 أو إصدار أحدث
- Android: الإصدار 19.0.10 أو إصدار أحدث (أو Firebase Android BoM الإصدار 26.1.0 أو إصدار أحدث)
- الويب: الإصدار 7.14.0 أو إصدار أحدث
يُرجى العِلم أنّنا ننصح دائمًا باستخدام أحدث إصدار من حزمة SDK، ولكن أي إصدار من الحزمة مُدرَج أعلاه سيتيح لتطبيق Performance Monitoring معالجة بياناتك في وقتٍ يقترب من الزمن الفعلي.
ما هي إصدارات حزمة تطوير البرامج (SDK) من Performance Monitoring التي تُعدّ متوافقة مع الوقت الفعلي؟
في ما يلي إصدارات حزمة SDK المتوافقة مع معالجة البيانات في الوقت الفعلي:
- iOS: الإصدار 7.3.0 أو إصدار أحدث
- tvOS: الإصدار 8.9.0 أو إصدار أحدث
- Android: الإصدار 19.0.10 أو إصدار أحدث (أو Firebase Android BoM الإصدار 26.1.0 أو إصدار أحدث)
- الويب: الإصدار 7.14.0 أو إصدار أحدث
يُرجى العِلم أنّنا ننصح دائمًا باستخدام أحدث إصدار من حزمة SDK، ولكن أي إصدار من الحزمة مُدرَج أعلاه سيتيح لتطبيق Performance Monitoring معالجة بياناتك في وقتٍ يقترب من الزمن الفعلي.
ماذا يحدث إذا لم أتحّدث تطبيقي لاستخدام إصدار متوافق مع الوقت الفعلي من حزمة SDK؟
إذا كان تطبيقك لا يستخدم إصدارًا متوافقًا مع ميزة "الأداء في الوقت الفعلي"، سيظل بإمكانك الاطّلاع على جميع بيانات أداء تطبيقك في وحدة تحكّم Firebase. ومع ذلك، سيتم تأخير عرض بيانات الأداء لمدة 36 ساعة تقريبًا من وقت جمعها.
لقد أجريت تحديثًا إلى إصدار متوافق من حزمة SDK في الوقت الفعلي، ولكن لا يزال بعض المستخدمين يستخدمون إصدارات قديمة من تطبيقي. هل سيستمر ظهور بيانات أدائهم في وحدة تحكّم Firebase؟
نعم. بغض النظر عن إصدار حزمة SDK التي تستخدمها إحدى نُسخ التطبيق، ستظهر لك بيانات الأداء من جميع المستخدمين.
ومع ذلك، إذا كنت تطّلع على بيانات حديثة (أقل من 36 ساعة تقريبًا)، تكون البيانات المعروضة من مستخدمي نُسخ التطبيق التي تستخدم إصدارًا من حزمة SDK متوافقًا مع الوقت الفعلي. في المقابل، تتضمّن البيانات غير الحديثة بيانات الأداء من جميع إصدارات تطبيقك.
التواصل مع فريق دعم Firebase
إذا أردت التواصل مع فريق دعم Firebase، أدرِج دائمًا رقم تعريف تطبيق Firebase. ابحث عن رقم تعريف تطبيقك على Firebase في بطاقة تطبيقاتك ضمن settings إعدادات المشروع.