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