בדף הזה מפורטים טיפים לפתרון בעיות לתחילת העבודה עם 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
. באמצעות סינון של logcat, אפשר להציג באופן ספציפי את הנתונים של זמן המעקב ואת הרישום ביומן של בקשות הרשת מסוג HTTP/S. לשם כך, מריצים את הפקודה הבאה:adb logcat -s FirebasePerformance
מחפשים את סוגי היומנים הבאים שמעידים על כך שהרישום Performance Monitoring ביומן של אירועי ביצועים:
Logging trace metric: TRACE_NAME, FIREBASE_PERFORMANCE_CONSOLE_URL
Logging network request trace: URL
לוחצים על כתובת ה-URL כדי להציג את הנתונים במסוף Firebase. יכול להיות שיעברו כמה רגעים עד שהנתונים יתעדכנו בלוח הבקרה.
אם האפליקציה לא מתעדת אירועי ביצועים, היעזרו בטיפים לפתרון בעיות.
2. בדיקת לוח הבקרה של הסטטוס של Firebase
כדאי להיכנס אל לוח הבקרה של סטטוס Firebase כדי לבדוק אם הייתה הפסקה זמנית בשירות של Firebase או של Performance Monitoring.
איך מתחילים לעבוד עם Performance Monitoring
אם אתם מתחילים להשתמש ב-Performance Monitoring (iOS+ | Android | אינטרנט), הטיפים הבאים לפתרון בעיות יכולים לעזור לכם בבעיות שקשורות לזיהוי ה-SDK ב-Firebase או להצגת נתוני הביצועים הראשונים במסוף Firebase.
הוספת ה-SDK לאפליקציה, אבל עדיין מופיעה הודעת הנחיה להוסיף SDK במסוף
מערכת Firebase יכולה לזהות אם הוספת בהצלחה את ה-SDK Performance Monitoring לאפליקציה כשהוא מקבל מידע על אירועים (כמו אינטראקציות עם אפליקציות) מהאפליקציה. בדרך כלל תוך 10 דקות מרגע הפעלת האפליקציה, במרכז הבקרה ביצועים במסוף Firebase מוצגת ההודעה "זוהה SDK". לאחר מכן, תוך 30 דקות, הנתונים הראשוניים שעברו עיבוד יוצגו במרכז הבקרה.
אם חלפו יותר מ-10 דקות מאז הוספתם את הגרסה האחרונה של ה-SDK לאפליקציה, ועדיין לא ראיתם שינויים, בדקו את הודעות היומן כדי לוודא ש-Performance Monitoring מתעד אירועים. כדי לפתור בעיה של הודעת זיהוי SDK מאוחרת, כדאי לנסות את השלבים המתאימים לפתרון בעיות.
האפליקציה מתעדת אירועים: שלבים לפתרון בעיות
אתם צריכים לוודא שאתם משתמשים ב-Performance Monitoring Android SDK מגרסה 19.1.0 ואילך (או Firebase BoM מגרסה 26.3.0 ואילך). כדאי לעיין בנתוני הגרסה.
אם אתם עדיין מפתחים באופן מקומי, נסו ליצור עוד אירועים לאיסוף נתונים:
- כדי ליצור אירועים, אפשר להעביר את האפליקציה כמה פעמים בין הרקע לחזית, ליצור אינטראקציה עם האפליקציה על ידי ניווט בין המסכים ו/או להפעיל בקשות רשת.
מוודאים שקובץ התצורה של Firebase (
google-services.json
) נוסף לאפליקציה בצורה נכונה ושלא שיניתם את הקובץ. באופן ספציפי, כדאי לבדוק את הדברים הבאים:לשם של קובץ התצורה לא מצורפים תווים נוספים, למשל
(2)
.קובץ התצורה נמצא בספריית המודול (ברמת האפליקציה) של האפליקציה.
מזהה האפליקציה ל-Android ב-Firebase (
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:1.4.2' build.gradle
ברמת הפרויקט.
- הוספת את הפלאגין (
מוודאים שהפלאגין לא מושבת באמצעות אחד מהדגלים הבאים:
instrumentationEnabled
במודול (ברמת האפליקציה) בקובץbuild.gradle
firebasePerformanceInstrumentationEnabled
בקובץgradle.properties
בודקים ש-ה-SDK של Performance Monitoring לא מושבת באמצעות אחד מהדגלים הבאים בקובץ
AndroidManifest.xml
:firebase_performance_collection_enabled
firebase_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:1.4.2' build.gradle
ברמת הפרויקט.
- הוספת את הפלאגין (
מוודאים שהפלאגין לא מושבת באמצעות אחד מהדגלים הבאים:
instrumentationEnabled
בקובץbuild.gradle
של המודול (ברמת האפליקציה)firebasePerformanceInstrumentationEnabled
בקובץgradle.properties
בודקים ש-ה-SDK של Performance Monitoring לא מושבת באמצעות אחד מהדגלים הבאים בקובץ
AndroidManifest.xml
:firebase_performance_collection_enabled
firebase_performance_collection_deactivated
אם לא מצאתם תכונה מושבתת באפליקציה, פנו לתמיכה של Firebase.
חסרים נתוני מעקב אחר מסך בלוח הבקרה של הביצועים
אם חסרים נתונים לגבי עקבות של עיבוד מסך, אפשר לנסות את השלבים הבאים לפתרון בעיות:
חשוב לוודא שמשתמשים בגרסה העדכנית ביותר של Android SDK (גרסה 21.0.2). מעקב אחר רינדור המסך זמין רק בגרסה 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:1.4.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:1.4.2' build.gradle
ברמת הפרויקט.
- הוספת את הפלאגין (
מוודאים שהפלאגין לא מושבת באמצעות אחד מהדגלים הבאים:
instrumentationEnabled
בקובץbuild.gradle
של המודול (ברמת האפליקציה)firebasePerformanceInstrumentationEnabled
בקובץgradle.properties
בודקים אם ספריית הרשת לא תואמת. Performance Monitoring אוסף באופן אוטומטי מדדים לבקשות רשת שמשתמשות בספריות הרשת הבאות: OkHttp 3.x.x, Java's URLConnection ו-Apache HttpClient.
שימו לב שאפשר להוסיף מעקב מותאם אישית לבקשות רשת.
חשוב לשים לב לנקודות הבאות:
בהתאם להתנהגות הקוד וספריות הרשתות שבהן הקוד משתמש, ייתכן ש-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 עשוי להשתמש בדגימה בצד השרת כדי להשמיט חלק מהאירועים שהתקבלו מהמכשירים. הגבלה כזו לא משנה את יעילות המדדים שלנו, אבל היא עלולה לגרום לשינויים קלים בדפוסים, כולל:
- מספר המעקבים יכול להיות שונה ממספר הפעמים שבהן קטע קוד הופעל.
- ל-traces שמקושרים זה לזה בקוד יכול להיות מספר שונה של דגימות.
מה קרה לכרטיסייה בעיות במסוף?
החלפנו את הכרטיסייה 'בעיות' והוספנו ל-Alerts התראות באופן אוטומטי כשיש חריגה מערכי הסף שהגדרתם. כבר לא צריך לבדוק ידנית את המסוף של Firebase כדי לקבוע את הסטטוס של הסף. מידע נוסף על התראות זמין במאמר הגדרת התראות לגבי בעיות בביצועים.
מה קרה לכרטיסיות במכשיר ורשת במסוף? איך אפשר לראות את העקבות שהיו בדפים האלה?
עיצבנו מחדש את הקטע Performance Monitoring במסוף Firebase, כך שכרטיסיית Dashboard מציגה את מדדי המפתח ואת כל המעקבים במרחב אחד. כחלק מהעיצוב החדש, הסרנו את הדפים במכשיר ורשת.
בטבלת המעקב שבתחתית הכרטיסייה Dashboard מוצגים אותם פרטים שמוצגים בכרטיסיות On device ו-Network, אבל עם כמה תכונות נוספות, כולל היכולת למיין את המעקבים לפי שינוי האחוז של מדד ספציפי. כדי להציג את כל המדדים והנתונים של מעקב ספציפי, לוחצים על שם המעקב בטבלת המעקבים.
אפשר לראות את נתוני המעקב בכרטיסיות המשנה הבאות של טבלת המעקב:
- מעקב אחר בקשות רשת (גם מוכנות מראש וגם בהתאמה אישית) – בכרטיסייה המשנית בקשות רשת
- מעקבי קוד בהתאמה אישית – כרטיסיית המשנה מעקבים בהתאמה אישית
- נתוני מעקב של הפעלת אפליקציה, אפליקציה בחזית, אפליקציה ברקע – הכרטיסייה המשנית נתוני מעקב בהתאמה אישית
- נתוני מעקב של רינדור המסך – בכרטיסייה המשנית רינדור המסך
- מעקב אחר טעינת דפים – כרטיסיית משנה טעינת דף
פרטים על טבלת המעקב ונתונים ומדדים שמוצגים בה מופיעים בדף הסקירה הכללית של המסוף (iOS+ | Android | אינטרנט).
למה מספר הפריימים האיטיים והפריימים הקפואים לא תואם לציפיות שלי?
פריימים של רינדור איטי ופריימים קפואים מחושבים עם קצב רענון משוער של המכשיר של 60Hz. אם קצב הרענון של המכשיר נמוך מ-60Hz, זמן הרינדור של כל פריים יהיה איטי יותר כי פחות פריימים עוברים רינדור בכל שנייה. זמני רינדור איטיים יותר עלולים לגרום לדיווח על פריימים איטיים או קפואים יותר, כי יותר פריימים יעברו עיבוד לאט יותר או יקפאו. עם זאת, אם קצב הרענון של המכשיר גבוה מ-60Hz, זמן הרינדור של כל פריים יהיה מהיר יותר. כתוצאה מכך, פחות פריימים איטיים או קפואים ידווחו. זוהי הגבלה נוכחית ב-SDK של Performance Monitoring.
למה אני לא יכול לראות מעקבי מקטעים?
כדי לראות את הביצועים של קטעי קוד בנוסף לפעילות באפליקציה, צריך לוודא שבאפליקציה שלכם מותקנת גרסת Performance Monitoring Android SDK 20.1.0 ואילך. למידע נוסף, ראו הוספת מעקב אחר ביצועים לאפליקציה.
איך אפשר להבין אילו מעקבים קשורים למקטעים ולפעילויות?
כל אחד ממעקבי המקטעים והפעילות מבוסס על שם המחלקה שלו, כפי שמוגדר באפליקציה. כל אחד ממעקבי המסך מכיל את הקידומת st ואחריה את שם הכיתה. במסוף Firebase, התחילית תוסר. מידע נוסף זמין במאמר מידע על נתוני ביצועים של עיבוד מסך (אפליקציות ל-Apple ול-Android).
למה יש פחות שרידי קטעים בהשוואה לשרידי נתונים אחרים?
ב-Performance Monitoring מתבצעת דגימת אירועים בכל האירועים שנאספים במכשיר. כך אנחנו יכולים לאסוף את מספר האירועים המינימליים שנדרשים ממכשירי המשתמשים כדי לספק מדדי ביצועים.
איך תקבלו התראה אם יש בעיה בביצועי הרינדור של האפליקציה?
ב-Performance Monitoring אפשר להגדיר התראות על המדדים שחשובים לך. במקרה של מעקבים אחרי עיבוד מסך שנוצרים, אפשר להגדיר התראות כדי לקבל התראה כשאחוז הפריימים האיטיים והקפואים חורג מהסף שהגדרתם.
אחרי ההפעלה של הפלאגין Performance Monitoring Gradle, זמני ה-build שלי גבוהים. איך אוכל לשפר את זה?
Performance Monitoring ל-Android משתמש באינסטרומנטציה של בייטקוד כדי לספק כמה תכונות ייחודיות, כמו מעקב אחרי בקשות רשת HTTP/S. כחלק מההדרכה, התהליך כולל חזרה על כל הכיתות של האפליקציה (כולל יחסי התלות) כדי לבדוק את הקוד שחשוב למדידת הביצועים של הבקשות לרשת באפליקציה.
לפניכם כמה מהגורמים העיקריים שמאריכים את זמן ה-build:
- מספר הכיתות או הקבצים
- הגודל של כל אחת מהכיתות האלה (שורות קוד)
- הגדרות המכונה
- build ראשוני לעומת build נוסף (גרסאות ה-build הבאות בדרך כלל מהירות יותר מה-build הראשוני)
כדי לבצע אופטימיזציה של זמן ה-build, מומלץ לחלק את הקוד למקטעים.
החל מגרסה v1.3.3 של הפלאגין Performance Monitoring, התרכזנו בביצוע שיפורים משמעותיים בעיבוד ה-build המצטבר ובשמירה במטמון של קלט הספרייה. כדי ליהנות מהשיפורים האחרונים בזמן ה-build, חשוב להשתמש בגרסה העדכנית ביותר של הפלאגין (v1.4.2).
שימו לב שאפשר להשבית את הפלאגין Performance Monitoring של גרסאות ה-build של ניפוי הבאגים באופן מקומי, אם רוצים להימנע מזמני build ארוכים. עם זאת, הגישה הזו לא מומלצת לגרסאות build בסביבת הייצור, כי היא עלולה לגרום לפספס מדידות ביצועים של בקשות הרשת באפליקציה.
מה עושים אם מקבלים שגיאות build בגלל ספריות לא תואמות ל-Performance Monitoring Gradle plugin?
ב-Performance Monitoring ל-Android נעשה שימוש במדידה של קוד בייט כדי לספק כמה תכונות מוכנות לשימוש, כמו מעקב אחר בקשות רשת מסוג HTTP/S. כחלק מההדרכה, התהליך כולל חזרה על כל הכיתות של האפליקציה (כולל יחסי התלות) כדי לבדוק את הקוד שחשוב למדידת הביצועים של בקשות הרשת באפליקציה.
אם מופיעות שגיאות build כמו JSR/RET are not supported with
computeFrames option
או שגיאות דומות אחרי השילוב עם הפלאגין Performance Monitoring, יכול להיות שיש לכם גם תלות בספרייה שאינה תואמת לפלאגין Performance Monitoring של Gradle.
כדי לעקוף את הבעיה, אפשר להחריג מחלקות או ספריות לא תואמות למדידה של ספריות או ספריות באופן הבא:
- צריך לעדכן לגרסה האחרונה של הפלאגין Performance Monitoring Gradle (גרסה 1.4.0 לפחות).
- מעדכנים את הגרסה של הפלאגין של Android Gradle לגרסה 7.2.0 ואילך.
- מוסיפים את הדגל הבא לקובץ
build.gradle
של המודול (ברמת האפליקציה) כדי להחריג את הכיתות או הספריות הלא תואמות מההטמעה: מידע נוסף על המאפייןandroid { // ... androidComponents { onVariants(selector().all(), { instrumentation.excludes.add("example.incompatible.library") }) } }
exclude
של ממשק ה-APIInstrumentation
של הפלאגין של Android Gradle זמין במאמר Instrumentation.
אם נתקלתם בשגיאות build בגלל ספריות לא תואמות, עליכם לדווח על הבעיה ב-GitHub כדי שנוכל להחריג אותן מההטמעה בתוסף Performance Monitoring.
ייצוא הנתונים של Performance Monitoring ל-BigQuery נמשך יותר מהצפוי. האם זה לא בזמן אמת?
אם הפעלתם את השילוב עם BigQuery ב-Firebase Performance Monitoring, הנתונים ייוּצאו ל-BigQuery 12 עד 24 שעות אחרי סוף היום (לפי שעון החוף המערבי).
לדוגמה, הנתונים מ-19 באפריל יהיו זמינים ב-BigQuery ב-20 באפריל בין 12:00 לחצות (כל התאריכים והשעות הם לפי שעון החוף המערבי).
עיבוד נתונים והצגה כמעט בזמן אמת
מה המשמעות של נתוני ביצועים 'כמעט בזמן אמת'?
ב-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 לעבד את הנתונים שלכם כמעט בזמן אמת.
אילו גרסאות של ה-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 לעבד את הנתונים שלך כמעט בזמן אמת.
מה קורה אם לא מעדכנים את האפליקציה כך שתשתמש בגרסת SDK תואמת בזמן אמת?
אם באפליקציה שלך לא נעשה שימוש בגרסת SDK תואמת בזמן אמת, עדיין יופיעו כל נתוני הביצועים של האפליקציה במסוף Firebase. עם זאת, הצגת נתוני הביצועים תידחה בכ-36 שעות ממועד האיסוף שלהם.
עדכנתי לגרסת SDK תואמת בזמן אמת, אבל חלק מהמשתמשים שלי עדיין משתמשים בגרסאות ישנות של האפליקציה. האם אני ממשיך לראות את נתוני הביצועים שלהם במסוף Firebase?
כן! לא משנה באיזו גרסת SDK משתמשת מופע של אפליקציה, תוכלו לראות נתוני ביצועים מכל המשתמשים.
עם זאת, אם אתם בודקים נתונים עדכניים (שנצברו לפני פחות מ-36 שעות), הנתונים שמוצגים הם ממשתמשים במופעי אפליקציה שמשתמשים בגרסה תואמת של SDK בזמן אמת. עם זאת, הנתונים הלא עדכניים כוללים נתוני ביצועים מכל הגרסאות של האפליקציה.
פנייה לתמיכה של Firebase
אם תפנו לתמיכה של Firebase, תמיד צריך לכלול את מזהה האפליקציה ב-Firebase. מאתרים את מזהה האפליקציה ב-Firebase בכרטיס Your apps של settings הגדרות הפרויקט.