לאחר מספר שניות, אפשר לחפש שיחת רשת כדי
firebaselogging.googleapis.com בכלים למפתחים בדפדפן.
הנוכחות של שיחת הרשת מראה שהדפדפן שולח נתוני ביצועים
ל-Firebase.
כדאי לבדוק את
לוח הבקרה של סטטוס Firebase, למקרה
יש הפסקה זמנית בשירות Firebase או ב-Performance Monitoring.
איך מתחילים לעבוד עם Performance Monitoring
אם מתחילים להשתמש ב-Performance Monitoring
(iOS+ |
Android |
אינטרנט), פתרון הבעיות הבאות
טיפים יכולים לעזור בפתרון בעיות שקשורות ל-Firebase בזיהוי ה-SDK או בהצגתו
את נתוני הביצועים הראשונים במסוף Firebase.
ה-SDK נוסף לאפליקציה, אבל למסוף
עדיין מופיעה בקשה להוסיף SDK
מערכת Firebase יכולה לזהות אם הוספתם את ה-SDK של Performance Monitoring לאפליקציה בהצלחה, כשהיא מקבלת ממנה את פרטי האירועים (כמו אינטראקציות עם האפליקציה). בדרך כלל, תוך 10 דקות ממועד הפעלת האפליקציה, תוצג ההודעה 'זוהתה ערכת SDK' בלוח הבקרה Performance במסוף Firebase. לאחר מכן, תוך 30
דקות, מרכז הבקרה מציג את הנתונים הראשוניים שעובדו.
אם חלפו יותר מ-10 דקות מאז הוספתם את הגרסה האחרונה של ה-SDK לאפליקציה, ועדיין לא ראיתם שינויים, בדקו את הודעות היומן כדי לוודא ש-Performance Monitoring מתעד אירועים. כדי לפתור את הבעיה של הודעת זיהוי SDK באיחור, אפשר לנסות את שלבי פתרון הבעיות המתאימים שמפורטים בהמשך.
האפליקציה מתעדת אירועים: פתרון בעיות
צעדים
אם אתם עדיין מפתחים באופן מקומי, כדאי לנסות ליצור עוד אירועים לנתונים
collection:
הצגה והצגה של אפליקציית האינטרנט בסביבה המקומית.
יצירת אירועים על ידי טעינת דפי משנה באתר, אינטראקציה עם האפליקציה ו/או הפעלת בקשות רשת. חשוב להשאיר את הדפדפן
פתוחה למשך 10 שניות לפחות לאחר טעינת הדף.
צריך לוודא שההגדרה של Firebase
אובייקט נוסף כראוי לאפליקציה.
שלא שיניתם את האובייקט. ספציפית, צריך לבדוק את הפרטים הבאים:
המזהה של אפליקציית האינטרנט של Firebase (appId) באובייקט ההגדרה נכון עבור
אפליקציה. מאתרים את מזהה האפליקציה ב-Firebase בכרטיס האפליקציות שלך ב-
settingsפרויקט
הגדרות.
אם נראה שמשהו לא תקין באובייקט ה-config באפליקציה שלכם, נסו את
הבאים:
מוחקים את אובייקט ה-config שנמצא כרגע באפליקציה.
יש לפעול לפי ההוראות האלה כדי לקבל
אובייקט config חדש ולהוסיף אותו לאפליקציית האינטרנט.
אם ה-SDK מתעד אירועים ונראה שהכול מוגדר בצורה נכונה, אבל עדיין לא מופיעה הודעת הזיהוי של ה-SDK או נתונים שעברו עיבוד (אחרי שעתיים), פנו לתמיכה של Firebase.
האפליקציה לא מתעדת אירועים:
שלבים לפתרון בעיות
מוודאים ש-SDK של Performance Monitoringמופעל בצורה נכונה באפליקציה.
מוודאים שה-SDK של Performance Monitoringלא מושבת דרך
הדגל הבא:
performance.instrumentationEnabled
חשוב לוודא שהאחסון במטמון של הדפדפן מושבת, אחרת יכול להיות שהדפדפן לא יזהה הגדרות חדשות של מכשירי המדידה.
סוגרים את כרטיסיית דף האינטרנט ופותחים אותה מחדש. בודקים שוב אם מתבצע רישום ביומן.
אם הוספת לאחרונה את ה-SDK של Performance Monitoring לאפליקציה, ייתכן שעליך
צריך להפעיל מחדש את האפליקציה כדי שה-SDK יתחיל לפעול.
Performance Monitoring מעבד נתונים של אירועי ביצועים לפני הצגתם
מרכז הבקרה לביצועים.
אם חלפו יותר מ-24 שעות מאז 'ה-SDK זוהה' הופיעה הודעה,
ואתם עדיין לא רואים נתונים, כדאי לבדוק
לוח הבקרה של סטטוס Firebase למקרה שיש
הפסקה זמנית ידועה בשירות. אם אין הפסקה זמנית בשירות,
לפנות לתמיכה של Firebase.
פתרון בעיות כלליות
אם הוספת בהצלחה את ה-SDK ואתה משתמש ב-Performance Monitoring באפליקציה שלך,
הטיפים הבאים לפתרון בעיות יכולים לעזור בבעיות כלליות שקשורות
תכונות וכלים של Performance Monitoring.
מרכז הבקרה לבדיקת ביצועים
חסרים נתונים של השהיית הקלט הראשונה
אם אתם לא רואים נתונים לגבי עיכוב הקלט הראשון, נסו את
את השלבים הבאים לפתרון בעיות:
חשוב לדעת ש-Performance Monitoring מתעד את המדד השהיה לאחר קלט ראשוני רק כאשר
משתמש לוחץ על דף האינטרנט במהלך 5 השניות הראשונות לאחר טעינת הדף.
חשוב לוודא שהגדרתם את האפליקציה למדידה של המדד הזה.
כדי להשתמש במדד השהיה לאחר קלט ראשוני צריך לבצע הגדרה ידנית
הגדרה.
באופן ספציפי, צריך להוסיף את ספריית polyfill למדד הזה. עבור
לקבלת הוראות התקנה, אפשר לעיין
מסמכי התיעוד.
לתשומת ליבך: ההוספה של ספריית ה-polyfill הזו לא נדרשת עבור Performance Monitoring אל
לדווח על מדדים אחרים של אפליקציית האינטרנט.
מרכז הבקרה לבדיקת ביצועים הוא
חסרים נתוני מעקב בהתאמה אישית
האם אתם רואים נתוני ביצועים של עקבות שנאספו באופן אוטומטי אבל לא עבור
מעקבי קוד בהתאמה אישית? אפשר לנסות את הפעולות הבאות כדי לפתור את הבעיה:
לבדוק את ההגדרה של מעקבי קוד בהתאמה אישית, באמצעות
Trace API,
במיוחד את התכנים הבאים:
השמות של מעקבים אחר קוד מותאם אישית ומדדים מותאמים אישית חייבים לעמוד בדרישות הבאות: אסור לכלול רווחים לבנים בתחילת השם או בסוף השם, אסור לכלול קו תחתון (_) בתחילת השם, והאורך המקסימלי של השם הוא 32 תווים.
יש להתחיל ולהפסיק את כל המעקבים. כל מעקב שלא התחיל, שלא
הופסק, או נעצר לפני התחיל, לא יתועדו.
הערה: אם משתמשים בשיטה record(), אין צורך להפעיל או להפסיק את המעקב באופן מפורש.
הדגל הזה קובע את איסוף הנתונים עבור מעקבי קוד מותאמים אישית בלבד (ולא
כל הנתונים).
בודקים את הודעות היומן כדי לוודא ש-Performance Monitoring מתעדת את עקבות הקוד המותאמים אישית הצפויים.
אם Performance Monitoring מתעד אירועים ביומן אבל לא מוצגים נתונים אחרי 24 שעות, פנו לתמיכה של Firebase.
מרכז הבקרה לבדיקת ביצועים
חסרים נתונים של בקשת רשת
אם חסרים נתונים של בקשת רשת, חשוב לשים לב לדברים הבאים:
Performance Monitoring אוסף באופן אוטומטי מדדים לגבי בקשות רשת שדווחו על ידי
ממשק ה-API של הדפדפן. הדוחות האלה לא כוללים בקשות רשת שנכשלו.
בהתאם להתנהגות של הקוד וספריות הרשתות שבהן משתמשים
קוד, Performance Monitoring עשוי לדווח רק על בקשות רשת שהושלמו.
כלומר, יכול להיות שלא ידווחו חיבורי HTTP/S שנשארים פתוחים.
ב-Performance Monitoring יש תמיכה בהתראות לגבי מדדים שחורגים מהמספר המותר
בערכי סף מוגדרים. כדי למנוע בלבול עם ערכי הסף שניתנים להגדרה האלו
מדדי ביצועים, הסרנו את היכולת להגדיר ערכי סף
בעיות.
מה קרה לפרטים ולמדדים במסוף Firebase?
החלפנו את הדפים 'פרטים ומדדים' בעיצוב מרכזי וחדש
ממשק משתמש (UI) לשיפור האופן שבו ניתן לפתור בעיות. החדש הזה
ממשק המשתמש לפתרון בעיות מציע את אותה פונקציונליות עיקרית שמציעה פרטים
המדדים המוצעים. מידע נוסף על פתרון בעיות זמין ב-
הצגת נתונים נוספים לגבי מעקב ספציפי
למה מספר הדגימות שונה ממה שציפיתי?
ב-Performance Monitoring נאספים נתוני ביצועים ממכשירי המשתמשים של האפליקציה. אם
יש הרבה משתמשים באפליקציה או אם האפליקציה מניבה ביצועים טובים
פעילות, Performance Monitoring עשוי להגביל את איסוף הנתונים לקבוצת משנה של מכשירים לצורך
לצמצם את מספר האירועים המעובדים. המגבלות האלה מספיק גבוהות כדי
גם עם פחות אירועים, ערכי המדדים עדיין מייצגים את
של חוויית המשתמש באפליקציה.
כדי לנהל את נפח הנתונים שאנחנו אוספים, Performance Monitoring משתמש באפשרויות הבאות
אפשרויות דגימה:
הגבלת קצב השליחה במכשיר: כדי למנוע מהמכשיר לשלוח רצפים פתאומיים של
אנחנו מגבילים את מספר מעקבי הבקשות לרשת ולקוד שנשלחים
ל-300 אירועים כל 10 דקות. הגישה הזו מגינה על המכשיר מפני מכשירי מדידה במעגל שיכולים לשלוח כמויות גדולות של נתוני ביצועים, ומונעת ממכשיר יחיד להטות את מדידות הביצועים.
דגימה דינמית: Performance Monitoring אוספת מגבלה של כ-100 מיליון
אירועים של מעקבי קוד ו-100 מיליון נתוני מעקב אחרי בקשות רשת לכל אפליקציה מדי יום
בקרב כל משתמשי האפליקציה. קצב דגימה דינמי מאוחזר במכשירים (באמצעות
Firebase Remote Config) כדי לקבוע אם מכשיר אקראי
לתעד ולשלוח מעקב. מכשיר שלא נבחר לדגימה לא
לשלוח אירועים. קצב הדגימה הדינמי הוא ספציפי לאפליקציה ומשתנה לפי
כדי להבטיח שהנפח הכולל של הנתונים שנאספים יישאר נמוך מהמגבלה.
במסגרת סשנים של משתמשים, נשלחים נתונים מפורטים נוספים מהמכשיר של המשתמש, מה שמחייב
משאבים נוספים לתעד ולשלוח את הנתונים. כדי למזער את ההשפעה של המשתמשים
סשנים, Performance Monitoring עשוי גם להגביל את מספר הסשנים.
הגבלת קצב שליחה בצד השרת: כדי לוודא שהאפליקציות לא חורגות ממגבלת הדגימה, Performance Monitoring עשוי להשתמש בדגימה בצד השרת כדי לבטל את שליחת חלק מהאירועים שהתקבלו מהמכשירים. אף שהגבלה כזו לא משנה את
של המדדים שלנו, הוא עלול לגרום לשינויים קלים בדפוסים, כולל
הבאים:
מספר המעקבים יכול להיות שונה ממספר הפעמים שבהן קטע קוד הופעל.
מעקבים הצמודים זה לזה בקוד עשויים להכיל מספר שונה של
דוגמאות.
מה קרה לכרטיסייה בעיות במסוף?
החלפנו את הכרטיסייה 'בעיות' בהצגת התראות,
מודיע לכם באופן אוטומטי כשיש חריגה מדרישות הסף שהגדרתם. לא צריך יותר לבדוק באופן ידני את מסוף Firebase כדי לקבוע את הסטטוס של סף מסוים. למידע על התראות, אפשר לעיין במאמר הגדרת התראות לגבי בעיות בביצועים.
מה קרה לכרטיסיות במכשיר ורשת במסוף?
איך אפשר לראות את העקבות שהיו בדפים האלה?
עיצבנו מחדש את הקטע Performance Monitoring במסוף Firebase כך
בכרטיסייה מרכז שליטה מוצגים מדדי המפתח וכל נתוני המעקב שלכם במקום אחד. בתור
חלק מהעיצוב החדש, הסרנו את הדפים במכשיר ורשת.
בטבלת המעקב שבתחתית הכרטיסייה מרכז בקרה מוצגים אותם פרטים
מידע שמוצג בכרטיסיות במכשיר ורשת, אך בחלק
תכונות נוספות, כולל היכולת למיין את העקבות לפי האחוזים
לגבי מדד ספציפי. כדי להציג את כל המדדים והנתונים של נכס ספציפי
של מעקב, לוחצים על שם המעקב בטבלת המעקב.
אפשר להציג את הטרייסים בכרטיסי המשנה הבאים של טבלת הטרייסים:
מעקב אחרי בקשות רשת (גם מחוץ לאריזה וגם מעקב בהתאמה אישית) — כרטיסיית המשנה בקשות רשת
מעקבי קוד בהתאמה אישית – כרטיסיית המשנה מעקבים בהתאמה אישית
נתוני הפעלה של האפליקציה, מעקב אחר אפליקציות קדימה, מעקב אחר אפליקציות ברקע — כרטיסיית המשנה מעקבים בהתאמה אישית
שרטוטים של רינדור המסך – בכרטיסייה המשנית רינדור המסך
מעקב אחר טעינת דפים – כרטיסיית משנה טעינת דף
לקבלת פרטים על טבלת המעקב וצפייה במדדים ובנתונים, אפשר להיכנס
דף הסקירה הכללית של המסוף
(iOS+ |
Android |
אינטרנט).
למה מספר הפריימים האיטיים והפריימים הקפואים לא תואם לציפיות שלי?
המערכת מחשבת את פריימים של רינדור איטי ופריימים קפואים בעזרת מכשיר משוער
קצב רענון של 60Hz. אם קצב הרענון של המכשיר נמוך מ-60Hz, כל פריים
יהיה זמן רינדור איטי יותר כי מתבצע עיבוד של פחות פריימים לשנייה.
זמני רינדור איטיים יותר עלולים לגרום לדיווח על פריימים איטיים או קפואים יותר
כי יותר פריימים יעובדו לאט יותר או ייתקעו. אבל אם מכשיר
קצב הרענון גבוה מ-60Hz, כך שזמן הרינדור של כל פריים יהיה מהיר יותר.
הדבר עשוי לגרום לדיווח על פחות פריימים איטיים או קפואים. זהו
מגבלה ב-SDK של Performance Monitoring.
כיצד ניתן להוסיף את
Performance Monitoring JS SDK (ה-SDK ה"עצמאי") לאפליקציית האינטרנט שלי, עם מרחב שמות קטן יותר?
אם Performance Monitoring הוא המוצר היחיד של Firebase באפליקציה, אפשר להשתמש
SDK העצמאי של Performance Monitoring (וסקריפט הכותרת המומלץ בהמשך) אם
תחומי עניין:
באמצעות ספרייה ממרחב שמות
הקטנת הגודל של חבילת ה-SDK
השהיית האתחול של ה-SDK עד שהדף נטען
כדי לכלול את ה-SDK הנפרד של Performance Monitoring באפליקציה ולעכב את
אתחול אחרי שהדף נטען:
הסקריפט שלמעלה טוען באופן אסינכרוני את ה-SDK הנפרד ולאחר מכן מאתחל
Firebase אחרי הפעלת האירוע onload של החלון. הטקטיקה הזו מצמצמת את
ההשפעה שיכולה להיות ל-SDK
מדדי טעינת דפים כי הדפדפן כולל
כבר דיווח על מדדי הטעינה שלו כשהפעלת את ה-SDK.
מידע נוסף על ה-SDK הנפרד של Performance Monitoring ועל הכותרת
סקריפט
ערכת ה-SDK העצמאית הזו עברה אופטימיזציה לגודל, בפורמט Gzip, הוא בערך 10kb. יש בו
את כל הפונקציות של Firebase Performance Monitoring, וגם קבוצה מינימלית של
גם את הפונקציונליות העיקרית של Firebase SDK.
Firebase Performance Monitoring משתמש בממשקי API של fetch ו-Promise
שאינם זמינים בדפדפנים ישנים. הפוליפילים של ממשקי ה-API האלה כלולים ב-SDK הסטנדרטי של Firebase Performance Monitoring JS, אבל הם לא נכללים ב-SDK העצמאי כדי לצמצם את הגודל.
ה-SDK של Performance Monitoring מסתמך, באופן חלקי, על
Resource Timing API
כדי לקבל מדדים של טעינת דף מהדפדפן.
קטע הקוד הבא מפרט את סקריפט הכותרת שכולל את האיפוס של ה-SDK ואז מעכב אותו:
(function(sdkSource,firebaseConfigObject){functionload(f,c){//CreatesascripttagtoloadthestandaloneSDKvarsdkScript=document.createElement('script');//Setsittoanasyncscriptsothatitdoesn't interfere with page loadsdkScript.async=1;//SetsthesourceofthescriptsdkScript.src=f;//Insertsthescriptintotheheadofthepagevars=document.getElementsByTagName('script')[0];s.parentNode.insertBefore(sdkScript,s);}//Callstheloadmethodload(sdkSource);//InitializestheSDKonlywhentheonloadmethodiscalledwindow.addEventListener('load',function(){firebase.initializeApp(firebaseConfigObject).performance();});})(performance_standalone,firebaseConfig);
איפה,
performance_standalone הוא 'https://www.gstatic.com/firebasejs/10.13.1/firebase-performance-standalone.js'
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 בקטע
כרטיס האפליקציות שלך של
settingsפרויקט
הגדרות.