אם אתם מתחילים להשתמש ב-Performance Monitoring
(iOS+ |
Android |
Web), טיפים לפתרון בעיות שבהמשך יכולים לעזור לכם לפתור בעיות שקשורות לזיהוי ה-SDK על ידי Firebase או להצגת נתוני הביצועים הראשונים במסוף Firebase.
הוספתי את ה-SDK לאפליקציה, אבל במסוף עדיין מופיעה ההודעה שצריך להוסיף את ה-SDK
מערכת Firebase יכולה לזהות אם הוספתם בהצלחה את Performance Monitoring SDK לאפליקציה שלכם
כשהיא מקבלת מהאפליקציה מידע על אירועים (כמו אינטראקציות עם האפליקציה).
בדרך כלל, תוך 10 דקות מהפעלת האפליקציה, מוצגת ההודעה 'זוהה SDK' בלוח הבקרה
שלFirebase Console. לאחר מכן, תוך 30 דקות, יוצגו במרכז הבקרה הנתונים הראשוניים שעברו עיבוד.
אם חלפו יותר מ-10 דקות מאז שהוספתם את הגרסה האחרונה של ה-SDK לאפליקציה, ואתם עדיין לא רואים שינוי, בדקו את הודעות היומן כדי לוודא ש-Performance Monitoring מתעד אירועים. כדי לפתור בעיות שקשורות להודעה על זיהוי SDK באיחור, אפשר לנסות את השלבים המתאימים לפתרון בעיות שמתוארים בהמשך.
האפליקציה רושמת אירועים ביומן: שלבים לפתרון בעיות
אם אתם עדיין מפתחים באופן מקומי, נסו ליצור עוד אירועים לאיסוף נתונים:
ממשיכים לפתח את האפליקציה באמצעות סימולטור או מכשיר בדיקה.
כדי ליצור אירועים, מעבירים את האפליקציה בין הרקע לחזית כמה פעמים, יוצרים אינטראקציה עם האפליקציה על ידי מעבר בין מסכים ו/או מפעילים בקשות לרשת.
מוודאים שקובץ ההגדרות של Firebase (Google-Service-Info.plist) נוסף לאפליקציה בצורה נכונה ושלא שיניתם את הקובץ.
באופן ספציפי, כדאי לבדוק את הנקודות הבאות:
שם קובץ ההגדרות לא מסתיים בתווים נוספים, כמו
(2).
קובץ ההגדרות נמצא בתיקיית השורש של פרויקט XCode ונוסף ליעדים הנכונים.
אם משהו נראה לא תקין בקובץ ההגדרות באפליקציה, נסו את הפעולות הבאות:
מוחקים את קובץ התצורה שקיים כרגע באפליקציה.
פועלים לפי ההוראות האלה כדי להוריד קובץ תצורה חדש ולהוסיף אותו לאפליקציית Apple.
אם ערכת ה-SDK מתעדת אירועים ונראה שההגדרה תקינה, אבל עדיין לא מוצגת הודעת הזיהוי של ערכת ה-SDK או נתונים מעובדים (אחרי שעתיים), פנו לתמיכה של Firebase.
האפליקציה לא רושמת אירועים ביומן:
שלבים לפתרון בעיות
אם הוספתם את ה-SDK בהצלחה ואתם משתמשים ב-Performance Monitoring באפליקציה, הטיפים הבאים לפתרון בעיות יכולים לעזור לכם לפתור בעיות כלליות שקשורות לתכונות ולכלים של Performance Monitoring.
אם חסרים לכם נתונים של עקבות רינדור המסך, נסו את השלבים הבאים לפתרון בעיות:
חשוב לוודא שאתם משתמשים בגרסה העדכנית ביותר של Apple platforms SDK (v12.6.0). אפשר להשתמש בנתוני מעקב של עיבוד המסך רק בגרסה 5.0.0 ואילך.
Performance Monitoring לא יוצר עקבות של עיבוד מסך עבור בקרי תצוגת מאגר (כמו UINavigationController ו-UITabBarController). אם הנתונים חסרים רק במסכים האלה, זהו התנהגות צפויה.
חסרים נתוני מעקב מותאמים אישית בלוח הבקרה של הביצועים
האם אתם רואים נתוני ביצועים לגבי עקבות שנאספו באופן אוטומטי אבל לא לגבי עקבות של קוד בהתאמה אישית? אפשר לנסות את השלבים הבאים לפתרון בעיות:
בודקים את ההגדרה של מעקב אחרי קוד מותאם אישית שהוטמע באמצעות Trace API, ובמיוחד את הדברים הבאים:
השמות של מעקבים אחר קוד מותאם אישית ומדדים מותאמים אישית צריכים לעמוד בדרישות הבאות: לא יכולים להיות רווחים לבנים בתחילת השם או בסופו, לא יכול להיות קו תחתון (_) בתחילת השם, והאורך המקסימלי הוא 32 תווים.
צריך להפעיל ולהפסיק את כל העקבות. לא תתבצע רישום ביומן של עקבות שלא התחילו, שלא הסתיימו או שהסתיימו לפני שהתחילו.
בודקים את הודעות היומן כדי לוודא ש-Performance Monitoring מתעד את העקבות של קוד מותאם אישית שצפוי.
אם Performance Monitoring מתעד אירועים, אבל לא מוצגים נתונים אחרי 24 שעות,
פנו לתמיכה של Firebase.
חסרים נתונים של בקשות רשת בלוח הבקרה של הביצועים
אם חסרים לכם נתונים של בקשות לרשת, כדאי לנסות את השלבים הבאים לפתרון בעיות:
בהתאם להתנהגות של הקוד וספריות הרשת שבהן נעשה שימוש בקוד, יכול להיות ש-Performance Monitoring ידווח רק על בקשות רשת שהושלמו. המשמעות היא שחיבורי HTTP/S שנשארו פתוחים לא ידווחו.
Performance Monitoring לא מדווח על בקשות רשת עם כותרות Content-Type לא תקינות. עם זאת, בקשות לרשת ללא הכותרות Content-Type עדיין יתקבלו.
מה קרה לכרטיס 'הבעיות העיקריות' בדף הבית של הפרויקט?
החלפנו את הבעיות העיקריות בהתראות האחרונות, בהמשך להשקת ההתראות לאחרונה. ההתראות האלה מודיעות לכם באופן אוטומטי כשחלים שינויים שחורגים מהערכים שהגדרתם. הדף 'בעיות' הוצא משימוש והוחלף בהתראות.
בורר האפליקציות בחלק העליון של כרטיס הביצועים מסנן את רשומות ההתראות בקטע התראות אחרונות. מוצגות רק שלוש ההתראות האחרונות לגבי האפליקציות שנבחרו.
ב-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 כך שבכרטיסייה לוח בקרה מוצגים מדדי המפתח וכל העקבות במקום אחד. במסגרת העיצוב מחדש, הסרנו את הדפים במכשיר ורשת.
בטבלת העקבות בחלק התחתון של הכרטיסייה מרכז הבקרה מופיע כל המידע שהוצג בכרטיסיות במכשיר ורשת, אבל עם כמה תכונות נוספות, כולל האפשרות למיין את העקבות לפי אחוז השינוי במדד ספציפי. כדי לראות את כל המדדים והנתונים של טרייס ספציפי, לוחצים על שם הטרייס בטבלת הטרייסים.
אפשר לראות את העקבות בכרטיסיות המשנה הבאות של טבלת העקבות:
עקבות של בקשות רשת (גם מוכנות לשימוש וגם מותאמות אישית) – כרטיסיית המשנה בקשות רשת
מעקב אחר קוד בהתאמה אישית – כרטיסיית המשנה מעקב בהתאמה אישית
עקבות של הפעלת אפליקציה, אפליקציה שפועלת בחזית ואפליקציה שפועלת ברקע – כרטיסיית המשנה עקבות בהתאמה אישית
עקבות של עיבוד המסך – כרטיסיית המשנה עיבוד המסך
עקבות של טעינת דפים – כרטיסיית המשנה Page load (טעינת דף)
פרטים על טבלת העקבות ועל הצגת מדדים ונתונים זמינים בדף הסקירה הכללית של המסוף (iOS+ | Android | אינטרנט).
למה מספר הפריימים האיטיים והקפואים לא תואם למה שציפיתי?
פריימים עם רינדור איטי ופריימים קפואים מחושבים על סמך קצב רענון משוער של המכשיר, שהוא 60Hz. אם קצב הרענון של המכשיר נמוך מ-60Hz, לכל פריים יהיה זמן רינדור איטי יותר כי פחות פריימים עוברים רינדור בכל שנייה.
זמני רינדור איטיים יותר עלולים לגרום לדיווח על יותר פריימים איטיים או קפואים, כי יותר פריימים ירונדרו לאט יותר או יקפאו. עם זאת, אם קצב הרענון של המכשיר גבוה מ-60Hz, כל פריים ירונדר מהר יותר.
כתוצאה מכך, יכול להיות שיוצגו פחות פריימים איטיים או קפואים. זוהי הגבלה נוכחית ב-Performance Monitoring SDK.
הייצוא של נתוני Performance Monitoring ל-BigQuery נמשך זמן רב מהצפוי. האם זה לא בזמן אמת?
אם הפעלתם את השילוב של BigQuery עם Firebase Performance Monitoring, הנתונים שלכם ייובאו ל-BigQuery 12 עד 24 שעות אחרי סוף היום (לפי שעון החוף הפסיפי).
לדוגמה, הנתונים של 19 באפריל יהיו זמינים ב-BigQuery ב-20 באפריל בין השעה 12:00 בצהריים לחצות (כל התאריכים והשעות הם לפי שעון החוף הפסיפי).
עיבוד והצגה של נתונים כמעט בזמן אמת
מה המשמעות של נתוני ביצועים 'כמעט בזמן אמת'?
Firebase Performance Monitoring מעבד את נתוני הביצועים שנאספים בזמן שהם מגיעים, וכתוצאה מכך הנתונים מוצגים במסוף Firebase כמעט בזמן אמת. הנתונים המעובדים מוצגים במסוף תוך כמה דקות מרגע האיסוף, ולכן משתמשים במונח 'כמעט בזמן אמת'.
איך אפשר לקבל נתוני ביצועים של האפליקציה כמעט בזמן אמת?
כדי ליהנות מעיבוד נתונים כמעט בזמן אמת, צריך רק לוודא שהאפליקציה משתמשת בגרסת 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 שתואמת לזמן אמת. לעומת זאת, הנתונים לא מהזמן האחרון כוללים נתוני ביצועים מכל הגרסאות של האפליקציה.
פנייה לתמיכה של Firebase
אם פונים לתמיכה של Firebase, חשוב לכלול תמיד את מזהה האפליקציה ב-Firebase. מזהה האפליקציה ב-Firebase מופיע בכרטיס האפליקציות שלך בsettingsהגדרות הפרויקט.