توفر هذه الصفحة نصائح حول استكشاف الأخطاء وإصلاحها لبدء استخدام مراقبة الأداء أو استخدام ميزات وأدوات مراقبة الأداء.
الشيكات الأولى لاستكشاف الأخطاء وإصلاحها
يعد الفحصان التاليان من أفضل الممارسات العامة الموصى بها لأي شخص قبل إجراء المزيد من استكشاف الأخطاء وإصلاحها.
1. تحقق من رسائل السجل لأحداث الأداء
تحقق من رسائل السجل الخاصة بك للتأكد من أن SDK لمراقبة الأداء يلتقط أحداث الأداء.
قم بتمكين تسجيل تصحيح الأخطاء لمراقبة الأداء في وقت الإنشاء عن طريق إضافة عنصر
<meta-data>
إلى ملفAndroidManifest.xml
الخاص بتطبيقك، كما يلي:<application> <meta-data android:name="firebase_performance_logcat_enabled" android:value="true" /> </application>
تحقق من رسائل السجل الخاصة بك بحثًا عن أي رسائل خطأ.
تقوم مراقبة الأداء بوضع علامة على رسائل السجل الخاصة بها باستخدام
FirebasePerformance
. باستخدام تصفية logcat، يمكنك على وجه التحديد عرض تتبع المدة وتسجيل طلبات شبكة HTTP/S عن طريق تشغيل الأمر التالي:adb logcat -s FirebasePerformance
تحقق من أنواع السجلات التالية التي تشير إلى أن مراقبة الأداء تقوم بتسجيل أحداث الأداء:
-
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 المتأخرة وإصلاحها.
تأكد من أنك تستخدم Performance Monitoring Android SDK 19.1.0 أو إصدار أحدث (أو Firebase BoM 26.3.0 أو إصدار أحدث)، راجع ملاحظة الإصدار .
إذا كنت لا تزال تتطور محليًا، فحاول إنشاء المزيد من الأحداث لجمع البيانات:
- قم بإنشاء أحداث عن طريق تبديل تطبيقك بين الخلفية والمقدمة عدة مرات، والتفاعل مع تطبيقك من خلال التنقل عبر الشاشات، و/أو تشغيل طلبات الشبكة.
تأكد من إضافة ملف تكوين Firebase (
google-services.json
) بشكل صحيح إلى تطبيقك ومن عدم تعديل الملف. على وجه التحديد، تحقق مما يلي:لا يتم إلحاق اسم ملف التكوين بأحرف إضافية، مثل
(2)
.ملف التكوين موجود في دليل الوحدة النمطية (على مستوى التطبيق) لتطبيقك.
معرف تطبيق Firebase Android (
mobilesdk_app_id
) المدرج في ملف التكوين صحيح لتطبيقك. ابحث عن معرف تطبيق Firebase الخاص بك في بطاقة تطبيقاتك الخاصة مشروعك .
إذا بدا أن هناك أي خطأ في ملف التكوين الموجود في تطبيقك، فجرّب ما يلي:
احذف ملف التكوين الموجود حاليًا في تطبيقك.
اتبع هذه التعليمات لتنزيل ملف تكوين جديد وإضافته إلى تطبيق Android الخاص بك.
إذا كانت SDK تسجل الأحداث ويبدو أن كل شيء قد تم إعداده بشكل صحيح، ولكنك لا تزال لا ترى رسالة اكتشاف SDK أو البيانات المعالجة (بعد 10 دقائق)، فاتصل بدعم Firebase .
تحقق من إعداد البرنامج الإضافي Performance Monitoring Gradle، كما يلي:
تأكد من أنك قمت بإضافة البرنامج المساعد بشكل صحيح. على وجه التحديد، تحقق مما يلي:
- لقد أضفت المكوّن الإضافي (
) في ملفapply plugin: 'com.google.firebase.firebase-perf' build.gradle
الخاص بوحدتك (على مستوى التطبيق) . - لقد قمت بتضمين تبعية classpath للمكون الإضافي (
) في ملفclasspath 'com.google.firebase:perf-plugin:1.4.2' build.gradle
على مستوى المشروع .
- لقد أضفت المكوّن الإضافي (
تأكد من عدم تعطيل المكون الإضافي من خلال أي من العلامات التالية:
-
instrumentationEnabled
في ملفbuild.gradle
الخاص بالوحدة النمطية (على مستوى التطبيق). -
firebasePerformanceInstrumentationEnabled
في ملفgradle.properties
الخاص بك
-
تأكد من عدم تعطيل SDK لمراقبة الأداء من خلال أي من العلامات التالية في ملف
AndroidManifest.xml
الخاص بك:-
firebase_performance_collection_enabled
-
firebase_performance_collection_deactivated
-
تأكد من عدم تعطيل مراقبة الأداء أثناء التشغيل .
إذا لم تتمكن من العثور على أي شيء معطل في تطبيقك، فاتصل بدعم Firebase .
تقوم مراقبة الأداء بمعالجة بيانات حدث الأداء قبل عرضها في لوحة معلومات الأداء .
إذا مر أكثر من 24 ساعة منذ ظهور رسالة "تم اكتشاف SDK" ، وما زلت لا ترى البيانات، فتحقق من لوحة معلومات حالة Firebase في حالة وجود انقطاع معروف. إذا لم يكن هناك انقطاع، فاتصل بدعم Firebase .
استكشاف الأخطاء وإصلاحها العامة
إذا قمت بإضافة SDK بنجاح وكنت تستخدم مراقبة الأداء في تطبيقك، فيمكن أن تساعد نصائح استكشاف الأخطاء وإصلاحها التالية في حل المشكلات العامة التي تتضمن ميزات وأدوات مراقبة الأداء.
إذا كنت لا ترى رسائل السجل لأحداث الأداء ، فجرب خطوات استكشاف الأخطاء وإصلاحها التالية:
تحقق من إعداد البرنامج الإضافي Performance Monitoring Gradle، كما يلي:
تأكد من أنك قمت بإضافة البرنامج المساعد بشكل صحيح. على وجه التحديد، تحقق مما يلي:
- لقد أضفت المكوّن الإضافي (
) في ملفapply plugin: 'com.google.firebase.firebase-perf' build.gradle
الخاص بوحدتك (على مستوى التطبيق) . - لقد قمت بتضمين تبعية classpath للمكون الإضافي (
) في ملفclasspath 'com.google.firebase:perf-plugin:1.4.2' build.gradle
على مستوى المشروع .
- لقد أضفت المكوّن الإضافي (
تأكد من عدم تعطيل المكون الإضافي من خلال أي من العلامات التالية:
-
instrumentationEnabled
في ملفbuild.gradle
الخاص بالوحدة النمطية (على مستوى التطبيق). -
firebasePerformanceInstrumentationEnabled
في ملفgradle.properties
الخاص بك
-
تأكد من عدم تعطيل SDK لمراقبة الأداء من خلال أي من العلامات التالية في ملف
AndroidManifest.xml
الخاص بك:-
firebase_performance_collection_enabled
-
firebase_performance_collection_deactivated
-
تأكد من عدم تعطيل مراقبة الأداء أثناء التشغيل .
إذا لم تتمكن من العثور على أي شيء معطل في تطبيقك، فاتصل بدعم Firebase .
إذا كنت تفتقد البيانات الخاصة بتتبعات عرض الشاشة، فجرب خطوات استكشاف الأخطاء وإصلاحها التالية:
تأكد من أنك تستخدم أحدث إصدار من Android SDK (الإصدار 20.4.1). آثار عرض الشاشة متاحة فقط مع الإصدار 15.2.0 أو الإصدارات الأحدث.
تأكد من أنك لم تقم بتعطيل تسريع الأجهزة يدويًا لشاشة ما.
تأكد من أنك لا تستخدم DexGuard أو Jack. مراقبة الأداء غير متوافقة مع سلاسل الأدوات هذه.
يقوم DexGuard بتعطيل التجميع التلقائي لآثار بدء التطبيق، والتطبيق في المقدمة، والتطبيق في الخلفية. ومع ذلك، يجب أن تعمل أي آثار تعليمات برمجية مخصصة بشكل طبيعي إذا كان تطبيقك يستخدم DexGuard.
تم إهمال Jack ولا ينبغي استخدامه بشكل عام في تطبيقك.
هل تشاهد بيانات الأداء لعمليات التتبع التي تم جمعها تلقائيًا ولكن ليس لعمليات التتبع المخصصة للتعليمات البرمجية ؟ جرب خطوات استكشاف الأخطاء وإصلاحها التالية:
إذا قمت بتجهيز عمليات تتبع تعليمات برمجية مخصصة عبر Trace API ، فتحقق من إعداد عمليات التتبع، خاصة ما يلي:
- يجب أن تستوفي أسماء تتبعات التعليمات البرمجية المخصصة والمقاييس المخصصة المتطلبات التالية: لا توجد مسافة بيضاء بادئة أو لاحقة، ولا يوجد حرف سفلي بادئ (
_
) والحد الأقصى للطول هو 32 حرفًا. - يجب أن تبدأ جميع الآثار وتتوقف. لن يتم تسجيل أي تتبع لم يتم تشغيله أو إيقافه أو إيقافه قبل البدء.
- يجب أن تستوفي أسماء تتبعات التعليمات البرمجية المخصصة والمقاييس المخصصة المتطلبات التالية: لا توجد مسافة بيضاء بادئة أو لاحقة، ولا يوجد حرف سفلي بادئ (
إذا قمت بتتبع تعليمات برمجية مخصصة عبر تدوين
@AddTrace
، فتحقق من إعداد البرنامج الإضافي Performance Monitoring Gradle:تأكد من أنك قمت بإضافة البرنامج المساعد بشكل صحيح. على وجه التحديد، تحقق مما يلي:
- لقد أضفت المكوّن الإضافي (
) في ملفapply plugin: 'com.google.firebase.firebase-perf' build.gradle
الخاص بوحدتك (على مستوى التطبيق) . - لقد قمت بتضمين تبعية classpath للمكون الإضافي (
) في ملفclasspath 'com.google.firebase:perf-plugin:1.4.2' build.gradle
على مستوى المشروع .
- لقد أضفت المكوّن الإضافي (
تأكد من عدم تعطيل المكون الإضافي من خلال أي من العلامات التالية:
-
instrumentationEnabled
في ملفbuild.gradle
الخاص بالوحدة النمطية (على مستوى التطبيق). -
firebasePerformanceInstrumentationEnabled
في ملفgradle.properties
الخاص بك
-
تحقق من رسائل السجل الخاصة بك للتأكد من أن مراقبة الأداء تقوم بتسجيل تتبعات التعليمات البرمجية المخصصة المتوقعة.
إذا كانت مراقبة الأداء تقوم بتسجيل الأحداث، ولكن لم يتم عرض أي بيانات بعد 24 ساعة، فاتصل بدعم Firebase .
إذا كنت تفتقد بيانات طلب الشبكة، فجرّب خطوات استكشاف الأخطاء وإصلاحها التالية:
بالنسبة لتطبيقات Android، يعمل المكون الإضافي Performance Monitoring Gradle على تمكين الأجهزة التي توفر مراقبة تلقائية لطلبات شبكة HTTP/S . تحقق مما يلي:
تأكد من أنك قمت بإضافة البرنامج المساعد بشكل صحيح. على وجه التحديد، تحقق مما يلي:
- لقد أضفت المكوّن الإضافي (
) في ملفapply plugin: 'com.google.firebase.firebase-perf' build.gradle
الخاص بوحدتك (على مستوى التطبيق) . - لقد قمت بتضمين تبعية classpath للمكون الإضافي (
) في ملفclasspath 'com.google.firebase:perf-plugin:1.4.2' build.gradle
على مستوى المشروع .
- لقد أضفت المكوّن الإضافي (
تأكد من عدم تعطيل المكون الإضافي من خلال أي من العلامات التالية:
-
instrumentationEnabled
في ملفbuild.gradle
الخاص بالوحدة النمطية (على مستوى التطبيق). -
firebasePerformanceInstrumentationEnabled
في ملفgradle.properties
الخاص بك
-
تحقق من عدم توافق مكتبة الشبكة. تقوم مراقبة الأداء تلقائيًا بجمع المقاييس لطلبات الشبكة التي تستخدم مكتبات الشبكات التالية: OkHttp 3.xx، وURLConnection الخاص بـ Java، وApache HttpClient.
لاحظ أنه يمكنك إضافة مراقبة مخصصة لطلبات الشبكة .
كن على علم بما يلي:
اعتمادًا على سلوك التعليمات البرمجية ومكتبات الشبكات التي تستخدمها التعليمات البرمجية الخاصة بك، قد تقوم مراقبة الأداء بالإبلاغ فقط عن طلبات الشبكة المكتملة. وهذا يعني أنه قد لا يتم الإبلاغ عن اتصالات HTTP/S التي تُركت مفتوحة.
مراقبة الأداء غير متوافقة مع DexGuard وJack.
- يقوم DexGuard بتعطيل مراقبة طلبات شبكة HTTP/S.
- تم إهمال Jack ولا ينبغي استخدامه بشكل عام في تطبيقك.
لا تقوم مراقبة الأداء بالإبلاغ عن طلبات الشبكة التي تحتوي على رؤوس
Content-Type
غير صالحة. ومع ذلك، ستظل طلبات الشبكة التي لا تحتوي على رؤوسContent-Type
مقبولة.
تعرف على المزيد حول كيفية قيام مراقبة الأداء بتجميع بيانات طلبات الشبكة ضمن أنماط عنوان URL.
يمكنك أيضًا تجربة أنماط URL المخصصة !
التعليمات
لقد استبدلنا أهم المشكلات بالتنبيهات الأخيرة كمتابعة لتقديم التنبيهات مؤخرًا، والتي تُعلمك تلقائيًا عند تجاوز الحدود التي حددتها. تم الآن إهمال المشكلات واستبدالها بالتنبيهات.
يقوم محدد التطبيقات الموجود أعلى بطاقة الأداء بتصفية إدخالات التنبيه ضمن التنبيهات الأخيرة . يتم عرض التنبيهات الثلاثة الأحدث للتطبيق (التطبيقات) المحددة فقط.
لمعرفة المزيد حول التنبيهات، راجع إعداد التنبيهات الخاصة بمشكلات الأداء .
تدعم مراقبة الأداء التنبيهات الخاصة بالمقاييس التي تتجاوز الحدود المحددة. لتجنب الخلط بين هذه الحدود القابلة للتكوين لمقاييس الأداء، قمنا بإزالة القدرة على تكوين الحدود القصوى للمشكلات .
لقد استبدلنا صفحات التفاصيل والمقاييس بواجهة مستخدم مركزية (UI) مُعاد تصميمها حديثًا لتحسين كيفية استكشاف المشكلات وإصلاحها. توفر واجهة المستخدم الجديدة لاستكشاف الأخطاء وإصلاحها نفس الوظائف الأساسية التي توفرها التفاصيل والمقاييس. لمعرفة المزيد حول استكشاف الأخطاء وإصلاحها، راجع عرض المزيد من البيانات لتتبع محدد .
تعمل ميزة مراقبة الأداء على جمع بيانات الأداء من أجهزة مستخدم تطبيقك. إذا كان التطبيق الخاص بك يحتوي على العديد من المستخدمين أو إذا كان التطبيق ينشئ قدرًا كبيرًا من نشاط الأداء، فقد تقصر مراقبة الأداء جمع البيانات على مجموعة فرعية من الأجهزة لتقليل عدد الأحداث التي تتم معالجتها. هذه الحدود مرتفعة بما يكفي، حتى مع وجود عدد أقل من الأحداث، تظل قيم المقياس تمثل تجربة تطبيق المستخدم.
لإدارة حجم البيانات التي نجمعها، تستخدم مراقبة الأداء خيارات أخذ العينات التالية:
تحديد المعدل على الجهاز : لمنع الجهاز من إرسال دفعات مفاجئة من التتبع، فإننا نحد من عدد آثار التعليمات البرمجية وطلبات الشبكة المرسلة من الجهاز إلى 300 حدث كل 10 دقائق. يحمي هذا الأسلوب الجهاز من الأجهزة المتكررة التي يمكنها إرسال كميات كبيرة من بيانات الأداء، ويمنع جهازًا واحدًا من تحريف قياسات الأداء.
أخذ العينات الديناميكية : تجمع مراقبة الأداء حدًا يبلغ حوالي 100 مليون حدث لتتبعات التعليمات البرمجية و100 مليون لتتبعات طلبات الشبكة لكل تطبيق يوميًا عبر جميع مستخدمي التطبيق. يتم جلب معدل أخذ العينات الديناميكي على الأجهزة (باستخدام Firebase Remote Config) لتحديد ما إذا كان يجب على جهاز عشوائي التقاط الآثار وإرسالها. الجهاز الذي لم يتم تحديده لأخذ العينات لا يرسل أي أحداث. يكون معدل أخذ العينات الديناميكي خاصًا بالتطبيق ويتم ضبطه لضمان بقاء الحجم الإجمالي للبيانات المجمعة أقل من الحد الأقصى.
ترسل جلسات المستخدم بيانات إضافية وتفصيلية من جهاز المستخدم، مما يتطلب المزيد من الموارد لالتقاط البيانات وإرسالها. لتقليل تأثير جلسات المستخدم، قد تقوم مراقبة الأداء أيضًا بتقييد عدد الجلسات.
تحديد المعدل من جانب الخادم : للتأكد من أن التطبيقات لا تتجاوز حد أخذ العينات، قد تستخدم مراقبة الأداء أخذ العينات من جانب الخادم لإسقاط بعض الأحداث المستلمة من الأجهزة. على الرغم من أن هذا النوع من القيود لا يغير من فعالية مقاييسنا، إلا أنه قد يتسبب في تغييرات طفيفة في النمط، بما في ذلك ما يلي:
- يمكن أن يختلف عدد عمليات التتبع عن عدد مرات تنفيذ جزء من التعليمات البرمجية.
- قد يكون لكل من الآثار المقترنة بشكل وثيق في التعليمات البرمجية عدد مختلف من العينات.
لقد استبدلنا علامة التبويب "المشاكل" بمقدمة "التنبيهات"، التي تُعلمك تلقائيًا عند تجاوز الحدود التي حددتها. لم تعد بحاجة إلى التحقق يدويًا من وحدة تحكم Firebase لتحديد حالة الحد. للتعرف على التنبيهات، راجع إعداد التنبيهات الخاصة بمشكلات الأداء .
لقد قمنا بإعادة تصميم قسم مراقبة الأداء في وحدة تحكم Firebase بحيث تعرض علامة التبويب لوحة المعلومات مقاييسك الرئيسية وجميع آثارك في مساحة واحدة. وكجزء من عملية إعادة التصميم، قمنا بإزالة الصفحات " على الجهاز" و "الشبكة" .
يحتوي جدول التتبعات الموجود أسفل علامة التبويب لوحة المعلومات على نفس المعلومات التي تعرضها علامتي التبويب على الجهاز والشبكة ، ولكن مع بعض الميزات المضافة، بما في ذلك القدرة على فرز عمليات التتبع حسب النسبة المئوية للتغيير لمقياس معين. لعرض جميع المقاييس والبيانات الخاصة بتتبع معين، انقر فوق اسم التتبع في جدول التتبعات.
اعرض آثارك في علامات التبويب الفرعية التالية لجدول التتبعات:
- تتبعات طلبات الشبكة (سواء المخصصة أو الجاهزة) - علامة التبويب الفرعية لطلبات الشبكة
- آثار التعليمات البرمجية المخصصة — علامة التبويب الفرعية آثار مخصصة
- بدء التطبيق، وتتبعات التطبيق في المقدمة، وتتبعات التطبيق في الخلفية - علامة التبويب الفرعية للتتبعات المخصصة
- آثار عرض الشاشة — علامة التبويب الفرعية لعرض الشاشة
- آثار تحميل الصفحة — علامة التبويب الفرعية لتحميل الصفحة
للحصول على تفاصيل حول جدول التتبعات وعرض المقاييس والبيانات، قم بزيارة صفحة النظرة العامة على وحدة التحكم ( iOS+ | Android | الويب ).
يتم حساب إطارات العرض البطيئة والإطارات المجمدة بمعدل تحديث مفترض للجهاز يبلغ 60 هرتز. إذا كان معدل تحديث الجهاز أقل من 60 هرتز، فسيكون لكل إطار وقت عرض أبطأ لأنه يتم عرض عدد أقل من الإطارات في الثانية. يمكن أن تؤدي أوقات العرض الأبطأ إلى الإبلاغ عن المزيد من الإطارات البطيئة أو المجمدة لأنه سيتم عرض المزيد من الإطارات بشكل أبطأ أو سيتم تجميدها. ومع ذلك، إذا كان معدل تحديث الجهاز أعلى من 60 هرتز، فسيكون لكل إطار وقت عرض أسرع. يمكن أن يؤدي ذلك إلى الإبلاغ عن عدد أقل من الإطارات البطيئة أو المجمدة. يعد هذا قيدًا حاليًا في SDK لمراقبة الأداء.
لرؤية أداء الأجزاء بالإضافة إلى نشاط التطبيق، تأكد من أن تطبيقك يستخدم الإصدار 20.1.0 أو أعلى من Android SDK لمراقبة الأداء. لمعرفة المزيد، راجع إضافة مراقبة الأداء إلى تطبيقك .
يعتمد كل جزء من أجزاء وتتبعات النشاط على اسم فئته كما هو محدد في التطبيق الخاص بك. يحتوي كل أثر من آثار الشاشة على البادئة st متبوعة باسم الفئة. على وحدة تحكم Firebase، تتم إزالة البادئة. لمعرفة المزيد، راجع التعرف على بيانات أداء عرض الشاشة (تطبيقات Apple وAndroid) .
تجري مراقبة الأداء أخذ عينات من الأحداث عبر جميع الأحداث التي تم جمعها على الجهاز. يتيح لنا هذا الأسلوب جمع الحد الأدنى من الأحداث المطلوبة من أجهزة المستخدم لتوفير مقاييس الأداء.
تتيح لك مراقبة الأداء إعداد تنبيهات للمقاييس التي تهمك. بالنسبة لتتبعات عرض الشاشة التي تم إنشاؤها، يمكنك إعداد تنبيهات لإعلامك عندما تتجاوز نسبة الإطارات البطيئة والمجمدة الحد الذي قمت بتعيينه.
تستخدم مراقبة الأداء لنظام Android أدوات الرمز الثانوي لتوفير بعض الميزات المبتكرة مثل مراقبة طلبات شبكة HTTP/S . وكجزء من التجميع، تتطلب العملية التكرار عبر جميع فئات تطبيقك (بما في ذلك التبعيات) لاستخدام التعليمات البرمجية المهمة في قياس أداء طلب الشبكة لتطبيقك.
فيما يلي بعض المساهمين الرئيسيين في زيادة وقت البناء:
- عدد الفئات أو الملفات
- حجم كل فئة من هذه الفئات (أسطر التعليمات البرمجية)
- تكوين جهازك
- البناء الأولي مقابل البناء اللاحق (عادةً ما تكون الإصدارات اللاحقة أسرع من البناء الأولي)
لتحسين وقت الإنشاء، فكر في تقسيم التعليمات البرمجية الخاصة بك إلى وحدات .
بدءًا من الإصدار 1.3.3 من البرنامج الإضافي لمراقبة الأداء، ركزنا على إجراء تحسينات كبيرة في معالجة البناء المتزايد والتخزين المؤقت لمدخلات المكتبة. لتلقي أحدث التحسينات في وقت البناء، تأكد من استخدام أحدث إصدار من البرنامج الإضافي (الإصدار 1.4.2) .
لاحظ أنه يمكنك تعطيل المكون الإضافي لمراقبة الأداء لإصدارات تصحيح الأخطاء الخاصة بك محليًا إذا كنت تريد تجنب أوقات الإنشاء الطويلة. ومع ذلك، لا يُنصح باستخدام هذا الأسلوب في إصدارات الإنتاج، لأنه قد يؤدي إلى فقدان قياسات الأداء لطلبات الشبكة في تطبيقك.
تستخدم مراقبة الأداء لنظام Android أدوات الرمز الثانوي لتوفير بعض الميزات المبتكرة مثل مراقبة طلبات شبكة HTTP/S . وكجزء من التجميع، تتطلب العملية التكرار عبر جميع فئات تطبيقك (بما في ذلك التبعيات) لاستخدام التعليمات البرمجية المهمة في قياس أداء طلب الشبكة لتطبيقك.
إذا حصلت على أخطاء بناء مثل JSR/RET are not supported with computeFrames option
أو أخطاء مشابهة بعد التكامل مع المكون الإضافي لمراقبة الأداء، فقد يكون هذا بسبب أن لديك أيضًا تبعية على مكتبة غير متوافقة مع المكون الإضافي لمراقبة الأداء.
للتغلب على هذه المشكلة، يمكنك استبعاد الفئات/المكتبات غير المتوافقة من استخدامها باتباع الخطوات التالية:
- قم بالتحديث إلى أحدث إصدار من البرنامج الإضافي Performance Monitoring Gradle (الحد الأدنى v1.4.0 ).
- قم بتحديث إصدار المكون الإضافي Android Gradle إلى الإصدار 7.2.0 أو الأحدث.
- أضف العلامة التالية إلى ملف
build.gradle
الخاص بالوحدة النمطية (على مستوى التطبيق) لاستبعاد الفئات/المكتبات غير المتوافقة من أدواتها:android { // ... androidComponents { onVariants(selector().all(), { instrumentation.excludes.add("example.incompatible.library") }) } }
لمعرفة المزيد حول خاصيةexclude
الخاصة بواجهة برمجة تطبيقاتInstrumentation
API الخاصة بمكون Android Gradle الإضافي، راجع Instrumentation .
يرجى تقديم مشكلة Github عندما تواجه أخطاء في البناء بسبب وجود مكتبات غير متوافقة بحيث يمكن أيضًا استبعادها من استخدامها في المكون الإضافي لمراقبة الأداء.
إذا قمت بتمكين تكامل BigQuery لمراقبة أداء Firebase، فسيتم تصدير بياناتك إلى BigQuery بعد 12 إلى 24 ساعة من نهاية اليوم (بتوقيت المحيط الهادئ).
على سبيل المثال، ستكون بيانات يوم 19 أبريل متاحة في BigQuery يوم 20 أبريل بين الساعة 12 ظهرًا ومنتصف الليل (جميع التواريخ والأوقات بتوقيت المحيط الهادئ).
Near real-time data processing and display
Firebase Performance Monitoring processes collected performance data as it comes in, which results in near real-time data display in the Firebase console. Processed data displays in the console within a few minutes of its collection, hence the term "near real-time".
To take advantage of near real-time data processing, make sure your app uses a real-time compatible SDK version .
To take advantage of near real-time data processing, you only need to make sure that your app uses a Performance Monitoring SDK version that's compatible with real-time data processing.
These are the real-time compatible SDK versions:
- iOS — v7.3.0 or later
- tvOS — v8.9.0 or later
- Android — v19.0.10 or later (or Firebase Android BoM v26.1.0 or later)
- Web — v7.14.0 or later
Note that we always recommend using the latest version of SDK, but any version listed above will enable Performance Monitoring to process your data in near real time.
These are the SDK versions compatible with real-time data processing:
- iOS — v7.3.0 or later
- tvOS — v8.9.0 or later
- Android — v19.0.10 or later (or Firebase Android BoM v26.1.0 or later)
- Web — v7.14.0 or later
Note that we always recommend using the latest version of SDK, but any version listed above will enable Performance Monitoring to process your data in near real time.
If your app doesn't use a real-time compatible SDK version, you will still see all your app's performance data in the Firebase console. However, the display of performance data will be delayed by roughly 36 hours from the time of its collection.
Yes! Regardless of which SDK version an app instance uses, you'll see performance data from all your users.
However, if you're looking at recent data (less than roughly 36 hours old), then the displayed data is from users of app instances using a real-time compatible SDK version. The non-recent data, though, includes performance data from all versions of your app.
Contacting Firebase Support
If you reach out to Firebase Support , always include your Firebase App ID. Find your Firebase App ID in the Your apps card of your Project settings .