تقدّم هذه الصفحة نصائح لتحديد المشاكل وحلّها في ما يتعلّق بالبدء باستخدام 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.4). لا تتوفّر عمليات تتبُّع عرض الشاشة إلا مع الإصدار 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 متوافقًا مع معالجة data في الوقت الفعلي.
في ما يلي إصدارات حزمة 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 إعدادات المشروع.