توفر هذه الصفحة نصائح حول استكشاف الأخطاء وإصلاحها لبدء استخدام مراقبة الأداء أو استخدام ميزات وأدوات مراقبة الأداء.
الشيكات الأولى لاستكشاف الأخطاء وإصلاحها
يعد الفحصان التاليان من أفضل الممارسات العامة الموصى بها لأي شخص قبل إجراء المزيد من استكشاف الأخطاء وإصلاحها.
1. تحقق من رسائل السجل لأحداث الأداء
تحقق من رسائل السجل الخاصة بك للتأكد من أن SDK لمراقبة الأداء يلتقط أحداث الأداء.
تمكين تسجيل التصحيح، على النحو التالي:
- في Xcode (الإصدار 14.1 الأدنى)، حدد المنتج > المخطط > تحرير المخطط .
- حدد "تشغيل" من القائمة اليسرى، ثم حدد علامة التبويب "الوسائط" .
- في قسم الوسائط التي تم تمريرها عند التشغيل ، أضف
-FIRDebugEnabled
.
تحقق من رسائل السجل الخاصة بك بحثًا عن أي رسائل خطأ.
تقوم مراقبة الأداء بوضع علامة على رسائل السجل الخاصة بها باستخدام
Firebase/Performance
حتى تتمكن من تصفية رسائل السجل الخاصة بك.تحقق من أنواع السجلات التالية التي تشير إلى أن مراقبة الأداء تقوم بتسجيل أحداث الأداء:
-
Logging trace metric: TRACE_NAME , FIREBASE_PERFORMANCE_CONSOLE_URL
-
Logging network request trace: URL
-
انقر على عنوان URL لعرض بياناتك في وحدة تحكم Firebase. قد يستغرق الأمر بضع دقائق حتى يتم تحديث البيانات في لوحة المعلومات.
إذا كان تطبيقك لا يسجل أحداث الأداء، فراجع نصائح استكشاف الأخطاء وإصلاحها .
2. تحقق من لوحة معلومات حالة Firebase
تحقق من لوحة معلومات حالة Firebase في حالة وجود انقطاع معروف في Firebase أو لمراقبة الأداء.
البدء بمراقبة الأداء
إذا كنت تبدأ في مراقبة الأداء ( iOS+ | Android | الويب )، فيمكن أن تساعدك نصائح استكشاف الأخطاء وإصلاحها التالية في حل المشكلات التي تتضمن اكتشاف Firebase لمجموعة SDK أو عرض بيانات الأداء الأولى في وحدة تحكم Firebase.
يستطيع Firebase اكتشاف ما إذا كنت قد أضفت SDK لمراقبة الأداء إلى تطبيقك بنجاح عندما يتلقى معلومات الحدث (مثل تفاعلات التطبيق) من تطبيقك. عادةً، في غضون 10 دقائق من بدء تطبيقك، تعرض لوحة معلومات الأداء بوحدة تحكم Firebase رسالة "تم اكتشاف SDK". وبعد ذلك، وفي غضون 30 دقيقة، تعرض لوحة المعلومات البيانات الأولية التي تمت معالجتها.
إذا مر أكثر من 10 دقائق منذ إضافة أحدث إصدار من SDK إلى تطبيقك، وما زلت لا ترى أي تغيير، فتحقق من رسائل السجل للتأكد من أن مراقبة الأداء تقوم بتسجيل الأحداث. جرب خطوات استكشاف الأخطاء وإصلاحها المناسبة كما هو موضح أدناه لاستكشاف أخطاء رسالة اكتشاف SDK المتأخرة وإصلاحها.
إذا كنت لا تزال تتطور محليًا، فحاول إنشاء المزيد من الأحداث لجمع البيانات:
استمر في تطوير تطبيقك باستخدام جهاز محاكاة أو جهاز اختبار.
قم بإنشاء أحداث عن طريق تبديل تطبيقك بين الخلفية والمقدمة عدة مرات، والتفاعل مع تطبيقك من خلال التنقل عبر الشاشات، و/أو تشغيل طلبات الشبكة.
تأكد من إضافة ملف تكوين Firebase (
Google-Service-Info.plist
) بشكل صحيح إلى تطبيقك ومن عدم تعديل الملف. على وجه التحديد، تحقق مما يلي:لا يتم إلحاق اسم ملف التكوين بأحرف إضافية، مثل
(2)
.ملف التكوين موجود في جذر مشروع XCode الخاص بك ويتم إضافته إلى الأهداف الصحيحة.
معرف تطبيق Firebase Apple (
GOOGLE_APP_ID
) المدرج في ملف التكوين صحيح لتطبيقك. ابحث عن معرف تطبيق Firebase الخاص بك في بطاقة تطبيقاتك الخاصة مشروعك .
إذا بدا أن هناك أي خطأ في ملف التكوين الموجود في تطبيقك، فجرّب ما يلي:
احذف ملف التكوين الموجود حاليًا في تطبيقك.
اتبع هذه التعليمات لتنزيل ملف تكوين جديد وإضافته إلى تطبيق Apple الخاص بك.
إذا كانت SDK تسجل الأحداث ويبدو أن كل شيء قد تم إعداده بشكل صحيح، ولكنك لا تزال لا ترى رسالة اكتشاف SDK أو البيانات المعالجة (بعد ساعتين)، فاتصل بدعم Firebase .
تأكد من عدم تعطيل SDK لمراقبة الأداء من خلال أي من العلامات التالية في ملف
Info.plist
الخاص بك:-
firebase_performance_collection_enabled
-
firebase_performance_collection_deactivated
-
تأكد من عدم تعطيل مراقبة الأداء في وقت التشغيل ( Swift | Obj-C ).
إذا لم تتمكن من العثور على أي شيء معطل في تطبيقك، فاتصل بدعم Firebase .
تقوم مراقبة الأداء بمعالجة بيانات حدث الأداء قبل عرضها في لوحة معلومات الأداء .
إذا مر أكثر من 24 ساعة منذ ظهور رسالة "تم اكتشاف SDK" ، وما زلت لا ترى البيانات، فتحقق من لوحة معلومات حالة Firebase في حالة وجود انقطاع معروف. إذا لم يكن هناك انقطاع، فاتصل بدعم Firebase .
استكشاف الأخطاء وإصلاحها العامة
إذا قمت بإضافة SDK بنجاح وكنت تستخدم مراقبة الأداء في تطبيقك، فيمكن أن تساعد نصائح استكشاف الأخطاء وإصلاحها التالية في حل المشكلات العامة التي تتضمن ميزات وأدوات مراقبة الأداء.
إذا كنت لا ترى رسائل السجل لأحداث الأداء ، فجرب خطوات استكشاف الأخطاء وإصلاحها التالية:
تأكد من عدم تعطيل SDK لمراقبة الأداء من خلال أي من العلامات التالية في ملف
Info.plist
الخاص بك:-
firebase_performance_collection_enabled
-
firebase_performance_collection_deactivated
-
تأكد من عدم تعطيل مراقبة الأداء في وقت التشغيل ( Swift | Obj-C ).
إذا لم تتمكن من العثور على أي شيء معطل في تطبيقك، فاتصل بدعم Firebase .
إذا كنت تفتقد البيانات الخاصة بتتبعات عرض الشاشة، فجرب خطوات استكشاف الأخطاء وإصلاحها التالية:
تأكد من أنك تستخدم أحدث إصدار من SDK لمنصات Apple (الإصدار 10.19.0). آثار عرض الشاشة متاحة فقط مع الإصدار 5.0.0 أو الأحدث.
لا تقوم مراقبة الأداء بإنشاء آثار عرض الشاشة لوحدات تحكم عرض الحاوية (مثل
UINavigationController
وUITabBarController
). إذا كانت البيانات مفقودة فقط لهذه الشاشات، فهذا هو السلوك المتوقع.
هل تشاهد بيانات الأداء لعمليات التتبع التي تم جمعها تلقائيًا ولكن ليس لعمليات التتبع المخصصة للتعليمات البرمجية ؟ جرب خطوات استكشاف الأخطاء وإصلاحها التالية:
تحقق من إعداد آثار التعليمات البرمجية المخصصة التي يتم إعدادها عبر Trace API ، خاصة ما يلي:
- يجب أن تستوفي أسماء تتبعات التعليمات البرمجية المخصصة والمقاييس المخصصة المتطلبات التالية: لا توجد مسافة بيضاء بادئة أو لاحقة، ولا يوجد حرف سفلي بادئ (
_
) والحد الأقصى للطول هو 32 حرفًا. - يجب أن تبدأ جميع الآثار وتتوقف. لن يتم تسجيل أي تتبع لم يتم تشغيله أو إيقافه أو إيقافه قبل البدء.
- يجب أن تستوفي أسماء تتبعات التعليمات البرمجية المخصصة والمقاييس المخصصة المتطلبات التالية: لا توجد مسافة بيضاء بادئة أو لاحقة، ولا يوجد حرف سفلي بادئ (
تحقق من رسائل السجل الخاصة بك للتأكد من أن مراقبة الأداء تقوم بتسجيل تتبعات التعليمات البرمجية المخصصة المتوقعة.
إذا كانت مراقبة الأداء تقوم بتسجيل الأحداث، ولكن لم يتم عرض أي بيانات بعد 24 ساعة، فاتصل بدعم Firebase .
إذا كنت تفتقد بيانات طلب الشبكة، فجرّب خطوات استكشاف الأخطاء وإصلاحها التالية:
تحقق من عدم توافق مكتبة الشبكة. تقوم مراقبة الأداء تلقائيًا بجمع المقاييس لطلبات الشبكة التي تستخدم مكتبات الشبكات التالية:
- بالنسبة إلى Swift: URLSession وURLConnection
- بالنسبة إلى Objective-C: NSURLSession وNSURLConnection
لاحظ أنه يمكنك إضافة مراقبة مخصصة لطلبات الشبكة .
كن على علم بما يلي:
اعتمادًا على سلوك التعليمات البرمجية ومكتبات الشبكات التي تستخدمها التعليمات البرمجية الخاصة بك، قد تقوم مراقبة الأداء بالإبلاغ فقط عن طلبات الشبكة المكتملة. وهذا يعني أنه قد لا يتم الإبلاغ عن اتصالات HTTP/S التي تُركت مفتوحة.
لا تقوم مراقبة الأداء بالإبلاغ عن طلبات الشبكة التي تحتوي على رؤوس
Content-Type
غير صالحة. ومع ذلك، ستظل طلبات الشبكة التي لا تحتوي على رؤوسContent-Type
مقبولة.
تعرف على المزيد حول كيفية قيام مراقبة الأداء بتجميع بيانات طلبات الشبكة ضمن أنماط عنوان URL.
يمكنك أيضًا تجربة أنماط URL المخصصة !
التعليمات
لقد استبدلنا أهم المشكلات بالتنبيهات الأخيرة كمتابعة لتقديم التنبيهات مؤخرًا، والتي تُعلمك تلقائيًا عند تجاوز الحدود التي حددتها. تم الآن إهمال المشكلات واستبدالها بالتنبيهات.
يقوم محدد التطبيقات الموجود أعلى بطاقة الأداء بتصفية إدخالات التنبيه ضمن التنبيهات الأخيرة . يتم عرض التنبيهات الثلاثة الأحدث للتطبيق (التطبيقات) المحددة فقط.
لمعرفة المزيد حول التنبيهات، راجع إعداد التنبيهات الخاصة بمشكلات الأداء .
تدعم مراقبة الأداء التنبيهات الخاصة بالمقاييس التي تتجاوز الحدود المحددة. لتجنب الخلط بين هذه الحدود القابلة للتكوين لمقاييس الأداء، قمنا بإزالة القدرة على تكوين الحدود القصوى للمشكلات .
لقد استبدلنا صفحات التفاصيل والمقاييس بواجهة مستخدم مركزية (UI) مُعاد تصميمها حديثًا لتحسين كيفية استكشاف المشكلات وإصلاحها. توفر واجهة المستخدم الجديدة لاستكشاف الأخطاء وإصلاحها نفس الوظائف الأساسية التي توفرها التفاصيل والمقاييس. لمعرفة المزيد حول استكشاف الأخطاء وإصلاحها، راجع عرض المزيد من البيانات لتتبع محدد .
تعمل ميزة مراقبة الأداء على جمع بيانات الأداء من أجهزة مستخدم تطبيقك. إذا كان التطبيق الخاص بك يحتوي على العديد من المستخدمين أو إذا كان التطبيق ينشئ قدرًا كبيرًا من نشاط الأداء، فقد تقصر مراقبة الأداء جمع البيانات على مجموعة فرعية من الأجهزة لتقليل عدد الأحداث التي تمت معالجتها. هذه الحدود مرتفعة بما يكفي، حتى مع وجود عدد أقل من الأحداث، تظل قيم المقياس تمثل تجربة تطبيق المستخدم.
لإدارة حجم البيانات التي نجمعها، تستخدم مراقبة الأداء خيارات أخذ العينات التالية:
تحديد المعدل على الجهاز : لمنع الجهاز من إرسال دفعات مفاجئة من التتبع، فإننا نحد من عدد آثار التعليمات البرمجية وطلبات الشبكة المرسلة من الجهاز إلى 300 حدث كل 10 دقائق. يحمي هذا الأسلوب الجهاز من الأجهزة المتكررة التي يمكنها إرسال كميات كبيرة من بيانات الأداء، ويمنع جهازًا واحدًا من تحريف قياسات الأداء.
أخذ العينات الديناميكية : تجمع مراقبة الأداء حدًا يبلغ حوالي 100 مليون حدث لتتبعات التعليمات البرمجية و100 مليون لتتبعات طلبات الشبكة لكل تطبيق يوميًا عبر جميع مستخدمي التطبيق. يتم جلب معدل أخذ العينات الديناميكي على الأجهزة (باستخدام Firebase Remote Config) لتحديد ما إذا كان يجب على جهاز عشوائي التقاط الآثار وإرسالها. الجهاز الذي لم يتم تحديده لأخذ العينات لا يرسل أية أحداث. يكون معدل أخذ العينات الديناميكي خاصًا بالتطبيق ويتم ضبطه لضمان بقاء الحجم الإجمالي للبيانات المجمعة أقل من الحد الأقصى.
ترسل جلسات المستخدم بيانات إضافية وتفصيلية من جهاز المستخدم، مما يتطلب المزيد من الموارد لالتقاط البيانات وإرسالها. لتقليل تأثير جلسات المستخدم، قد تقوم مراقبة الأداء أيضًا بتقييد عدد الجلسات.
تحديد المعدل من جانب الخادم : للتأكد من أن التطبيقات لا تتجاوز حد أخذ العينات، قد تستخدم مراقبة الأداء أخذ العينات من جانب الخادم لإسقاط بعض الأحداث المستلمة من الأجهزة. على الرغم من أن هذا النوع من القيود لا يغير من فعالية مقاييسنا، إلا أنه قد يتسبب في تغييرات طفيفة في النمط، بما في ذلك ما يلي:
- يمكن أن يختلف عدد عمليات التتبع عن عدد مرات تنفيذ جزء من التعليمات البرمجية.
- قد يكون لكل من الآثار المقترنة بشكل وثيق في التعليمات البرمجية عدد مختلف من العينات.
لقد استبدلنا علامة التبويب "المشاكل" بمقدمة "التنبيهات"، التي تُعلمك تلقائيًا عند تجاوز الحدود التي حددتها. لم تعد بحاجة إلى التحقق يدويًا من وحدة تحكم Firebase لتحديد حالة الحد. للتعرف على التنبيهات، راجع إعداد التنبيهات الخاصة بمشكلات الأداء .
لقد قمنا بإعادة تصميم قسم مراقبة الأداء في وحدة تحكم Firebase بحيث تعرض علامة التبويب لوحة المعلومات مقاييسك الرئيسية وجميع آثارك في مساحة واحدة. وكجزء من عملية إعادة التصميم، قمنا بإزالة الصفحات " على الجهاز" و "الشبكة" .
يحتوي جدول التتبعات الموجود أسفل علامة التبويب لوحة المعلومات على نفس المعلومات التي تعرضها علامتي التبويب على الجهاز والشبكة ، ولكن مع بعض الميزات المضافة، بما في ذلك القدرة على فرز عمليات التتبع حسب النسبة المئوية للتغيير لمقياس معين. لعرض جميع المقاييس والبيانات الخاصة بتتبع معين، انقر فوق اسم التتبع في جدول التتبعات.
اعرض آثارك في علامات التبويب الفرعية التالية لجدول التتبعات:
- تتبعات طلبات الشبكة (سواء المخصصة أو الجاهزة) - علامة التبويب الفرعية لطلبات الشبكة
- آثار التعليمات البرمجية المخصصة — علامة التبويب الفرعية آثار مخصصة
- بدء التطبيق، وتتبعات التطبيق في المقدمة، وتتبعات التطبيق في الخلفية - علامة التبويب الفرعية للتتبعات المخصصة
- آثار عرض الشاشة — علامة التبويب الفرعية لعرض الشاشة
- آثار تحميل الصفحة — علامة التبويب الفرعية لتحميل الصفحة
للحصول على تفاصيل حول جدول التتبعات وعرض المقاييس والبيانات، قم بزيارة صفحة النظرة العامة على وحدة التحكم ( iOS+ | Android | الويب ).
يتم حساب إطارات العرض البطيئة والإطارات المجمدة بمعدل تحديث مفترض للجهاز يبلغ 60 هرتز. إذا كان معدل تحديث الجهاز أقل من 60 هرتز، فسيكون لكل إطار وقت عرض أبطأ لأنه يتم عرض عدد أقل من الإطارات في الثانية. يمكن أن تؤدي أوقات العرض الأبطأ إلى الإبلاغ عن المزيد من الإطارات البطيئة أو المجمدة لأنه سيتم عرض المزيد من الإطارات بشكل أبطأ أو سيتم تجميدها. ومع ذلك، إذا كان معدل تحديث الجهاز أعلى من 60 هرتز، فسيكون لكل إطار وقت عرض أسرع. يمكن أن يؤدي ذلك إلى الإبلاغ عن عدد أقل من الإطارات البطيئة أو المجمدة. يعد هذا قيدًا حاليًا في SDK لمراقبة الأداء.
إذا قمت بتمكين تكامل BigQuery لمراقبة أداء Firebase، فسيتم تصدير بياناتك إلى BigQuery بعد 12 إلى 24 ساعة من نهاية اليوم (بتوقيت المحيط الهادئ).
على سبيل المثال، ستكون بيانات يوم 19 أبريل متاحة في BigQuery يوم 20 أبريل بين الساعة 12 ظهرًا ومنتصف الليل (جميع التواريخ والأوقات بتوقيت المحيط الهادئ).
بالقرب من معالجة البيانات والعرض في الوقت الفعلي
جمعت عمليات مراقبة أداء 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 الخاص بك في بطاقة التطبيقات الخاصة بك من مشروع الإعدادات الخاصة بك.