אחרי כמה שניות, מחפשים קריאה לרשת אל firebaselogging.googleapis.com בכלים למפתחים בדפדפן. הנוכחות של קריאת הרשת הזו מצביעה על כך שהדפדפן שולח נתוני ביצועים ל-Firebase.
אם אתם מתחילים להשתמש ב-Performance Monitoring
(iOS+ |
Android |
Web), טיפים לפתרון בעיות שבהמשך יכולים לעזור לכם לפתור בעיות שקשורות לזיהוי ה-SDK על ידי Firebase או להצגת נתוני הביצועים הראשונים במסוף Firebase.
הוספתי את ה-SDK לאפליקציה, אבל במסוף עדיין מופיעה ההודעה שצריך להוסיף את ה-SDK
מערכת Firebase יכולה לזהות אם הוספתם בהצלחה את Performance Monitoring ה-SDK לאפליקציה
כשהיא מקבלת מהאפליקציה פרטי אירועים (כמו אינטראקציות עם האפליקציה).
בדרך כלל, תוך 10 דקות מהפעלת האפליקציה, מוצגת הודעה על זיהוי ה-SDK בלוח הבקרה של ביצועים ב-Firebase Console. לאחר מכן, תוך 30 דקות, לוח הבקרה יציג את הנתונים הראשוניים שעברו עיבוד.
אם חלפו יותר מ-10 דקות מאז שהוספתם את הגרסה האחרונה של ה-SDK לאפליקציה, ואתם עדיין לא רואים שינוי, בדקו את הודעות היומן כדי לוודא ש-Performance Monitoring מתעד אירועים. כדי לפתור בעיות שקשורות להודעה על זיהוי SDK שמופיעה באיחור, אפשר לנסות את השלבים המתאימים לפתרון בעיות שמתוארים בהמשך.
האפליקציה מתעדת אירועים: שלבים לפתרון בעיות
אם אתם עדיין מפתחים באופן מקומי, נסו ליצור עוד אירועים לאיסוף נתונים:
הצגה של אפליקציית האינטרנט בסביבה מקומית.
כדי ליצור אירועים, טוענים דפי משנה באתר, יוצרים אינטראקציה עם האפליקציה או מפעילים בקשות לרשת. חשוב להשאיר את כרטיסיית הדפדפן פתוחה למשך 10 שניות לפחות אחרי שהדף נטען.
מוודאים שאובייקט ההגדרה של Firebase נוסף לאפליקציה בצורה נכונה ושלא שיניתם את האובייקט. באופן ספציפי, כדאי לבדוק את הנקודות הבאות:
מזהה אפליקציית האינטרנט ב-Firebase (appId) באובייקט ההגדרה נכון לאפליקציה שלכם. אפשר למצוא את מזהה האפליקציה ב-Firebase בכרטיס האפליקציות שלך בsettingsהגדרות הפרויקט.
אם נראה שמשהו לא בסדר באובייקט ההגדרה באפליקציה, נסו את הפעולות הבאות:
מוחקים את אובייקט ההגדרה שקיים כרגע באפליקציה.
כדי לקבל אובייקט תצורה חדש ולהוסיף אותו לאפליקציית האינטרנט, צריך לפעול לפי ההוראות האלה.
אם ערכת ה-SDK מתעדת אירועים ונראה שההגדרה תקינה, אבל עדיין לא מוצגת הודעת הזיהוי של ערכת ה-SDK או נתונים מעובדים (אחרי שעתיים), פנו לתמיכה של Firebase.
האפליקציה לא רושמת אירועים ביומן:
שלבים לפתרון בעיות
מוודאים שערכת Performance Monitoring ה-SDK הופעלה בצורה נכונה באפליקציה.
מוודאים ש-Performance Monitoring SDK לא מושבת באמצעות הדגל הבא:
performance.instrumentationEnabled
חשוב לוודא ש'שמירה במטמון הדפדפן' מושבתת, אחרת יכול להיות שהדפדפן לא יזהה הגדרות חדשות של אינסטרומנטציה.
סוגרים את הכרטיסייה של דף האינטרנט ופותחים אותה מחדש. בודקים שוב את הרישום.
אם רק עכשיו הוספתם את Performance Monitoring SDK לאפליקציה, יכול להיות שתצטרכו להפעיל מחדש את האפליקציה כדי ש-SDK יתחיל לפעול.
ב-Console כתוב שערכת ה-SDK זוהתה, אבל לא מוצגים נתונים
Performance Monitoring מעבד את נתוני אירועי הביצועים לפני שהוא מציג אותם במרכז הבקרה לביצועים.
אם עברו יותר מ-24 שעות מאז שהופיעה ההודעה 'זוהה SDK', ועדיין לא מופיעים נתונים, כדאי לבדוק את לוח הבקרה של סטטוס Firebase כדי לראות אם יש הפסקת שירות ידועה. אם אין הפסקת שירות, פנו לתמיכה של Firebase.
פתרון בעיות כלליות
אם הוספתם את ה-SDK בהצלחה ואתם משתמשים ב-Performance Monitoring באפליקציה, טיפים לפתרון בעיות שבהמשך יכולים לעזור לכם לפתור בעיות כלליות שקשורות לתכונות ולכלים של Performance Monitoring.
מוודאים שהמשתמש יוצר אינטראקציה עם הדף תוך 5 שניות מהטעינה.
Performance Monitoring FID מוקלט רק במהלך החלון הזה.
חסרים נתוני מעקב מותאמים אישית בלוח הבקרה של הביצועים
האם אתם רואים נתוני ביצועים לגבי עקבות שנאספו באופן אוטומטי אבל לא לגבי עקבות של קוד בהתאמה אישית? אפשר לנסות את השלבים הבאים לפתרון בעיות:
בודקים את ההגדרה של מעקבי קוד מותאמים אישית שהוטמעו באמצעות 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 כך שבכרטיסייה לוח בקרה מוצגים המדדים העיקריים וכל העקבות במקום אחד. במסגרת העיצוב מחדש, הסרנו את הדפים במכשיר ורשת.
בטבלת העקבות בחלק התחתון של הכרטיסייה לוח בקרה מופיעים כל הנתונים שהוצגו בכרטיסיות במכשיר ורשת, אבל עם כמה תכונות נוספות, כולל האפשרות למיין את העקבות לפי אחוז השינוי במדד ספציפי. כדי לראות את כל המדדים והנתונים של טרייס ספציפי, לוחצים על שם הטרייס בטבלת הטרייסים.
אפשר לראות את העקבות בכרטיסיות המשנה הבאות של טבלת העקבות:
יומני מעקב של בקשות לאחזור מהרשת (גם מוכנים לשימוש וגם מותאמים אישית) – כרטיסיית המשנה בקשות לאחזור מהרשת
מעקב אחר קוד בהתאמה אישית – כרטיסיית המשנה מעקב בהתאמה אישית
עקבות של הפעלת אפליקציה, אפליקציה בחזית ואפליקציה ברקע – כרטיסיית המשנה עקבות בהתאמה אישית
עקבות של רינדור המסך – כרטיסיית המשנה Screen rendering
עקבות של טעינת דף – כרטיסיית המשנה Page load (טעינת דף)
פרטים על טבלת העקבות ועל הצגת מדדים ונתונים זמינים בדף הסקירה הכללית של המסוף (iOS+ | Android | אינטרנט).
למה מספר הפריימים האיטיים והקפואים לא תואם למה שציפיתי?
חישוב הפריימים הקפואים והפריימים עם רינדור איטי מתבצע על סמך קצב רענון משוער של 60 הרץ במכשיר. אם קצב הרענון של המכשיר נמוך מ-60Hz, זמן הרינדור של כל פריים יהיה איטי יותר כי פחות פריימים עוברים רינדור בכל שנייה.
זמני רינדור איטיים יותר עלולים לגרום לדיווח על יותר פריימים איטיים או קפואים, כי יותר פריימים ירונדרו לאט יותר או יקפאו. עם זאת, אם קצב הרענון של המכשיר גבוה מ-60Hz, כל פריים ירונדר מהר יותר.
כתוצאה מכך, יכול להיות שפחות פריימים איטיים או קפואים ידווחו. זוהי מגבלה נוכחית ב-Performance Monitoring SDK.
איך מוסיפים את Performance Monitoring JS SDK (ה-SDK העצמאי) הקטן יותר עם מרחב שמות לאפליקציית האינטרנט?
אם Performance Monitoring הוא מוצר Firebase היחיד באפליקציה שלכם, אתם יכולים להשתמש ב-Performance Monitoring SDK העצמאי (ובסקריפט הכותרת המומלץ שבהמשך) אם אתם מעוניינים:
שימוש בספרייה עם מרחב שמות
הקטנת הגודל של חבילת ה-SDK
דחיית ההפעלה של ה-SDK עד אחרי שהדף נטען
כדי לכלול את Performance Monitoring SDK העצמאי באפליקציה ולדחות את האתחול שלו עד אחרי טעינת הדף:
הסקריפט שלמעלה טוען באופן אסינכרוני את ה-SDK העצמאי ואז מאתחל את Firebase אחרי שמופעל אירוע onload של החלון. הטקטיקה הזו מצמצמת את ההשפעה של ה-SDK על מדדי טעינת הדף, כי הדפדפן כבר דיווח על מדדי הטעינה שלו כשמפעילים את ה-SDK.
מידע על Performance Monitoring SDK עצמאי ועל סקריפט הכותרת
ערכת ה-SDK העצמאית הזו מותאמת לגודל קטן. אחרי דחיסה ב-gzip, הגודל שלה הוא בערך 10KB. יש בו את כל הפונקציות של Firebase Performance Monitoring, וגם קבוצה מינימלית של פונקציות הליבה של Firebase SDK.
Firebase Performance Monitoring משתמש בממשקי API של fetch ושל Promise שלא זמינים בדפדפנים ישנים. ה-polyfills לממשקי ה-API האלה כלולים ב-Firebase Performance Monitoring JS SDK הרגיל, אבל הם לא כלולים ב-SDK העצמאי כדי להקטין את הגודל שלו.
Performance Monitoring SDK מסתמך, בין היתר, על 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);
where,
performance_standalone הוא 'https://www.gstatic.com/firebasejs/12.19.0/firebase-performance-standalone.js'
אפשר ליצור עד 400 תבניות URL מותאמות אישית לכל אפליקציה, ועד 100 תבניות URL מותאמות אישית לכל דומיין של האפליקציה.
עיבוד והצגה של נתונים כמעט בזמן אמת
מה המשמעות של נתוני ביצועים 'כמעט בזמן אמת'?
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 שתואמת לזמן אמת. לעומת זאת, הנתונים שלא מהזמן האחרון כוללים נתוני ביצועים מכל הגרסאות של האפליקציה.
למה אני לא רואה נתוני ביצועים בזמן אמת?
כדי לראות נתוני ביצועים בזמן אמת, צריך לוודא שהאפליקציה משתמשת בגרסת SDK Performance Monitoring שתואמת לעיבוד נתונים בזמן אמת.
iOS – גרסה 7.3.0 ואילך
tvOS – גרסה 8.9.0 ואילך
Android – גרסה 19.0.10 ואילך (או Firebase Android BoM גרסה 26.1.0 ואילך)
אינטרנט – גרסה 7.14.0 ואילך
שימו לב: אנחנו תמיד ממליצים להשתמש בגרסה האחרונה של ה-SDK, אבל כל גרסה שמופיעה למעלה תאפשר ל-Performance Monitoring לעבד את הנתונים שלכם כמעט בזמן אמת.
פנייה לתמיכה של Firebase
אם פונים לתמיכה של Firebase, חשוב לכלול תמיד את מזהה האפליקציה ב-Firebase. מזהה האפליקציה ב-Firebase מופיע בכרטיס האפליקציות שלך ב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"]],["עדכון אחרון: 2026-09-23 (שעון UTC)."],[],[]]