אם אתם מתחילים להשתמש ב-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 ונוסף ליעדים הנכונים.
במסוף מצוין שערכת ה-SDK זוהתה, אבל לא מוצגים נתונים
Performance Monitoring מעבד את נתוני אירועי הביצועים לפני שהוא מציג אותם במרכז הבקרה לביצועים.
אם עברו יותר מ-24 שעות מאז שהופיעה ההודעה 'זוהה SDK', ועדיין לא מופיעים נתונים, כדאי לבדוק את לוח הבקרה של סטטוס Firebase כדי לראות אם יש הפסקת שירות ידועה. אם אין הפסקת שירות,
פנו לתמיכה של Firebase.
פתרון בעיות כלליות
אם הוספתם את ה-SDK בהצלחה ואתם משתמשים ב-Performance Monitoring באפליקציה, הטיפים הבאים לפתרון בעיות יכולים לעזור לכם לפתור בעיות כלליות שקשורות לתכונות ולכלים של Performance Monitoring.
אם חסרים לכם נתונים של עקבות רינדור המסך, נסו את השלבים הבאים לפתרון בעיות:
חסרים נתוני מעקב מותאמים אישית בלוח הבקרה של הביצועים
האם אתם רואים נתוני ביצועים לגבי עקבות שנאספו באופן אוטומטי אבל לא לגבי עקבות של קוד בהתאמה אישית? אפשר לנסות את השלבים הבאים לפתרון בעיות:
בודקים את ההגדרה של מעקב אחרי קוד מותאם אישית שהוטמע באמצעות Trace API, ובמיוחד את הפרטים הבאים:
השמות של מעקבים אחר קוד מותאם אישית ומדדים מותאמים אישית צריכים לעמוד בדרישות הבאות: לא יכולים להיות רווחים לבנים בתחילת השם או בסופו, לא יכול להיות קו תחתון (_) בתחילת השם, והאורך המקסימלי הוא 32 תווים.
צריך להפעיל ולהפסיק את כל העקבות. לא יתועד שום מעקב שלא התחיל, שלא נעצר או שנעצר לפני שהתחיל.
בודקים את הודעות היומן כדי לוודא ש-Performance Monitoring מתעד את העקבות הצפויות של הקוד המותאם אישית.
אם Performance Monitoring מתעד אירועים, אבל לא מוצגים נתונים אחרי 24 שעות,
פנו לתמיכה של Firebase.
לוח הבקרה של הביצועים
לא כולל נתונים של בקשות רשת
אם חסרים לכם נתונים של בקשות לרשת, נסו את השלבים הבאים לפתרון בעיות:
בודקים אם יש חוסר תאימות בספריית הרשת. Performance Monitoringאוסף באופן אוטומטי מדדים לבקשות רשתPerformance Monitoring שמשתמשות בספריות הרשת הבאות:
בהתאם להתנהגות של הקוד וספריות הרשת שבהן הקוד משתמש, יכול להיות ש-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 ישתמש בדגימה בצד השרת כדי להשליך חלק מהאירועים שמתקבלים מהמכשירים. למרות שהגבלת הנתונים מהסוג הזה לא משנה את היעילות של המדדים שלנו, היא עלולה לגרום לשינויים קלים בדפוסים, כולל השינויים הבאים:
מספר העקבות יכול להיות שונה ממספר הפעמים שקטע קוד הוצא לפועל.
יכול להיות שלכל אחד מהמעקבים שמשולבים בקוד יהיה מספר שונה של דגימות.
מה קרה לכרטיסייה בעיות ב-Play Console?
החלפנו את הכרטיסייה 'בעיות' בהתראות, שמודיעות לכם באופן אוטומטי כשיש חריגה מספי העלויות שהגדרתם. לא צריך יותר לבדוק ידנית את מסוף Firebase כדי לדעת מה הסטטוס של סף. מידע נוסף על התראות זמין במאמר הגדרת התראות לגבי בעיות בביצועים.
מה קרה לכרטיסיות במכשיר ורשת במסוף?
איך אפשר לראות את העקבות שהיו בדפים האלה?
עיצבנו מחדש את הקטע Performance Monitoring במסוף Firebase כך שבכרטיסייה לוח בקרה מוצגים מדדי המפתח וכל העקבות במקום אחד. במסגרת העיצוב מחדש, הסרנו את הדפים במכשיר ורשת.
בטבלת העקבות בחלק התחתון של הכרטיסייה מרכז הבקרה מופיעים כל הנתונים שהוצגו בכרטיסיות במכשיר ורשת, אבל עם כמה תכונות נוספות, כולל האפשרות למיין את העקבות לפי אחוז השינוי במדד ספציפי. כדי לראות את כל המדדים והנתונים של טרייס ספציפי, לוחצים על שם הטרייס בטבלת הטרייסים.
אפשר לראות את העקבות בכרטיסיות המשנה הבאות של טבלת העקבות:
מעקב אחרי בקשות רשת (גם מוכן מראש וגם בהתאמה אישית) – כרטיסיית המשנה בקשות רשת
מעקב אחר קוד בהתאמה אישית – כרטיסיית המשנה מעקב בהתאמה אישית
עקבות של הפעלת אפליקציה, אפליקציה שפועלת בחזית ואפליקציה שפועלת ברקע – כרטיסיית המשנה עקבות בהתאמה אישית
עקבות של רינדור המסך – כרטיסיית המשנה רינדור המסך
עקבות של טעינת דפים – כרטיסיית המשנה Page load (טעינת דף)
פרטים על טבלת העקבות ועל צפייה במדדים ובנתונים זמינים בדף הסקירה הכללית של המסוף (iOS+ | Android | אינטרנט).
למה מספר הפריימים האיטיים והקפואים לא תואם למה שציפיתי?
החישוב של פריימים עם רינדור איטי ופריימים קפואים מתבצע על סמך קצב רענון משוער של המכשיר, שהוא 60Hz. אם קצב הרענון של המכשיר נמוך מ-60Hz, לכל פריים יהיה זמן רינדור איטי יותר כי פחות פריימים עוברים רינדור בכל שנייה.
זמני רינדור איטיים יותר עלולים לגרום לדיווח על יותר פריימים איטיים או קפואים, כי יותר פריימים ירונדרו לאט יותר או יקפאו. עם זאת, אם קצב הרענון של המכשיר גבוה מ-60Hz, כל פריים ירונדר מהר יותר.
כתוצאה מכך, יכול להיות שיופיעו פחות דיווחים על פריימים איטיים או קפואים. זוהי הגבלה נוכחית ב-SDK של Performance Monitoring.
הייצוא של נתוני 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הגדרות הפרויקט.