אם אתם מתחילים להשתמש ב-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 והוא נוסף ליעדים הנכונים.
מזהה האפליקציה ב-Firebase Apple (GOOGLE_APP_ID) שמופיע בקובץ ההגדרות תואם לאפליקציה שלכם. מזהה האפליקציה ב-Firebase מופיע בכרטיס האפליקציות שלך בsettingsהגדרות הפרויקט.
אם משהו נראה לא תקין בקובץ ההגדרות באפליקציה, נסו את הפעולות הבאות:
מוחקים את קובץ התצורה שקיים כרגע באפליקציה.
פועלים לפי ההוראות האלה כדי להוריד קובץ תצורה חדש ולהוסיף אותו לאפליקציית Apple.
אם ערכת ה-SDK מתעדת אירועים ונראה שההגדרה תקינה, אבל עדיין לא מוצגת הודעת הזיהוי של ערכת ה-SDK או נתונים מעובדים (אחרי שעתיים), פנו לתמיכה של Firebase.
האפליקציה לא רושמת אירועים ביומן:
שלבים לפתרון בעיות
במסוף מצוין שערכת ה-SDK זוהתה, אבל לא מוצגים נתונים
Performance Monitoring מעבד את נתוני אירועי הביצועים לפני שהוא מציג אותם במרכז הבקרה לביצועים.
אם עברו יותר מ-24 שעות מאז שהופיעה ההודעה 'זוהה SDK', ועדיין לא מופיעים נתונים, כדאי לבדוק את לוח הבקרה של סטטוס Firebase כדי לראות אם יש הפסקת שירות ידועה. אם אין הפסקת שירות, פנו לתמיכה של Firebase.
פתרון בעיות כלליות
אם הוספתם את ה-SDK בהצלחה ואתם משתמשים ב-Performance Monitoring באפליקציה, הטיפים הבאים לפתרון בעיות יכולים לעזור לכם לפתור בעיות כלליות שקשורות לתכונות ולכלים של Performance Monitoring.
אם חסרים לכם נתונים של עקבות רינדור המסך, נסו את השלבים הבאים לפתרון בעיות:
חסרים נתוני מעקב בהתאמה אישית בלוח הבקרה של הביצועים
האם אתם רואים נתוני ביצועים לגבי עקבות שנאספו באופן אוטומטי אבל לא לגבי עקבות של קוד בהתאמה אישית? אפשר לנסות את השלבים הבאים לפתרון בעיות:
בודקים את ההגדרה של מעקב אחרי קוד מותאם אישית שהוטמע באמצעות 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, כל פריים ירונדר מהר יותר.
כתוצאה מכך, יכול להיות שיוצגו פחות פריימים איטיים או קפואים. זוהי מגבלה נוכחית ב-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הגדרות הפרויקט.