توفر هذه الصفحة نصائح حول استكشاف الأخطاء وإصلاحها لبدء استخدام مراقبة الأداء أو استخدام ميزات وأدوات مراقبة الأداء.
الشيكات الأولى لاستكشاف الأخطاء وإصلاحها
يعد الفحصان التاليان من أفضل الممارسات العامة الموصى بها لأي شخص قبل إجراء المزيد من استكشاف الأخطاء وإصلاحها.
1. تحقق من رسائل السجل لأحداث الأداء
تحقق من رسائل السجل الخاصة بك للتأكد من أن SDK لمراقبة الأداء يلتقط أحداث الأداء.
افتح أدوات المطور في متصفحك (على سبيل المثال، علامة التبويب "الشبكة" لأدوات تطوير Chrome أو في "مراقبة الشبكة" لمتصفح Firefox ).
قم بتحديث تطبيق الويب الخاص بك في المتصفح.
تحقق من رسائل السجل الخاصة بك بحثًا عن أي رسائل خطأ.
بعد بضع ثوانٍ، ابحث عن اتصال الشبكة بـ
firebaselogging.googleapis.com
في أدوات مطوري متصفحك. يوضح وجود مكالمة الشبكة هذه أن المتصفح يرسل بيانات الأداء إلى Firebase.
إذا كان تطبيقك لا يسجل أحداث الأداء، فراجع نصائح استكشاف الأخطاء وإصلاحها .
2. تحقق من لوحة معلومات حالة Firebase
تحقق من لوحة معلومات حالة Firebase في حالة وجود انقطاع معروف في Firebase أو لمراقبة الأداء.
البدء بمراقبة الأداء
إذا كنت تبدأ في مراقبة الأداء ( iOS+ | Android | الويب )، فيمكن أن تساعدك نصائح استكشاف الأخطاء وإصلاحها التالية في حل المشكلات التي تتضمن اكتشاف Firebase لمجموعة SDK أو عرض بيانات الأداء الأولى في وحدة تحكم Firebase.
يستطيع Firebase اكتشاف ما إذا كنت قد أضفت SDK لمراقبة الأداء إلى تطبيقك بنجاح عندما يتلقى معلومات الحدث (مثل تفاعلات التطبيق) من تطبيقك. عادةً، في غضون 10 دقائق من بدء تطبيقك، تعرض لوحة معلومات الأداء بوحدة تحكم Firebase رسالة "تم اكتشاف SDK". وبعد ذلك، وفي غضون 30 دقيقة، تعرض لوحة المعلومات البيانات الأولية التي تمت معالجتها.
إذا مر أكثر من 10 دقائق منذ إضافة أحدث إصدار من SDK إلى تطبيقك، وما زلت لا ترى أي تغيير، فتحقق من رسائل السجل للتأكد من أن مراقبة الأداء تقوم بتسجيل الأحداث. جرب خطوات استكشاف الأخطاء وإصلاحها المناسبة كما هو موضح أدناه لاستكشاف أخطاء رسالة اكتشاف SDK المتأخرة وإصلاحها.
إذا كنت لا تزال تتطور محليًا، فحاول إنشاء المزيد من الأحداث لجمع البيانات:
خدمة وعرض تطبيق الويب الخاص بك في بيئة محلية.
قم بإنشاء الأحداث عن طريق تحميل الصفحات الفرعية لموقعك، والتفاعل مع تطبيقك، و/أو تشغيل طلبات الشبكة. تأكد من إبقاء علامة تبويب المتصفح مفتوحة لمدة 10 ثوانٍ على الأقل بعد تحميل الصفحة.
تأكد من إضافة كائن تكوين Firebase بشكل صحيح إلى تطبيقك ومن عدم تعديل الكائن. على وجه التحديد، تحقق مما يلي:
- معرف تطبيق الويب Firebase (
appId
) الموجود في كائن التكوين صحيح لتطبيقك. ابحث عن معرف تطبيق Firebase الخاص بك في بطاقة تطبيقاتك الخاصة مشروعك .
إذا بدا أن هناك أي خطأ في كائن التكوين في تطبيقك، فجرّب ما يلي:
احذف كائن التكوين الموجود حاليًا في تطبيقك.
اتبع هذه التعليمات للحصول على كائن تكوين جديد وإضافته إلى تطبيق الويب الخاص بك.
- معرف تطبيق الويب Firebase (
إذا كانت SDK تسجل الأحداث ويبدو أن كل شيء قد تم إعداده بشكل صحيح، ولكنك لا تزال لا ترى رسالة اكتشاف SDK أو البيانات المعالجة (بعد ساعتين)، فاتصل بدعم Firebase .
تأكد من تهيئة SDK لمراقبة الأداء بشكل صحيح في تطبيقك.
تأكد من عدم تعطيل SDK لمراقبة الأداء من خلال العلامة التالية:
-
performance.instrumentationEnabled
-
تأكد من تعطيل التخزين المؤقت للمتصفح الخاص بك، وإلا فقد لا يلتقط المتصفح أي إعدادات جديدة للأجهزة.
أغلق علامة تبويب صفحة الويب ثم أعد فتحها. التحقق من التسجيل مرة أخرى.
إذا قمت للتو بإضافة SDK لمراقبة الأداء في تطبيقك، فقد تحتاج إلى إعادة تشغيل التطبيق بالكامل حتى تبدأ SDK في العمل.
إذا لم تتمكن من العثور على أي شيء معطل في تطبيقك، فاتصل بدعم Firebase .
تقوم مراقبة الأداء بمعالجة بيانات حدث الأداء قبل عرضها في لوحة معلومات الأداء .
إذا مر أكثر من 24 ساعة منذ ظهور رسالة "تم اكتشاف SDK" ، وما زلت لا ترى البيانات، فتحقق من لوحة معلومات حالة Firebase في حالة وجود انقطاع معروف. إذا لم يكن هناك انقطاع، فاتصل بدعم Firebase .
استكشاف الأخطاء وإصلاحها العامة
إذا قمت بإضافة SDK بنجاح وكنت تستخدم مراقبة الأداء في تطبيقك، فيمكن أن تساعد نصائح استكشاف الأخطاء وإصلاحها التالية في حل المشكلات العامة التي تتضمن ميزات وأدوات مراقبة الأداء.
إذا كنت لا ترى رسائل السجل لأحداث الأداء ، فجرب خطوات استكشاف الأخطاء وإصلاحها التالية:
تأكد من تهيئة SDK لمراقبة الأداء بشكل صحيح في تطبيقك.
تأكد من عدم تعطيل SDK لمراقبة الأداء من خلال العلامة التالية:
-
performance.instrumentationEnabled
-
تأكد من تعطيل التخزين المؤقت للمتصفح الخاص بك، وإلا فقد لا يلتقط المتصفح أي إعدادات جديدة للأجهزة.
أغلق علامة تبويب صفحة الويب ثم أعد فتحها. التحقق من التسجيل مرة أخرى.
إذا قمت للتو بإضافة SDK لمراقبة الأداء في تطبيقك، فقد تحتاج إلى إعادة تشغيل التطبيق بالكامل حتى تبدأ SDK في العمل.
إذا لم تتمكن من العثور على أي شيء معطل في تطبيقك، فاتصل بدعم Firebase .
إذا كنت لا ترى بيانات مقياس تأخير الإدخال الأول ، فجرب خطوات استكشاف الأخطاء وإصلاحها التالية:
انتبه إلى أن مراقبة الأداء تسجل فقط مقياس تأخير الإدخال الأول عندما ينقر المستخدم على صفحة الويب خلال أول 5 ثوانٍ بعد تحميل الصفحة.
تأكد من إعداد تطبيقك لقياس هذا المقياس. يتطلب مقياس تأخير الإدخال الأول إعدادًا يدويًا . على وجه التحديد، تحتاج إلى إضافة مكتبة polyfill لهذا المقياس. للحصول على تعليمات التثبيت، راجع وثائق المكتبة.
لاحظ أن إضافة مكتبة polyfill هذه غير مطلوب لمراقبة الأداء للإبلاغ عن مقاييس تطبيق الويب الأخرى.
هل تشاهد بيانات الأداء لعمليات التتبع التي تم جمعها تلقائيًا ولكن ليس لعمليات التتبع المخصصة للتعليمات البرمجية ؟ جرب خطوات استكشاف الأخطاء وإصلاحها التالية:
تحقق من إعداد آثار التعليمات البرمجية المخصصة التي يتم إعدادها عبر Trace API ، خاصة ما يلي:
- يجب أن تستوفي أسماء تتبعات التعليمات البرمجية المخصصة والمقاييس المخصصة المتطلبات التالية: لا توجد مسافة بيضاء بادئة أو لاحقة، ولا يوجد حرف سفلي بادئ (
_
) والحد الأقصى للطول هو 32 حرفًا. - يجب أن تبدأ جميع الآثار وتتوقف. لن يتم تسجيل أي تتبع لم يتم تشغيله أو إيقافه أو إيقافه قبل البدء.
لاحظ أنه إذا كنت تستخدم طريقة
record()
، فلن تحتاج إلى بدء التتبع أو إيقافه بشكل صريح.- يجب أن تستوفي أسماء تتبعات التعليمات البرمجية المخصصة والمقاييس المخصصة المتطلبات التالية: لا توجد مسافة بيضاء بادئة أو لاحقة، ولا يوجد حرف سفلي بادئ (
تأكد من عدم تعطيل جمع بيانات مراقبة الأداء من خلال العلامة التالية:
performance.dataCollectionEnabled
تتحكم هذه العلامة في جمع البيانات لتتبعات التعليمات البرمجية المخصصة فقط (وليس كل البيانات).
تحقق من رسائل السجل الخاصة بك للتأكد من أن مراقبة الأداء تقوم بتسجيل تتبعات التعليمات البرمجية المخصصة المتوقعة.
إذا كانت مراقبة الأداء تقوم بتسجيل الأحداث، ولكن لم يتم عرض أي بيانات بعد 24 ساعة، فاتصل بدعم Firebase .
إذا كنت تفتقد بيانات طلب الشبكة، فكن على علم بما يلي:
تقوم مراقبة الأداء تلقائيًا بجمع المقاييس لطلبات الشبكة التي يتم الإبلاغ عنها بواسطة واجهة برمجة تطبيقات المتصفح. لا تتضمن هذه التقارير طلبات الشبكة الفاشلة.
اعتمادًا على سلوك التعليمات البرمجية ومكتبات الشبكات التي تستخدمها التعليمات البرمجية الخاصة بك، قد تقوم مراقبة الأداء بالإبلاغ فقط عن طلبات الشبكة المكتملة. وهذا يعني أنه قد لا يتم الإبلاغ عن اتصالات HTTP/S التي تُركت مفتوحة.
تعرف على المزيد حول كيفية قيام مراقبة الأداء بتجميع بيانات طلبات الشبكة ضمن أنماط عنوان URL.
يمكنك أيضًا تجربة أنماط URL المخصصة !
التعليمات
لقد استبدلنا أهم المشكلات بالتنبيهات الأخيرة كمتابعة لتقديم التنبيهات مؤخرًا، والتي تُعلمك تلقائيًا عند تجاوز الحدود التي حددتها. تم الآن إهمال المشكلات واستبدالها بالتنبيهات.
يقوم محدد التطبيقات الموجود أعلى بطاقة الأداء بتصفية إدخالات التنبيه ضمن التنبيهات الأخيرة . يتم عرض التنبيهات الثلاثة الأحدث للتطبيق (التطبيقات) المحددة فقط.
لمعرفة المزيد حول التنبيهات، راجع إعداد التنبيهات الخاصة بمشكلات الأداء .
تدعم مراقبة الأداء التنبيهات الخاصة بالمقاييس التي تتجاوز الحدود المحددة. لتجنب الخلط بين هذه الحدود القابلة للتكوين لمقاييس الأداء، قمنا بإزالة القدرة على تكوين الحدود القصوى للمشكلات .
لقد استبدلنا صفحات التفاصيل والمقاييس بواجهة مستخدم مركزية (UI) مُعاد تصميمها حديثًا لتحسين كيفية استكشاف المشكلات وإصلاحها. توفر واجهة المستخدم الجديدة لاستكشاف الأخطاء وإصلاحها نفس الوظائف الأساسية التي توفرها التفاصيل والمقاييس. لمعرفة المزيد حول استكشاف الأخطاء وإصلاحها، راجع عرض المزيد من البيانات لتتبع محدد .
تعمل ميزة مراقبة الأداء على جمع بيانات الأداء من أجهزة مستخدم تطبيقك. إذا كان التطبيق الخاص بك يحتوي على العديد من المستخدمين أو إذا كان التطبيق ينشئ قدرًا كبيرًا من نشاط الأداء، فقد تقصر مراقبة الأداء جمع البيانات على مجموعة فرعية من الأجهزة لتقليل عدد الأحداث التي تمت معالجتها. هذه الحدود مرتفعة بما يكفي، حتى مع وجود عدد أقل من الأحداث، تظل قيم المقياس تمثل تجربة تطبيق المستخدم.
لإدارة حجم البيانات التي نجمعها، تستخدم مراقبة الأداء خيارات أخذ العينات التالية:
تحديد المعدل على الجهاز : لمنع الجهاز من إرسال دفعات مفاجئة من التتبع، فإننا نحد من عدد آثار التعليمات البرمجية وطلبات الشبكة المرسلة من الجهاز إلى 300 حدث كل 10 دقائق. يحمي هذا الأسلوب الجهاز من الأجهزة المتكررة التي يمكنها إرسال كميات كبيرة من بيانات الأداء، ويمنع جهازًا واحدًا من تحريف قياسات الأداء.
أخذ العينات الديناميكية : تجمع مراقبة الأداء حدًا يبلغ حوالي 100 مليون حدث لتتبعات التعليمات البرمجية و100 مليون لتتبعات طلبات الشبكة لكل تطبيق يوميًا عبر جميع مستخدمي التطبيق. يتم جلب معدل أخذ العينات الديناميكي على الأجهزة (باستخدام Firebase Remote Config) لتحديد ما إذا كان يجب على جهاز عشوائي التقاط الآثار وإرسالها. الجهاز الذي لم يتم تحديده لأخذ العينات لا يرسل أية أحداث. يكون معدل أخذ العينات الديناميكي خاصًا بالتطبيق ويتم ضبطه لضمان بقاء الحجم الإجمالي للبيانات المجمعة أقل من الحد الأقصى.
ترسل جلسات المستخدم بيانات إضافية وتفصيلية من جهاز المستخدم، مما يتطلب المزيد من الموارد لالتقاط البيانات وإرسالها. لتقليل تأثير جلسات المستخدم، قد تقوم مراقبة الأداء أيضًا بتقييد عدد الجلسات.
تحديد المعدل من جانب الخادم : للتأكد من أن التطبيقات لا تتجاوز حد أخذ العينات، قد تستخدم مراقبة الأداء أخذ العينات من جانب الخادم لإسقاط بعض الأحداث المستلمة من الأجهزة. على الرغم من أن هذا النوع من القيود لا يغير من فعالية مقاييسنا، إلا أنه قد يتسبب في تغييرات طفيفة في النمط، بما في ذلك ما يلي:
- يمكن أن يختلف عدد عمليات التتبع عن عدد مرات تنفيذ جزء من التعليمات البرمجية.
- قد يكون لكل من الآثار المقترنة بشكل وثيق في التعليمات البرمجية عدد مختلف من العينات.
لقد استبدلنا علامة التبويب "المشاكل" بمقدمة "التنبيهات"، التي تُعلمك تلقائيًا عند تجاوز الحدود التي حددتها. لم تعد بحاجة إلى التحقق يدويًا من وحدة تحكم Firebase لتحديد حالة الحد. للتعرف على التنبيهات، راجع إعداد التنبيهات الخاصة بمشكلات الأداء .
لقد قمنا بإعادة تصميم قسم مراقبة الأداء في وحدة تحكم Firebase بحيث تعرض علامة التبويب لوحة المعلومات مقاييسك الرئيسية وجميع آثارك في مساحة واحدة. وكجزء من عملية إعادة التصميم، قمنا بإزالة الصفحات " على الجهاز" و "الشبكة" .
يحتوي جدول التتبعات الموجود أسفل علامة التبويب لوحة المعلومات على نفس المعلومات التي تعرضها علامتي التبويب على الجهاز والشبكة ، ولكن مع بعض الميزات المضافة، بما في ذلك القدرة على فرز عمليات التتبع حسب النسبة المئوية للتغيير لمقياس معين. لعرض جميع المقاييس والبيانات الخاصة بتتبع معين، انقر فوق اسم التتبع في جدول التتبعات.
اعرض آثارك في علامات التبويب الفرعية التالية لجدول التتبعات:
- تتبعات طلبات الشبكة (سواء المخصصة أو الجاهزة) - علامة التبويب الفرعية لطلبات الشبكة
- آثار التعليمات البرمجية المخصصة — علامة التبويب الفرعية آثار مخصصة
- بدء التطبيق، وتتبعات التطبيق في المقدمة، وتتبعات التطبيق في الخلفية - علامة التبويب الفرعية للتتبعات المخصصة
- آثار عرض الشاشة — علامة التبويب الفرعية لعرض الشاشة
- آثار تحميل الصفحة — علامة التبويب الفرعية لتحميل الصفحة
للحصول على تفاصيل حول جدول التتبعات وعرض المقاييس والبيانات، قم بزيارة صفحة النظرة العامة على وحدة التحكم ( iOS+ | Android | الويب ).
يتم حساب إطارات العرض البطيئة والإطارات المجمدة بمعدل تحديث مفترض للجهاز يبلغ 60 هرتز. إذا كان معدل تحديث الجهاز أقل من 60 هرتز، فسيكون لكل إطار وقت عرض أبطأ لأنه يتم عرض عدد أقل من الإطارات في الثانية. يمكن أن تؤدي أوقات العرض الأبطأ إلى الإبلاغ عن المزيد من الإطارات البطيئة أو المجمدة لأنه سيتم عرض المزيد من الإطارات بشكل أبطأ أو سيتم تجميدها. ومع ذلك، إذا كان معدل تحديث الجهاز أعلى من 60 هرتز، فسيكون لكل إطار وقت عرض أسرع. يمكن أن يؤدي ذلك إلى الإبلاغ عن عدد أقل من الإطارات البطيئة أو المجمدة. يعد هذا قيدًا حاليًا في SDK لمراقبة الأداء.
إذا كانت مراقبة الأداء هي منتج Firebase الوحيد في تطبيقك ، فيمكنك استخدام SDK المستقل SDK (ونص الرأس الموصى به أدناه) إذا كنت مهتمًا بـ:
- باستخدام مكتبة الأسماء
- تقليل حجم حزمة SDK الخاص بك
- تأخير تهيئة SDK حتى بعد تحميل صفحتك
لتضمين مراقبة الأداء المستقل SDK في تطبيقك وتأخير تهيئته بعد تحميل صفحتك:
- أضف البرنامج النصي التالي إلى رأس ملف الفهرس الخاص بك.
- تأكد من إضافة كائن تكوين مشروع Firebase الخاص بتطبيقك.
(function(sa,fbc){function load(f,c){var a=document.createElement('script'); a.async=1;a.src=f;var s=document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(a,s);}load(sa); window.addEventListener('load',function(){firebase.initializeApp(fbc).performance()}); })(performance_standalone, firebaseConfig);
أين،
- performance_standalone هو
'https://www.gstatic.com/firebasejs/10.7.1/firebase-performance.js'
- firebaseConfig هو كائن تكوين Firebase الخاص بالتطبيق الخاص بك
يقوم البرنامج النصي أعلاه بشكل غير متزامن بتحميل SDK المستقل ثم يهيئ Firebase بعد حرائق حدث onload
للنافذة. يقلل هذا التكتيك من تأثير SDK على مقاييس تحميل الصفحة لأن المتصفح قد أبلغ بالفعل عن مقاييس التحميل عند تهيئة SDK.
بالقرب من معالجة البيانات والعرض في الوقت الفعلي
جمعت عمليات مراقبة أداء Firebase بيانات الأداء كما تأتي ، مما يؤدي إلى عرض بيانات في الوقت الفعلي في وحدة التحكم Firebase. تعرض البيانات المعالجة في وحدة التحكم في غضون بضع دقائق من مجموعتها ، ومن ثم المصطلح "بالقرب من الوقت الفعلي".
للاستفادة من معالجة البيانات في الوقت الفعلي ، تأكد من أن تطبيقك يستخدم إصدار SDK متوافق في الوقت الفعلي .
للاستفادة من معالجة البيانات في الوقت الفعلي القريب ، تحتاج فقط إلى التأكد من أن تطبيقك يستخدم إصدار SDK مراقبة الأداء المتوافق مع معالجة البيانات في الوقت الفعلي.
هذه هي إصدارات SDK المتوافقة في الوقت الفعلي:
- iOS - v7.3.0 أو أحدث
- TVOS - v8.9.0 أو أحدث
- Android - v19.0.10 أو أحدث (أو Firebase Android Bom V26.1.0 أو أحدث)
- Web - v7.14.0 أو أحدث
لاحظ أننا نوصي دائمًا باستخدام أحدث إصدار من SDK ، ولكن أي إصدار مدرج أعلاه سيمكن مراقبة الأداء من معالجة بياناتك في الوقت الفعلي.
هذه هي إصدارات SDK متوافقة مع معالجة البيانات في الوقت الفعلي:
- iOS - v7.3.0 أو أحدث
- TVOS - v8.9.0 أو أحدث
- Android - v19.0.10 أو أحدث (أو Firebase Android Bom V26.1.0 أو أحدث)
- Web - v7.14.0 أو أحدث
لاحظ أننا نوصي دائمًا باستخدام أحدث إصدار من SDK ، ولكن أي إصدار مدرج أعلاه سيمكن مراقبة الأداء من معالجة بياناتك في الوقت الفعلي.
إذا لم يستخدم تطبيقك إصدار SDK متوافق في الوقت الفعلي ، فستظل ترى جميع بيانات أداء التطبيق في وحدة التحكم FireBase. ومع ذلك ، سيتم تأخير عرض بيانات الأداء بحوالي 36 ساعة من وقت مجموعتها.
نعم! بغض النظر عن إصدار SDK الذي يستخدمه مثيل التطبيق ، سترى بيانات الأداء من جميع المستخدمين.
ومع ذلك ، إذا كنت تبحث عن البيانات الحديثة (أقل من 36 ساعة تقريبًا) ، فإن البيانات المعروضة هي من مستخدمي مثيلات التطبيق باستخدام إصدار SDK متوافق في الوقت الفعلي. على الرغم من ذلك ، تتضمن البيانات غير المتوقعة بيانات الأداء من جميع إصدارات تطبيقك.
الاتصال بدعم Firebase
إذا تواصلت مع دعم Firebase ، قم دائمًا بتضمين معرف تطبيق Firebase الخاص بك. ابحث عن معرف تطبيق FireBase الخاص بك في بطاقة التطبيقات الخاصة بك من مشروع الإعدادات الخاصة بك.