אחרי כמה שניות, מחפשים קריאה לרשת אל firebaselogging.googleapis.com בכלים למפתחים בדפדפן. נוכחות הקריאה הזו לרשת מראה שהדפדפן שולח נתוני ביצועים ל-Firebase.
אם לא מתועדים ביומן אירועי ביצועים באפליקציה, כדאי לעיין בטיפים לפתרון בעיות.
אם אתם מתחילים להשתמש ב-Performance Monitoring (iOS+ | Android | אינטרנט), הטיפים הבאים לפתרון בעיות יכולים לעזור לכם בבעיות שקשורות לזיהוי ה-SDK ב-Firebase או להצגת נתוני הביצועים הראשונים במסוף Firebase.
הוספת ה-SDK לאפליקציה, אבל עדיין מופיעה הודעת הנחיה להוסיף SDK במסוף
מערכת Firebase יכולה לזהות אם הוספתם את ה-SDK של Performance Monitoring לאפליקציה בהצלחה, כשהיא מקבלת ממנה פרטי אירועים (כמו אינטראקציות עם האפליקציה). בדרך כלל, תוך 10 דקות ממועד הפעלת האפליקציה, תוצג ההודעה 'זוהתה ערכת SDK' בלוח הבקרה Performance במסוף Firebase. לאחר מכן, תוך 30 דקות, הנתונים הראשוניים שעברו עיבוד יוצגו במרכז הבקרה.
אם חלפו יותר מ-10 דקות מאז הוספתם את הגרסה האחרונה של ה-SDK לאפליקציה, ועדיין לא ראיתם שינויים, בדקו את הודעות היומן כדי לוודא ש-Performance Monitoring מתעד אירועים. כדי לפתור את הבעיה של הודעת זיהוי SDK באיחור, אפשר לנסות את השלבים המתאימים לפתרון בעיות שמפורטים בהמשך.
האפליקציה מתעדת אירועים ביומן: שלבים לפתרון בעיות
אם אתם עדיין מפתחים באופן מקומי, נסו ליצור עוד אירועים לאיסוף נתונים:
הצגה של אפליקציית האינטרנט בסביבה מקומית.
יצירת אירועים על ידי טעינת דפי משנה באתר, אינטראקציה עם האפליקציה ו/או הפעלת בקשות רשת. חשוב לוודא שהכרטיסייה בדפדפן תישאר פתוחה במשך 10 שניות לפחות אחרי טעינת הדף.
מוודאים שאובייקט ההגדרה של Firebase נוסף לאפליקציה בצורה נכונה ושלא שיניתם את האובייקט. באופן ספציפי, כדאי לבדוק את הדברים הבאים:
מזהה אפליקציית האינטרנט ב-Firebase (appId) באובייקט התצורה נכון לאפליקציה. מזהה האפליקציה ב-Firebase מופיע בכרטיס האפליקציות שלך בהגדרות הפרויקט של settings.
אם משהו נראה לא בסדר באובייקט התצורה באפליקציה, נסו את הפעולות הבאות:
מוחקים את אובייקט התצורה שנמצא כרגע באפליקציה.
פועלים לפי ההוראות האלה כדי לקבל אובייקט תצורה חדש ולהוסיף אותו לאפליקציית האינטרנט.
אם ה-SDK מתעד אירועים ונראה שכל ההגדרות תקינות, אבל עדיין לא מופיעה הודעת הזיהוי של ה-SDK או נתונים שעברו עיבוד (אחרי שעתיים), פנו לתמיכה של Firebase.
האפליקציה לא מתעדת אירועים: שלבים לפתרון בעיות
מוודאים ש-SDK של Performance Monitoringמופעל בצורה נכונה באפליקציה.
מוודאים ש-SDK של Performance Monitoringלא מושבת באמצעות הדגל הבא:
performance.instrumentationEnabled
חשוב לוודא שהאחסון במטמון בדפדפן מושבת, אחרת יכול להיות שהדפדפן לא יזהה הגדרות חדשות של מכשירי המדידה.
סוגרים את הכרטיסייה של דף האינטרנט ופותחים אותה מחדש. בודקים שוב אם מתבצע רישום ביומן.
אם הוספתם את ה-SDK של Performance Monitoring לאפליקציה, יכול להיות שתצטרכו להפעיל מחדש את האפליקציה כדי שה-SDK יתחיל לפעול.
במסוף מוצגת ההודעה ש-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 אוסף מדי יום מספר מוגבל של מעקבים אחר קוד ומעקבים אחר בקשות לרשת לכל אפליקציה, מכל המשתמשים באפליקציה. קצב דגימה דינמי מאוחזר במכשירים (באמצעות Firebase Remote Config) כדי לקבוע אם מכשיר אקראי צריך לתעד ולשלוח נתוני מעקב. מכשיר שלא נבחר לצורך דגימה לא שולח אירועים. קצב הדגימה הדינמי ספציפי לאפליקציה, והוא משתנה כדי לוודא שהנפח הכולל של הנתונים שנאספים יישאר מתחת למגבלה.
סשנים של משתמשים שולחים נתונים מפורטים נוספים מהמכשיר של המשתמש, ולכן נדרשים יותר משאבים כדי לתעד ולשלוח את הנתונים. כדי למזער את ההשפעה של סשנים של משתמשים, Performance Monitoring עשוי גם להגביל את מספר הסשנים.
הגבלת קצב שליחה בצד השרת: כדי לוודא שהאפליקציות לא חורגות ממגבלת הדגימה, Performance Monitoring עשוי להשתמש בדגימה בצד השרת כדי לבטל חלק מהאירועים שהתקבלו מהמכשירים. אמנם סוג המגבלה הזה לא משנה את היעילות של המדדים שלנו, אבל הוא עלול לגרום לתנודות קלות בדפוסים, כולל:
מספר המעקבים יכול להיות שונה ממספר הפעמים שבהן קטע קוד הופעל.
יכול להיות שלמעקבים שמקושרים זה לזה בקוד יהיה מספר שונה של דגימות.
מה קרה לכרטיסייה בעיות במסוף?
החלפנו את הכרטיסייה 'בעיות' בכרטיסייה 'התראות', שמאפשרת לקבל התראות אוטומטיות כשמגיעים לסף שהגדרתם. לא צריך יותר לבדוק באופן ידני במסוף Firebase מה הסטטוס של סף מסוים. מידע נוסף על התראות זמין במאמר הגדרת התראות לגבי בעיות בביצועים.
מה קרה לכרטיסיות במכשיר ורשת במסוף?
איך אפשר לראות את העקבות שהיו בדפים האלה?
עיצבנו מחדש את הקטע Performance Monitoring במסוף Firebase, כך שכרטיסיית Dashboard מציגה את מדדי המפתח ואת כל המעקבים במרחב אחד. כחלק מהעיצוב החדש, הסרנו את הדפים במכשיר ורשת.
בטבלת המעקב שבתחתית הכרטיסייה Dashboard מוצגים אותם פרטים שמוצגים בכרטיסיות On device ו-Network, אבל עם כמה תכונות נוספות, כולל היכולת למיין את המעקבים לפי שינוי האחוז של מדד ספציפי. כדי להציג את כל המדדים והנתונים של מעקב ספציפי, לוחצים על שם המעקב בטבלת המעקבים.
אפשר להציג את הטרייסים בכרטיסי המשנה הבאים של טבלת הטרייסים:
מעקב אחר בקשות רשת (גם מוכנות מראש וגם בהתאמה אישית) – בכרטיסייה המשנית בקשות רשת
מעקב אחר קוד בהתאמה אישית – הכרטיסייה המשנית מעקבים מותאמים אישית
נתוני מעקב של הפעלת אפליקציה, אפליקציה בחזית, אפליקציה ברקע – הכרטיסייה המשנית נתוני מעקב בהתאמה אישית
נתוני מעקב של רינדור המסך – בכרטיסייה המשנית רינדור המסך
נתוני מעקב אחר טעינת דפים – הכרטיסייה המשנית טעינה של דף
לפרטים על טבלת המעקב ונתונים ומדדים שמוצגים, אפשר לעיין בדף הסקירה הכללית של המסוף (iOS+ | Android | אינטרנט).
למה מספר הפריימים האיטיים והפריימים הקפואים לא תואם לציפיות שלי?
פריימים עם רינדור איטי ופריימים קפואים מחושבים על סמך ההנחה שקצב הרענון של המכשיר הוא 60Hz. אם קצב הרענון של המכשיר נמוך מ-60Hz, זמן הרינדור של כל פריים יהיה איטי יותר כי פחות פריימים עוברים רינדור בכל שנייה.
זמני עיבוד איטיים יותר עלולים לגרום לדיווח על יותר פריימים איטיים או קפואים, כי יותר פריימים יעברו עיבוד איטי יותר או יקפאו. עם זאת, אם קצב הרענון של המכשיר גבוה מ-60Hz, זמן הרינדור של כל פריים יהיה מהיר יותר.
כתוצאה מכך, פחות פריימים איטיים או קפואים ידווחו. זוהי הגבלה נוכחית ב-SDK של Performance Monitoring.
איך מוסיפים לאפליקציית האינטרנט את ה-SDK של Performance Monitoring JS (ה-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) {
function load(f, c) {
// Creates a script tag to load the standalone SDK
var sdkScript = document.createElement('script');
// Sets it to an async script so that it doesn't interfere with page load
sdkScript.async = 1;
// Sets the source of the script
sdkScript.src = f;
// Inserts the script into the head of the page
var s = document.getElementsByTagName('script')[0];
s.parentNode.insertBefore(sdkScript, s);
}
// Calls the load method
load(sdkSource);
// Initializes the SDK only when the onload method is called
window.addEventListener('load', function() {
firebase.initializeApp(firebaseConfigObject).performance();
});
})(performance_standalone, firebaseConfig);
איפה,
performance_standalone הוא 'https://www.gstatic.com/firebasejs/11.0.2/firebase-performance-standalone.js'
Firebase Performance Monitoring מעבד את נתוני הביצועים שנאספו ברגע שהם מגיעים, וכתוצאה מכך הנתונים מוצגים במסוף Firebase כמעט בזמן אמת. הנתונים המעובדים מוצגים במסוף תוך כמה דקות ממועד האיסוף שלהם, ולכן נקרא התהליך 'כמעט בזמן אמת'.
כדי להפיק תועלת מעבדת הנתונים כמעט בזמן אמת, חשוב לוודא שהאפליקציה שלכם משתמשת בגרסת SDK תואמת לזמן אמת.
איך אפשר לקבל נתוני ביצועים כמעט בזמן אמת של האפליקציה?
כדי להפיק תועלת מעיבודי נתונים בזמן אמת, צריך לוודא שהאפליקציה שלכם משתמשת בגרסה של 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 לעבד את הנתונים שלכם כמעט בזמן אמת.
אילו גרסאות של 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. עם זאת, הצגת נתוני הביצועים תידחה בכ-36 שעות ממועד האיסוף שלהם.
עדכנתי לגרסת SDK תואמת בזמן אמת, אבל חלק מהמשתמשים שלי עדיין משתמשים בגרסאות ישנות של האפליקציה. האם אמשיך לראות את נתוני הביצועים שלהם במסוף Firebase?
כן! לא משנה באיזו גרסת SDK משתמשת מופע של אפליקציה, תוכלו לראות נתוני ביצועים מכל המשתמשים.
עם זאת, אם אתם בודקים נתונים עדכניים (שנצברו לפני פחות מ-36 שעות), הנתונים שמוצגים הם ממשתמשים במופעי אפליקציה שמשתמשים בגרסה תואמת של SDK בזמן אמת. עם זאת, הנתונים שלא מהתקופה האחרונה כוללים נתוני ביצועים מכל הגרסאות של האפליקציה.
פנייה לתמיכה של Firebase
אם תפנו לתמיכה של Firebase, תמיד צריך לכלול את מזהה האפליקציה ב-Firebase. מזהה האפליקציה ב-Firebase מופיע בכרטיס Your apps (האפליקציות שלך) בקטע Project settings (הגדרות הפרויקט) ב-settings.
[[["התוכן קל להבנה","easyToUnderstand","thumb-up"],["התוכן עזר לי לפתור בעיה","solvedMyProblem","thumb-up"],["סיבה אחרת","otherUp","thumb-up"]],[["חסרים לי מידע או פרטים","missingTheInformationINeed","thumb-down"],["התוכן מורכב מדי או עם יותר מדי שלבים","tooComplicatedTooManySteps","thumb-down"],["התוכן לא עדכני","outOfDate","thumb-down"],["בעיה בתרגום","translationIssue","thumb-down"],["בעיה בדוגמאות/בקוד","samplesCodeIssue","thumb-down"],["סיבה אחרת","otherDown","thumb-down"]],["עדכון אחרון: 2024-11-21 (שעון UTC)."],[],[]]