بعد بضع ثوانٍ، ابحث عن طلب شبكة إلى
firebaselogging.googleapis.com في أدوات المطوّرين في المتصفّح. يشير توفّر طلب البيانات من الشبكة إلى أنّ المتصفّح يرسل بيانات الأداء إلى Firebase.
إذا كنت بصدد بدء استخدام Performance Monitoring
(iOS+ |
Android |
الويب)، يمكن أن تساعدك نصائح تحديد المشاكل وحلّها التالية في معالجة المشاكل التي تتضمّن رصد Firebase لحزمة SDK أو عرض أول بيانات أداء في وحدة تحكّم Firebase.
تمت إضافة حزمة SDK إلى التطبيق، ولكن لا يزال يطلب منك إضافة حزمة SDK في وحدة التحكّم
يمكن لبرنامج Firebase رصد ما إذا أضفت Performance Monitoring SDK إلى تطبيقك بنجاح
عندما يتلقّى معلومات الأحداث (مثل التفاعلات مع التطبيق) من تطبيقك.
في غضون 10 دقائق من بدء تشغيل تطبيقك، ستعرض لوحة بياناتFirebase في وحدة التحكّم رسالة "تم رصد حزمة SDK". بعد ذلك، يعرض لوحة البيانات البيانات الأولية المعالَجة في غضون 30 دقيقة.
إذا مرّ أكثر من 10 دقائق منذ إضافة أحدث إصدار من حزمة SDK إلى تطبيقك، ولم يظهر أي تغيير، يُرجى التحقّق من رسائل السجلّ للتأكّد من أنّ Performance Monitoring يسجّل الأحداث. جرِّب خطوات تحديد المشاكل وحلّها المناسبة كما هو موضّح أدناه لتحديد المشاكل وحلّها في رسالة تأخُّر رصد حزمة SDK.
تسجيل التطبيق للأحداث: خطوات تحديد المشاكل وحلّها
إذا كنت لا تزال في مرحلة التطوير على الجهاز المحلي، جرِّب إنشاء المزيد من الأحداث لجمع البيانات:
عرض تطبيق الويب واستخدامه في بيئة محلية
يمكنك إنشاء أحداث من خلال تحميل صفحات فرعية لموقعك الإلكتروني، والتفاعل مع تطبيقك، و/أو تشغيل طلبات الشبكة. احرص على إبقاء علامة تبويب المتصفّح مفتوحة لمدة 10 ثوانٍ على الأقل بعد تحميل الصفحة.
تأكَّد من إضافة عنصر إعدادات Firebase بشكل صحيح إلى تطبيقك ومن أنّك لم تعدِّل العنصر. على وجه التحديد، تحقَّق مما يلي:
تأكَّد من أنّ رقم تعريف تطبيق الويب على Firebase (appId) في عنصر الإعداد صحيح لتطبيقك. يمكنك العثور على رقم تعريف تطبيقك على Firebase في بطاقة تطبيقاتك ضمن settingsإعداداتsettings المشروع.
إذا بدا أنّ هناك خطأ في عنصر الإعدادات في تطبيقك، جرِّب ما يلي:
احذف عنصر الإعداد المتوفّر حاليًا في تطبيقك.
اتّبِع هذه التعليمات للحصول على عنصر إعداد جديد وإضافته إلى تطبيقك على الويب.
إذا كانت حزمة تطوير البرامج (SDK) تسجّل الأحداث ويبدو أنّ كل شيء تم إعداده بشكل صحيح، ولكنّك لا تزال لا ترى رسالة رصد حزمة تطوير البرامج (SDK) أو البيانات المعالَجة (بعد ساعتين)، يُرجى التواصل مع فريق دعم Firebase.
إذا كان التطبيق لا يسجّل الأحداث:
خطوات تحديد المشاكل وحلّها
تفيد أداة SDK Console بأنّه تم رصد حزمة SDK، ولكن لا يتم عرض أي بيانات
تعالج Performance Monitoring بيانات أحداث الأداء قبل عرضها في لوحة بيانات الأداء.
إذا مرّ أكثر من 24 ساعة على ظهور الرسالة "تم رصد حزمة SDK"،
ولم تظهر لك البيانات بعد، راجِع لوحة بيانات حالة Firebase لمعرفة ما إذا كان هناك انقطاع معروف في الخدمة. إذا لم يكن هناك انقطاع، اتصل بدعم Firebase.
الإجراءات العامّة لتحديد المشاكل وحلّها
إذا أضفت حزمة SDK بنجاح وكنت تستخدم Performance Monitoring في تطبيقك، يمكن أن تساعدك نصائح تحديد المشاكل وحلّها التالية في معالجة المشاكل العامة التي تتضمّن ميزات وأدوات Performance Monitoring.
لوحة بيانات الأداء لا تتضمّن بيانات مهلة الاستجابة لأوّل إدخال
إذا لم تظهر لك بيانات مقياس وقت الاستجابة لأول إدخال، جرِّب اتّباع الخطوات التالية لتحديد المشاكل وحلّها:
يُرجى العِلم أنّ Performance Monitoring لا تسجّل مقياس تأخّر الاستجابة لأول إدخال إلا عندما ينقر مستخدم على صفحة الويب خلال أول 5 ثوانٍ بعد تحميل الصفحة.
تأكَّد من إعداد تطبيقك لقياس هذا المقياس. يتطلّب مقياس مهلة الاستجابة لأوّل إدخالإعدادًا يدويًا.
على وجه التحديد، عليك إضافة مكتبة polyfill لهذا المقياس. للحصول على تعليمات التثبيت، يُرجى الرجوع إلى المستندات الخاصة بالمكتبة.
يُرجى العِلم أنّ إضافة مكتبة polyfill هذه غير مطلوبة لكي تعرض Performance Monitoring مقاييس أخرى لتطبيقات الويب.
لوحة بيانات الأداء لا تتضمّن بيانات التتبُّع المخصّصة
هل تظهر لك بيانات الأداء لعمليات التتبُّع التي يتم جمعها تلقائيًا ولكن ليس لعمليات تتبُّع الرموز المخصّصة؟ جرِّب الخطوات التالية لتحديد المشاكل وحلّها:
تحقَّق من إعدادات عمليات تتبُّع الرموز المخصّصة التي تمّت إضافتها من خلال
Trace API،
خاصةً ما يلي:
يجب أن تستوفي أسماء عمليات تتبُّع الرموز المخصّصة والمقاييس المخصّصة المتطلبات التالية: ألا تتضمّن مسافات بيضاء في البداية أو النهاية، وألا تبدأ بشرطة سفلية (_)، وألا يتجاوز طولها 32 حرفًا.
يجب بدء جميع عمليات التتبُّع وإيقافها. لن يتم تسجيل أي عملية تتبُّع لم يتم بدؤها أو إيقافها أو تم إيقافها قبل بدئها.
يُرجى العِلم أنّه في حال استخدام طريقة
record()،
لن تحتاج إلى بدء التتبُّع أو إيقافه بشكل صريح.
يتحكّم هذا الخيار في جمع البيانات لعمليات تتبُّع الرموز المخصّصة فقط (وليس جميع البيانات).
راجِع رسائل السجلّ للتأكّد من أنّ Performance Monitoring يسجّل عمليات التتبُّع المتوقّعة للرموز المخصّصة.
إذا كان Performance Monitoring يسجّل الأحداث، ولكن لم يتم عرض أي بيانات بعد مرور 24 ساعة، يُرجى التواصل مع فريق دعم Firebase.
لوحة بيانات الأداء
لا تتضمّن بيانات طلبات الشبكة
في حال عدم توفّر بيانات طلبات الشبكة، يُرجى الانتباه إلى ما يلي:
تجمع Performance Monitoring تلقائيًا مقاييس لطلبات الشبكة التي تبلغ عنها واجهة برمجة التطبيقات للمتصفّح. لا تتضمّن هذه التقارير طلبات الشبكة غير الناجحة.
استنادًا إلى سلوك الرمز ومكتبات الشبكات المستخدَمة في الرمز، قد لا يبلغ Performance Monitoring إلا عن طلبات الشبكة التي تم إكمالها.
وهذا يعني أنّه قد لا يتم الإبلاغ عن اتصالات HTTP/S التي تظل مفتوحة.
لا يتم تجميع بيانات طلبات الشبكة على النحو المتوقّع
ماذا حدث لميزة "أبرز المشاكل" في بطاقة "الأداء" على "الصفحة الرئيسية للمشروع"؟
استبدلنا أهم المشاكل بـ التنبيهات الأخيرة في إطار متابعتنا
لإطلاق التنبيهات مؤخرًا، وهي تنبّهك تلقائيًا عند تجاوز الحدود التي حدّدتها. تم إيقاف ميزة "المشاكل" نهائيًا
واستبدالها بالتنبيهات.
تؤدي أداة اختيار التطبيقات في أعلى بطاقة "الأداء" إلى فلترة إدخالات التنبيه ضمن التنبيهات الأخيرة. يتم عرض آخر ثلاثة تنبيهات فقط للتطبيقات المحدّدة.
ماذا حدث لإمكانية ضبط الحدود الدنيا للمشاكل في وحدة التحكّم؟
يتيح Performance Monitoring إعداد تنبيهات للمقاييس التي تتجاوز الحدود المحدّدة. لتجنُّب حدوث أي التباس مع الحدود القابلة للضبط لمقاييس الأداء، أزلنا إمكانية ضبط الحدود للمشاكل.
ماذا حدث لمعلومات "التفاصيل والمقاييس" في وحدة تحكّم Firebase؟
استبدلنا صفحتَي "التفاصيل" و"المقاييس" بواجهة مستخدم مركزية جديدة أعيد تصميمها لتحسين طريقة تحديد المشاكل وحلّها. تقدّم واجهة المستخدِم الجديدة لتحديد المشاكل وحلّها الوظائف الأساسية نفسها التي كانت تقدّمها صفحة "التفاصيل" و"المقاييس". لمزيد من المعلومات حول تحديد المشاكل وحلّها، يمكنك الاطّلاع على عرض المزيد من البيانات لتتبُّع معيّن.
لماذا لا يكون عدد العيّنات كما أتوقّع؟
يجمع Performance Monitoring بيانات الأداء من أجهزة المستخدمين التي تستخدم تطبيقك. إذا كان تطبيقك يتضمّن عددًا كبيرًا من المستخدمين أو إذا كان التطبيق ينشئ قدرًا كبيرًا من نشاط الأداء، قد تحدّ Performance Monitoring من جمع البيانات إلى مجموعة فرعية من الأجهزة لتقليل عدد الأحداث التي تتم معالجتها. هذه الحدود مرتفعة بما يكفي لضمان أنّ قيم المقاييس تظل معبّرة عن تجربة المستخدم في تطبيقك، حتى مع عدد أقل من الأحداث.
لإدارة حجم البيانات التي نجمعها، تستخدم Performance Monitoring خيارات أخذ العيّنات التالية:
الحدّ من المعدّل على الجهاز: لمنع الجهاز من إرسال دفعات مفاجئة من عمليات التتبُّع، نضع حدًا أقصى لعدد عمليات تتبُّع الرموز وطلبات الشبكة التي يتم إرسالها من الجهاز، وهو 300 حدث كل 10 دقائق. يحمي هذا النهج الجهاز من عمليات القياس المتكرّرة التي يمكن أن ترسل كميات كبيرة من بيانات الأداء، كما يمنع جهازًا واحدًا من تشويه قياسات الأداء.
أخذ العيّنات الديناميكي: تجمع Performance Monitoring عددًا محدودًا من عمليات تتبُّع الرموز وعمليات تتبُّع طلبات الشبكة لكل تطبيق يوميًا على مستوى جميع مستخدمي التطبيق. يتم استرداد معدّل أخذ العيّنات الديناميكي على الأجهزة (باستخدام Firebase Remote Config) لتحديد ما إذا كان يجب أن يسجّل جهاز عشوائي عمليات تتبُّع ويرسلها. لا يرسل الجهاز الذي لم يتم اختياره لأخذ العيّنات أي أحداث. معدّل أخذ العيّنات الديناميكي خاص بالتطبيق ويتم تعديله لضمان بقاء إجمالي حجم البيانات التي يتم جمعها أقل من الحدّ الأقصى.
ترسل جلسات المستخدم بيانات إضافية ومفصّلة من جهاز المستخدم، ما يتطلّب المزيد من الموارد لتسجيل البيانات وإرسالها. للحدّ من تأثير جلسات المستخدمين، قد تفرض Performance Monitoring أيضًا قيودًا على عدد الجلسات.
الحدّ من المعدّل من جهة الخادم: لضمان عدم تجاوز التطبيقات الحدّ الأقصى لأخذ العيّنات، قد تستخدم Performance Monitoring أخذ العيّنات من جهة الخادم لإسقاط بعض الأحداث التي تم تلقّيها من الأجهزة. على الرغم من أنّ هذا النوع من القيود لا يغيّر فعالية مقاييسنا، إلا أنّه قد يؤدي إلى حدوث تغييرات طفيفة في الأنماط، بما في ذلك ما يلي:
يمكن أن يختلف عدد عمليات التتبُّع عن عدد المرّات التي تم فيها تنفيذ جزء من الرمز.
قد يحتوي كل تتبُّع مرتبط ارتباطًا وثيقًا في الرمز على عدد مختلف من العيّنات.
ماذا حدث لعلامة التبويب المشاكل في وحدة التحكّم؟
استبدلنا علامة التبويب "المشاكل" بميزة "التنبيهات" التي
تُعلمك تلقائيًا عند تجاوز الحدود التي حدّدتها. لم يعُد عليك التحقّق يدويًا من وحدة تحكّم Firebase لتحديد حالة الحدّ. لمزيد من المعلومات عن التنبيهات، اطّلِع على إعداد تنبيهات بشأن مشاكل الأداء.
ماذا حدث لعلامتَي التبويب على الجهاز والشبكة في وحدة التحكّم؟
كيف يمكنني عرض عمليات التتبُّع التي تم إجراؤها على هذه الصفحات؟
أعدنا تصميم قسم Performance Monitoring في وحدة تحكّم Firebase لكي تعرض علامة التبويب لوحة البيانات مقاييسك الرئيسية وجميع عمليات التتبُّع في مكان واحد. في إطار عملية إعادة التصميم، أزلنا صفحتَي على الجهاز والشبكة.
يحتوي جدول عمليات التتبُّع في أسفل علامة التبويب لوحة البيانات على المعلومات نفسها التي تعرضها علامتا التبويب على الجهاز والشبكة، ولكن مع بعض الميزات الإضافية، بما في ذلك إمكانية ترتيب عمليات التتبُّع حسب النسبة المئوية للتغيير في مقياس معيّن. لعرض جميع المقاييس والبيانات الخاصة بتتبُّع معيّن، انقر على اسم التتبُّع في جدول عمليات التتبُّع.
يمكنك الاطّلاع على عمليات التتبُّع في علامات التبويب الفرعية التالية من جدول عمليات التتبُّع:
عمليات تتبُّع طلبات الشبكة (الجاهزة والمخصّصة) — علامة التبويب الفرعية طلبات الشبكة
عمليات تتبُّع الرموز المخصّصة — علامة التبويب الفرعية عمليات التتبُّع المخصّصة
عمليات التتبُّع لبدء تشغيل التطبيق وتشغيله في المقدّمة والخلفية: علامة التبويب الفرعية عمليات التتبُّع المخصّصة
عمليات تتبُّع عرض الشاشة: علامة التبويب الفرعية عرض الشاشة
عمليات تتبُّع تحميل الصفحة — علامة التبويب الفرعية تحميل الصفحة
للحصول على تفاصيل حول جدول عمليات التتبُّع وعرض المقاييس والبيانات، انتقِل إلى صفحة نظرة عامة على وحدة التحكّم
(iOS+ |
Android |
الويب).
لماذا لا يتطابق عدد اللقطات البطيئة والمجمّدة مع ما أتوقّعه؟
يتم احتساب لقطات العرض البطيء واللقطات المجمدة بافتراض أنّ معدّل إعادة تحميل الجهاز هو 60 هرتز. إذا كان معدّل إعادة تحميل الجهاز أقل من 60 هرتز، سيستغرق عرض كل لقطة وقتًا أطول لأنّه يتم عرض عدد أقل من اللقطات في الثانية.
يمكن أن تؤدي أوقات العرض الأبطأ إلى تسجيل المزيد من اللقطات البطيئة أو المجمدة، لأنّه سيتم عرض المزيد من اللقطات بشكل أبطأ أو ستتجمّد. ومع ذلك، إذا كان معدّل إعادة تحميل الجهاز أعلى من 60 هرتز، سيكون وقت عرض كل لقطة أسرع.
يمكن أن يؤدي ذلك إلى تسجيل عدد أقل من اللقطات البطيئة أو المجمدة. هذه القيود الحالية في حزمة تطوير البرامج (SDK) الخاصة بـ Performance Monitoring.
كيف يمكنني إضافة حزمة تطوير البرامج (SDK) الأصغر حجمًا والمقسّمة إلى مساحات اسم Performance Monitoring JS (حزمة تطوير البرامج "المستقلة") إلى تطبيق الويب الخاص بي؟
إذا كان Performance Monitoring هو منتج Firebase الوحيد في تطبيقك، يمكنك استخدام حزمة تطوير البرامج (SDK) المستقلة Performance Monitoring (ونص البرنامج الأساسي المقترَح أدناه) إذا كنت مهتمًا بما يلي:
استخدام مكتبة ذات مساحة اسم
تقليل حجم حزمة SDK
تأخير عملية إعداد حزمة تطوير البرامج (SDK) إلى ما بعد تحميل صفحتك
لتضمين حزمة Performance Monitoring SDK المستقلة في تطبيقك وتأخير عملية تهيئتها إلى ما بعد تحميل صفحتك، اتّبِع الخطوات التالية:
يحمّل النص البرمجي أعلاه حزمة SDK المستقلة بشكل غير متزامن، ثم يبدأ Firebase بعد تنشيط حدث onload للنافذة. تؤدي هذه الطريقة إلى تقليل التأثير الذي يمكن أن تحدثه حزمة SDK في مقاييس تحميل الصفحة، لأنّ المتصفّح قد أبلغ عن مقاييس التحميل عند تهيئة حزمة SDK.
مزيد من المعلومات عن حزمة تطوير البرامج (SDK) المستقلة Performance Monitoring ونص البرمجة الخاص بالعنوان
تم تحسين حزمة تطوير البرامج (SDK) المستقلة هذه من حيث الحجم، ويبلغ حجمها حوالي 10 كيلوبايت بعد ضغطها باستخدام gzip. إنه يحتوي على جميع وظائف Firebase Performance Monitoring بالإضافة إلى مجموعة بسيطة من وظائف SDK الأساسية لـ Firebase أيضًا.
يستخدم Firebase Performance Monitoring واجهات برمجة التطبيقات fetch وPromise والتي لا تتوفر في المتصفحات القديمة. يتم تضمين رموز التعبئة لواجهات برمجة التطبيقات هذه في حزمة Firebase Performance Monitoring JS SDK العادية، ولكن يتم حذفها من حزمة SDK المستقلة لتقليل الحجم.
تعتمد حزمة تطوير البرامج (SDK) Performance Monitoring جزئيًا على
Resource Timing API
للحصول على مقاييس تحميل الصفحات من المتصفّح.
يوضّح المقتطف التالي النص البرمجي للعنوان الذي يتضمّن تأخيرًا في عملية تهيئة حزمة SDK:
(function(sdkSource,firebaseConfigObject){functionload(f,c){//CreatesascripttagtoloadthestandaloneSDKvarsdkScript=document.createElement('script');//Setsittoanasyncscriptsothatitdoesn't interfere with page loadsdkScript.async=1;//SetsthesourceofthescriptsdkScript.src=f;//Insertsthescriptintotheheadofthepagevars=document.getElementsByTagName('script')[0];s.parentNode.insertBefore(sdkScript,s);}//Callstheloadmethodload(sdkSource);//InitializestheSDKonlywhentheonloadmethodiscalledwindow.addEventListener('load',function(){firebase.initializeApp(firebaseConfigObject).performance();});})(performance_standalone,firebaseConfig);
المكان
performance_standalone هي 'https://www.gstatic.com/firebasejs/12.6.0/firebase-performance-standalone.js'
ماذا تعني بيانات الأداء "في الوقت الفعلي تقريبًا"؟
تعالج Firebase Performance Monitoring بيانات الأداء التي يتم جمعها فور ورودها، ما يؤدي إلى عرض البيانات في الوقت الفعلي التقريبي في وحدة تحكّم Firebase. يتم عرض البيانات المعالَجة في وحدة التحكّم في غضون بضع دقائق من جمعها، ومن هنا جاء مصطلح "الوقت الفعلي التقريبي".
كيف يمكنني الحصول على بيانات أداء في الوقت الفعلي التقريبي لتطبيقي؟
للاستفادة من ميزة معالجة البيانات في الوقت الفعلي تقريبًا، ما عليك سوى التأكّد من أنّ تطبيقك يستخدم إصدارًا من حزمة تطوير البرامج (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 متوافقًا مع ميزة "الوقت الفعلي". ومع ذلك، تتضمّن البيانات غير الحديثة بيانات الأداء من جميع إصدارات تطبيقك.
التواصل مع فريق دعم Firebase
إذا تواصلت مع فريق دعم Firebase، احرص دائمًا على تضمين رقم تعريف تطبيقك على Firebase. يمكنك العثور على رقم تعريف تطبيقك على Firebase في بطاقة تطبيقاتك ضمن settingsإعدادات المشروع.