בדף הזה מופיעים טיפים לפתרון בעיות שקשורות לתחילת העבודה עם Performance Monitoring או לשימוש בתכונות ובכלים של Performance Monitoring.
בדיקות ראשוניות לפתרון בעיות
שתי הבדיקות הבאות הן שיטות מומלצות כלליות שמומלצות לכל אחד לפני שממשיכים בפתרון בעיות.
1. בדיקת הודעות ביומן לגבי אירועי ביצועים
בודקים את ההודעות ביומן כדי לוודא ש-Performance Monitoring SDK מתעד אירועי ביצועים.
איך רואים הודעות ביומן לגבי אירועי ביצועים
כדי להפעיל רישום ביומן לניפוי באגים עבור Performance Monitoring בזמן ה-build, מוסיפים רכיב
<meta-data>לקובץAndroidManifest.xmlשל האפליקציה, באופן הבא:<application> <meta-data android:name="firebase_performance_logcat_enabled" android:value="true" /> </application>בודקים אם יש הודעות שגיאה בהודעות היומן.
Performance Monitoring מתייג את הודעות היומן שלו באמצעות
FirebasePerformance. כדי לראות במיוחד את נתוני המעקב של משך הזמן ואת הרישום ביומן של בקשות רשת HTTP/S, מריצים את הפקודה הבאה באמצעות סינון logcat: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 | Web), טיפים לפתרון בעיות שמופיעים בהמשך יכולים לעזור לכם לפתור בעיות שקשורות לזיהוי ה-SDK על ידי Firebase או להצגת נתוני הביצועים הראשונים במסוף Firebase.
הוספתי את ה-SDK לאפליקציה, אבל במסוף עדיין מופיעה ההודעה שצריך להוסיף את ה-SDK
מערכת Firebase יכולה לזהות אם הוספתם בהצלחה את Performance Monitoring ה-SDK לאפליקציה כשהיא מקבלת מהאפליקציה פרטי אירועים (כמו אינטראקציות עם האפליקציה). בדרך כלל, תוך 10 דקות מהפעלת האפליקציה, מוצגת ההודעה 'זוהה SDK' בלוח הבקרה של ביצועים במסוף Firebase. לאחר מכן, תוך 30 דקות, יוצגו במרכז הבקרה הנתונים הראשוניים שעברו עיבוד.
אם עברו יותר מ-10 דקות מאז שהוספתם את הגרסה האחרונה של ה-SDK לאפליקציה, ואתם עדיין לא רואים שינוי, בדקו את הודעות היומן כדי לוודא ש-Performance Monitoring מתעד אירועים. נסו לבצע את השלבים המתאימים לפתרון בעיות שמתוארים בהמשך כדי לפתור בעיה של הודעה על זיהוי SDK באיחור.
האפליקציה רושמת אירועים ביומן: שלבים לפתרון בעיות
חשוב לוודא שאתם משתמשים ב-Performance Monitoring Android SDK בגרסה 19.1.0 ואילך (או Firebase BoM בגרסה 26.3.0 ואילך). אפשר לעיין בהערות על הגרסה.
אם אתם עדיין מפתחים באופן מקומי, נסו ליצור עוד אירועים לאיסוף נתונים:
- כדי ליצור אירועים, מעבירים את האפליקציה בין הרקע לחזית כמה פעמים, מבצעים אינטראקציה עם האפליקציה על ידי ניווט בין מסכים ו/או מפעילים בקשות לרשת.
מוודאים שקובץ ההגדרות של Firebase (
google-services.json) נוסף לאפליקציה בצורה נכונה ושלא שיניתם את הקובץ. באופן ספציפי, כדאי לבדוק את הנקודות הבאות:שם קובץ ההגדרות לא מסתיים בתווים נוספים, כמו
(2).קובץ ההגדרות נמצא בתיקייה module (ברמת האפליקציה) של האפליקציה.
מזהה האפליקציה ב-Firebase Android (
mobilesdk_app_id) שמופיע בקובץ ההגדרות נכון לאפליקציה שלכם. מזהה האפליקציה ב-Firebase מופיע בכרטיס האפליקציות שלך בsettings הגדרות הפרויקט.
אם משהו נראה לא תקין בקובץ ההגדרות באפליקציה, נסו את הפעולות הבאות:
מוחקים את קובץ התצורה שקיים כרגע באפליקציה.
פועלים לפי ההוראות האלה כדי להוריד קובץ תצורה חדש ולהוסיף אותו לאפליקציית Android.
אם ה-SDK מתעד אירועים ונראה שההגדרה תקינה, אבל עדיין לא מוצגת הודעת הזיהוי של ה-SDK או נתונים מעובדים (אחרי 10 דקות), צריך לפנות לתמיכה של Firebase.
האפליקציה לא רושמת אירועים ביומן: שלבים לפתרון בעיות
בודקים את ההגדרה של התוסף Performance Monitoring Gradle, באופן הבא:
מוודאים שהוספתם את הפלאגין בצורה נכונה. באופן ספציפי, כדאי לבדוק את הנקודות הבאות:
- הוספת את הפלאגין
(
) בקובץapply plugin: 'com.google.firebase.firebase-perf' build.gradleשל המודול (ברמת האפליקציה). - הוספתם את התלות של נתיב המחלקה (classpath) של הפלאגין
(
) בקובץclasspath 'com.google.firebase:perf-plugin:2.0.2' build.gradleברמת הפרויקט.
- הוספת את הפלאגין
(
מוודאים שהפלאגין לא מושבת באמצעות אחד מהדגלים הבאים:
-
instrumentationEnabledבקובץ של המודול (ברמת האפליקציה)build.gradle firebasePerformanceInstrumentationEnabledבקובץgradle.propertiesשלך
-
בודקים שערכת Performance Monitoring SDK לא מושבתת באמצעות אחד מהדגלים הבאים בקובץ
AndroidManifest.xml:firebase_performance_collection_enabledfirebase_performance_collection_deactivated
מוודאים ש-Performance Monitoring לא מושבת בזמן הריצה.
אם לא מצאתם באפליקציה שלכם תכונות מושבתות, אתם יכולים לפנות לתמיכה של Firebase.
במסוף מצוין שערכת ה-SDK זוהתה, אבל לא מוצגים נתונים
Performance Monitoring מעבד את נתוני אירועי הביצועים לפני שהוא מציג אותם במרכז הבקרה לביצועים.
אם עברו יותר מ-24 שעות מאז שהופיעה ההודעה 'זוהה SDK', ועדיין לא מופיעים נתונים, כדאי לבדוק את לוח הבקרה של סטטוס Firebase כדי לראות אם יש הפסקת שירות ידועה. אם אין הפסקת שירות, פנו לתמיכה של Firebase.
פתרון בעיות כלליות
אם הוספתם את ה-SDK בהצלחה ואתם משתמשים ב-Performance Monitoring באפליקציה, טיפים לפתרון בעיות שבהמשך יכולים לעזור לכם לפתור בעיות כלליות שקשורות לתכונות ולכלים של Performance Monitoring.
האפליקציה לא מתעדת אירועי ביצועים
אם אתם לא רואים הודעות יומן לגבי אירועי ביצועים, נסו את השלבים הבאים לפתרון בעיות:
בודקים את ההגדרה של התוסף Performance Monitoring Gradle, באופן הבא:
מוודאים שהוספתם את הפלאגין בצורה נכונה. באופן ספציפי, כדאי לבדוק את הנקודות הבאות:
- הוספת את הפלאגין
(
) בקובץapply plugin: 'com.google.firebase.firebase-perf' build.gradleשל המודול (ברמת האפליקציה). - הוספתם את התלות של נתיב המחלקה (classpath) של הפלאגין
(
) בקובץclasspath 'com.google.firebase:perf-plugin:2.0.2' build.gradleברמת הפרויקט.
- הוספת את הפלאגין
(
מוודאים שהפלאגין לא מושבת באמצעות אחד מהדגלים הבאים:
-
instrumentationEnabledבקובץ של המודול (ברמת האפליקציה)build.gradle firebasePerformanceInstrumentationEnabledבקובץgradle.propertiesשלך
-
בודקים שערכת Performance Monitoring SDK לא מושבתת באמצעות אחד מהדגלים הבאים בקובץ
AndroidManifest.xml:firebase_performance_collection_enabledfirebase_performance_collection_deactivated
מוודאים ש-Performance Monitoring לא מושבת בזמן הריצה.
אם לא מצאתם באפליקציה שלכם תכונות מושבתות, אתם יכולים לפנות לתמיכה של Firebase.
חסרים נתוני מעקב אחר מסך בלוח הבקרה של הביצועים
אם חסרים לכם נתונים של עקבות רינדור המסך, נסו את השלבים הבאים לפתרון בעיות:
מוודאים שמשתמשים בגרסה העדכנית ביותר של Android SDK (v22.0.5). אפשר להשתמש בנתוני מעקב של עיבוד המסך רק בגרסה 15.2.0 ואילך.
מוודאים שלא השבתתם ידנית את האצת החומרה במסך.
מוודאים שלא משתמשים ב-DexGuard או ב-Jack. Performance Monitoring לא תואם לשרשראות הכלים האלה.
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: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) של הפלאגין
(
) בקובץ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 ו-HttpClient של Apache.
הערה: אפשר להוסיף מעקב מותאם אישית לבקשות רשת.
חשוב לשים לב לנקודות הבאות:
בהתאם להתנהגות של הקוד וספריות הרשת שבהן נעשה שימוש בקוד, יכול להיות ש-Performance Monitoring ידווח רק על בקשות רשת שהושלמו. המשמעות היא שחיבורי HTTP/S שנשארו פתוחים לא ידווחו.
האפליקציה Performance Monitoring לא תואמת ל-DexGuard ול-Jack.
- DexGuard משבית את המעקב אחרי בקשות רשת מסוג HTTP/S.
- הכלי Jack יצא משימוש, ובדרך כלל לא מומלץ להשתמש בו באפליקציה.
Performance Monitoring לא מדווח על בקשות רשת עם כותרות
Content-Typeלא תקינות. עם זאת, בקשות לרשת ללא הכותרותContent-Typeעדיין יתקבלו.
נתוני בקשות לאחזור מהרשת לא מצטברים כמו שצריך
מידע נוסף על איך Performance Monitoring צובר נתונים של בקשות לאחזור מהרשת לפי תבניות של כתובות URL
אפשר גם לנסות דפוסי כתובות URL מותאמות אישית.
שאלות נפוצות
מה קרה לכרטיס 'הבעיות העיקריות' בדף הבית של הפרויקט?
החלפנו את הבעיות העיקריות בהתראות האחרונות. השינוי הזה הוא המשך של השקת ההתראות לאחרונה, שמודיעות לכם באופן אוטומטי כשערכי הסף שהגדרתם נחצים. הדף 'בעיות' הוצא משימוש והוחלף בהתראות.
בורר האפליקציות בחלק העליון של כרטיס הביצועים מסנן את רשומות ההתראות בקטע התראות מהזמן האחרון. מוצגות רק שלוש ההתראות האחרונות לגבי האפליקציות שנבחרו.
מידע נוסף על התראות זמין במאמר בנושא הגדרת התראות לגבי בעיות בביצועים.
מה קרה לאפשרות להגדיר ערכי סף לבעיות במסוף?
Performance Monitoring תומך בהתראות לגבי מדדים שחורגים מספי ערך מוגדרים. כדי למנוע בלבול עם ספי הערך האלה שאפשר להגדיר למדדי ביצועים, הסרנו את האפשרות להגדיר ספי ערך לבעיות.
מה קרה לפרטים ולמדדים במסוף Firebase?
החלפנו את הדפים 'פרטים' ו'מדדים' בממשק משתמש (UI) חדש, מרכזי ומעוצב מחדש, כדי לשפר את האופן שבו אתם פותרים בעיות. ממשק המשתמש החדש לפתרון בעיות מציע את אותה פונקציונליות עיקרית שהייתה זמינה ב'פרטים' וב'מדדים'. מידע נוסף על פתרון בעיות זמין במאמר הצגת נתונים נוספים של מעקב ספציפי.
למה מספר הדגימות לא תואם למה שציפיתי?
Performance Monitoring אוסף נתוני ביצועים ממכשירי המשתמשים של האפליקציה. אם לאפליקציה יש הרבה משתמשים או שהיא יוצרת כמות גדולה של פעילות שקשורה לביצועים, יכול להיות ש-Performance Monitoring יגביל את איסוף הנתונים לקבוצת משנה של מכשירים כדי לצמצם את מספר האירועים שעוברים עיבוד. המגבלות האלה גבוהות מספיק כך שגם עם פחות אירועים, ערכי המדדים עדיין מייצגים את חוויית השימוש של המשתמשים באפליקציה.
כדי לנהל את נפח הנתונים שאנחנו אוספים, Performance Monitoring משתמש באפשרויות הדגימה הבאות:
הגבלת קצב במכשיר: כדי למנוע ממכשיר לשלוח פרצי נתונים פתאומיים של עקבות, אנחנו מגבילים את מספר העקבות של קוד ובקשות לאחזור מהרשת שנשלחים ממכשיר ל-300 אירועים בכל 10 דקות. הגישה הזו מגנה על המכשיר מפני מכשירי מדידה שפועלים בלולאה ויכולים לשלוח כמויות גדולות של נתוני ביצועים, והיא מונעת ממכשיר יחיד להטות את מדידות הביצועים.
דגימה דינמית: Performance Monitoring אוספת מספר מוגבל של עקבות קוד ועקבות של בקשות לאחזור מהרשת לכל אפליקציה מדי יום מכל משתמשי האפליקציה. מכשירי Firebase Remote Config מאחזרים שיעור דגימה דינמי כדי לקבוע אם מכשיר אקראי צריך לצלם ולשלוח עקבות. מכשיר שלא נבחר לדגימה לא שולח אירועים. שיעור הדגימה הדינמי הוא ספציפי לאפליקציה ומשתנה כדי להבטיח שנפח הנתונים הכולל שנאסף יישאר מתחת למגבלה.
בפרויקטים שבהם הופעל השילוב עם BigQuery, המגבלה על מספר העקבות של בקשות לאחזור מהרשת גבוהה יותר.
סשנים של משתמשים שולחים נתונים נוספים ומפורטים מהמכשיר של המשתמש, ולכן נדרשים יותר משאבים כדי לתעד ולשלוח את הנתונים. כדי לצמצם את ההשפעה של סשנים של משתמשים, יכול להיות ש-Performance Monitoring גם יגביל את מספר הסשנים.
הגבלת קצב העברת נתונים בצד השרת: כדי לוודא שהאפליקציות לא חורגות ממגבלת הדגימה, יכול להיות ש-Performance Monitoring ישתמש בדגימה בצד השרת כדי להשליך חלק מהאירועים שמתקבלים מהמכשירים. למרות שהגבלת הנתונים מהסוג הזה לא משנה את היעילות של המדדים שלנו, היא עלולה לגרום לשינויים קלים בדפוסים, כולל השינויים הבאים:
- מספר העקבות יכול להיות שונה ממספר הפעמים שקטע קוד הוצא לפועל.
- יכול להיות שלכל אחד מהמעקבים שמשולבים בקוד יהיה מספר שונה של דגימות.
מה קרה לכרטיסייה בעיות במסוף?
החלפנו את הכרטיסייה 'בעיות' בהתראות, שמודיעות לכם באופן אוטומטי כשיש חריגה מספי ההתראות שהגדרתם. לא צריך יותר לבדוק ידנית את מסוף Firebase כדי לדעת מה הסטטוס של סף. מידע נוסף על התראות זמין במאמר הגדרת התראות לגבי בעיות בביצועים.
מה קרה לכרטיסיות במכשיר וברשת במסוף? איך אפשר לראות את העקבות שהיו בדפים האלה?
עיצבנו מחדש את הקטע Performance Monitoring במסוף Firebase כך שכרטיסיית לוח הבקרה תציג את מדדי המפתח ואת כל העקבות במקום אחד. כחלק מהעיצוב מחדש, הסרנו את הדפים במכשיר ורשת.
בטבלת העקבות בחלק התחתון של הכרטיסייה מרכז הבקרה מופיעים כל הנתונים שהוצגו בכרטיסיות במכשיר ורשת, אבל עם כמה תכונות נוספות, כולל האפשרות למיין את העקבות לפי אחוז השינוי במדד ספציפי. כדי לראות את כל המדדים והנתונים של טרייס ספציפי, לוחצים על שם הטרייס בטבלת הטרייסים.
אפשר לראות את העקבות בכרטיסיות המשנה הבאות של טבלת העקבות:
- מעקב אחרי בקשות לאחזור מהרשת (גם מוכן מראש וגם בהתאמה אישית) – כרטיסיית המשנה בקשות לאחזור מהרשת
- מעקב אחר קוד בהתאמה אישית – כרטיסיית המשנה Custom traces
- עקבות של הפעלת אפליקציה, אפליקציה בחזית ואפליקציה ברקע – כרטיסיית המשנה עקבות בהתאמה אישית
- עקבות של עיבוד המסך – כרטיסיית המשנה עיבוד המסך
- עקבות של טעינת דפים – כרטיסיית המשנה Page load
פרטים על טבלת העקבות ועל הצגת מדדים ונתונים זמינים בדף הסקירה הכללית של המסוף (iOS+ | Android | אינטרנט).
למה מספר הפריימים האיטיים והקפואים לא תואם למה שציפיתי?
פריימים עם רינדור איטי ופריימים קפואים מחושבים על סמך קצב רענון משוער של המכשיר של 60 הרץ. אם קצב הרענון של המכשיר נמוך מ-60Hz, לכל פריים יהיה זמן רינדור איטי יותר כי פחות פריימים עוברים רינדור בכל שנייה. זמני רינדור איטיים יותר עלולים לגרום לדיווח על יותר פריימים איטיים או קפואים, כי יותר פריימים ירונדרו לאט יותר או יקפאו. עם זאת, אם קצב הרענון של המכשיר גבוה מ-60Hz, כל פריים ירונדר מהר יותר. כתוצאה מכך, יכול להיות שיתקבלו פחות דיווחים על פריימים איטיים או קפואים. זוהי מגבלה נוכחית ב-Performance Monitoring SDK.
למה אני לא רואה את עקבות הפרגמנטים?
כדי לראות את הביצועים של קטעי קוד בנוסף לפעילות באפליקציה, צריך לוודא שהאפליקציה משתמשת ב-Performance Monitoring Android SDK בגרסה 20.1.0 ומעלה. מידע נוסף זמין במאמר בנושא הוספת מעקב אחר ביצועים לאפליקציה.
איך אפשר להבין אילו עקבות קשורים לפעילויות ולמקטעים?
כל אחד מהמעקבים של הפעילות והקטעים מבוסס על שם המחלקה שלו, כפי שהוגדר באפליקציה. כל אחד מהמעקבים של המסך מכיל את הקידומת st ואחריה את שם המחלקה. במסוף Firebase, התחילית מוסרת. מידע נוסף זמין במאמר מידע על נתוני ביצועים של עיבוד מסך (אפליקציות ל-Apple ול-Android) .
למה אני רואה פחות עקבות של פרגמנטים בהשוואה לעקבות אחרות?
Performance Monitoring מבצעת דגימת אירועים בכל האירועים שנאספים במכשיר. הגישה הזו מאפשרת לנו לאסוף את מספר האירועים המינימלי שנדרש ממכשירי המשתמשים כדי לספק מדדי ביצועים.
איך מקבלים הודעה כשיש בעיה בביצועי העיבוד של האפליקציה?
Performance Monitoring מאפשרת להגדיר התראות לגבי המדדים שחשובים לכם. לגבי עקבות של עיבוד מסך שנוצרו, אפשר להגדיר התראות כדי לקבל הודעה כשאחוז הפריימים האיטיים והקפואים עובר את הסף שהגדרתם.
זמני הבנייה שלי גבוהים אחרי הפעלת הפלאגין Performance Monitoring Gradle. איך אפשר לשפר את זה?
Performance Monitoring ל-Android משתמשת בשינוי של קוד בייט כדי לספק כמה תכונות מוכנות לשימוש, כמו מעקב אחרי בקשות רשת מסוג HTTP/S. כחלק מהקומפילציה, התהליך דורש איטרציה בכל המחלקות של האפליקציה (כולל יחסי תלות) כדי לבצע אינסטרומנטציה לקוד שחיוני למדידת הביצועים של בקשות לאחזור מהרשת באפליקציה.
אלה כמה מהגורמים העיקריים שמשפיעים על משך זמן של תהליך build:
- מספר הכיתות או הקבצים
- הגודל של כל אחת מהמחלקות האלה (שורות קוד)
- הגדרת המכונה
- גרסת build ראשונית לעומת גרסת build עוקבת (גרסאות build עוקבות בדרך כלל מהירות יותר מהגרסה הראשונית)
כדי לייעל את משך זמן של תהליך build, כדאי להפוך את הקוד למודולרי.
החל מגרסה v1.3.3 של התוסף Performance Monitoring, התמקדנו בביצוע שיפורים משמעותיים בעיבוד של בנייה מצטברת ובשמירת נתוני קלט של ספריות במטמון. כדי ליהנות מהשיפורים האחרונים ב משך זמן של תהליך build, חשוב להשתמש בגרסה העדכנית ביותר של הפלאגין (גרסה 2.0.2).
שימו לב: אם אתם רוצים להימנע מזמני בנייה ארוכים, אתם יכולים להשבית את התוסף Performance Monitoring באופן מקומי בגרסאות הניפוי באגים. עם זאת, לא מומלץ להשתמש בגישה הזו בגרסאות ייצור, כי היא עלולה לגרום לכך שלא יתבצעו מדידות של ביצועי בקשות הרשת באפליקציה.
מה עושים אם מקבלים שגיאות build בגלל ספריות לא תואמות עם התוסף Performance Monitoring Gradle?
Performance Monitoring ל-Android משתמשת בשינוי של קוד בייט כדי לספק כמה תכונות מוכנות לשימוש, כמו מעקב אחרי בקשות רשת מסוג HTTP/S. כחלק מהקומפילציה, התהליך דורש איטרציה בכל המחלקות של האפליקציה (כולל יחסי תלות) כדי לבצע אינסטרומנטציה לקוד שחיוני למדידת הביצועים של בקשות לאחזור מהרשת באפליקציה.
אם אתם מקבלים שגיאות בנייה כמו JSR/RET are not supported with
computeFrames option או שגיאות דומות אחרי שמשלבים את הפלאגין Performance Monitoring, יכול להיות שזה קורה כי יש לכם גם תלות בספרייה שלא תואמת לפלאגין Performance Monitoring Gradle.
כדי לעקוף את הבעיה הזו, אפשר להחריג כיתות או ספריות לא תואמות מהוספת המכשיר לפי השלבים הבאים:
- מעדכנים לגרסה האחרונה של Performance Monitoring Gradle plugin (מינימום v1.4.0).
- מעדכנים את הגרסה של הפלאגין של Android Gradle לגרסה 7.2.0 ואילך.
- כדי להחריג את המחלקות או הספריות הלא תואמות מהמכשיר, מוסיפים את הדגל הבא לקובץ
build.gradleברמת המודול (רמת האפליקציה): מידע נוסף על המאפייןandroid { // ... androidComponents { onVariants(selector().all(), { instrumentation.excludes.add("example.incompatible.library") }) } }
excludeשל Android Gradle plugin'sInstrumentationAPI זמין במאמר בנושא Instrumentation.
אם נתקלתם בשגיאות build בגלל ספריות לא תואמות, אתם מוזמנים לדווח על בעיה ב-GitHub כדי שנוכל להוסיף אותן לרשימת הספריות שלא ייכללו ב-instrumentation של התוסף 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 ואילך (או Firebase Android BoM גרסה 26.1.0 ואילך)
- אינטרנט – גרסה 7.14.0 ואילך
שימו לב: אנחנו תמיד ממליצים להשתמש בגרסה האחרונה של ה-SDK, אבל כל גרסה שמפורטת למעלה תאפשר ל-Performance Monitoring לעבד את הנתונים שלכם כמעט בזמן אמת.
אילו גרסאות של Performance Monitoring SDK נחשבות תואמות לזמן אמת?
אלה גרסאות ה-SDK שתואמות לעיבוד נתונים בזמן אמת:
- iOS – גרסה 7.3.0 ואילך
- tvOS – גרסה 8.9.0 ואילך
- Android – גרסה 19.0.10 ואילך (או Firebase Android BoM גרסה 26.1.0 ואילך)
- אינטרנט – גרסה 7.14.0 ואילך
שימו לב: אנחנו תמיד ממליצים להשתמש בגרסה האחרונה של ה-SDK, אבל כל גרסה שמפורטת למעלה תאפשר ל-Performance Monitoring לעבד את הנתונים שלכם כמעט בזמן אמת.
מה יקרה אם לא אעדכן את האפליקציה שלי כדי להשתמש בגרסת SDK שתואמת לנתונים בזמן אמת?
אם האפליקציה שלכם לא משתמשת בגרסת SDK שתואמת לנתונים בזמן אמת, עדיין תוכלו לראות את כל נתוני הביצועים של האפליקציה ב-Firebase Console. עם זאת, נתוני הביצועים יוצגו באיחור של כ-36 שעות ממועד האיסוף שלהם.
עדכנתי לגרסת SDK שתואמת לנתונים בזמן אמת, אבל חלק מהמשתמשים שלי עדיין משתמשים בגרסאות ישנות של האפליקציה שלי. האם נתוני הביצועים שלהם ימשיכו להופיע במסוף Firebase?
כן! לא משנה באיזו גרסת SDK נעשה שימוש במופע של אפליקציה, תוכלו לראות נתוני ביצועים מכל המשתמשים שלכם.
עם זאת, אם אתם בודקים נתונים עדכניים (בני פחות מ-36 שעות בערך), הנתונים שמוצגים הם של משתמשים במופעי אפליקציה שמשתמשים בגרסת SDK שתואמת לזמן אמת. לעומת זאת, הנתונים לא עדכניים כוללים נתוני ביצועים מכל הגרסאות של האפליקציה.
למה אני לא רואה נתוני ביצועים בזמן אמת?
כדי לראות נתוני ביצועים בזמן אמת, צריך לוודא שהאפליקציה משתמשת בגרסת SDK שתואמת לעיבוד נתונים בזמן אמת.Performance Monitoring
- iOS – גרסה 7.3.0 ואילך
- tvOS – גרסה 8.9.0 ואילך
- Android – גרסה 19.0.10 ואילך (או Firebase Android BoM גרסה 26.1.0 ואילך)
- אינטרנט – גרסה 7.14.0 ואילך
שימו לב: אנחנו תמיד ממליצים להשתמש בגרסה האחרונה של ה-SDK, אבל כל גרסה שמפורטת למעלה תאפשר ל-Performance Monitoring לעבד את הנתונים שלכם כמעט בזמן אמת.
פנייה לתמיכה של Firebase
אם פונים לתמיכה של Firebase, חשוב תמיד לכלול את מזהה האפליקציה ב-Firebase. מזהה האפליקציה ב-Firebase מופיע בכרטיס האפליקציות שלך בsettings הגדרות הפרויקט.