אתה יכול לייצא נתוני ניטור ביצועים מאפליקציות אפל ו-Android אל BigQuery לניתוח נוסף. BigQuery מאפשרת לך לנתח את הנתונים באמצעות BigQuery SQL, לייצא אותם לספק ענן אחר, ואפילו להשתמש בנתונים עבור דגמי ה-ML המותאמים אישית שלך.
אפשר ייצוא BigQuery
עבור לדף השילובים במסוף Firebase, ולאחר מכן לחץ על קישור בכרטיס BigQuery .
עקוב אחר ההוראות שעל המסך כדי להפעיל את BigQuery.
כאשר אתה מפעיל ייצוא BigQuery עבור ניטור ביצועים, מתרחשים הדברים הבאים:
Firebase מייצא עותק של הנתונים הקיימים שלך ל-BigQuery. ההפצה הראשונית של נתונים לייצוא עשויה להימשך עד 48 שעות.
- אתה יכול לתזמן באופן ידני מילוי חוזר של נתונים עד 30 הימים האחרונים או לתאריך האחרון שבו הפעלת את BigQuery ייצוא (האחרון מביניהם).
לאחר יצירת מערך הנתונים, לא ניתן לשנות את המיקום, אך ניתן להעתיק את מערך הנתונים למיקום אחר או להעביר (ליצור מחדש) באופן ידני את מערך הנתונים במיקום אחר. למידע נוסף, ראה שינוי מיקום מערך הנתונים .
Firebase מגדיר סנכרון קבוע של הנתונים שלך מפרויקט Firebase שלך ל-BigQuery. פעולות הייצוא היומיות הללו מסתיימות בדרך כלל תוך 24 שעות לאחר שנקבעו.
כברירת מחדל, כל האפליקציות בפרויקט שלך מקושרות ל-BigQuery. כל אפליקציות שתוסיף מאוחר יותר לפרויקט מקושרות אוטומטית ל-BigQuery. אתה יכול לנהל אילו אפליקציות שולחות נתונים .
כדי להשבית את יצוא BigQuery, בטל את הקישור של הפרויקט שלך במסוף Firebase.
אילו נתונים מיוצאים ל-BigQuery?
עבור כל אפליקציה בפרויקט, הייצוא יוצר טבלה הכוללת את כל אירועי הביצועים שנלכדו. כל שורה בטבלה היא אירוע ביצוע בודד שיכול להיות אחד מהבאים:
מעקב אחר משך - מעקבים האוספים, כברירת מחדל, את המדד של "משך", הכוללים התחלה של אפליקציה, אפליקציה בחזית ואפליקציה ברקע, כמו גם כל מעקב אחר קוד מותאם אישית באמצעות מפתח.
-
event_type
הואDURATION_TRACE
-
event_name
זהה לשם המעקב
-
מדד מעקב - מדדים מותאמים אישית המשויכים למעקבי קוד מותאם אישית המוסמכים על ידי מפתח
-
event_type
הואTRACE_METRIC
-
event_name
הוא שם המדד -
parent_trace_name
הוא שם המעקב שמכיל את המדד הזה
-
עקבות מסך - עקבות המשתרעות על כל חיי המסך (עקבות עיבוד מסך)
-
event_type
הואSCREEN_TRACE
-
event_name
הוא הקידומת_st_
בתוספת שם המסך בפועל
-
בקשת רשת - עקבות המשתרעות על פני כל החיים של בקשת רשת (עקבות בקשת רשת HTTP)
-
event_type
הואNETWORK_REQUEST
-
event_name
הוא התבנית המסווגת של כתובת האתר של בקשת הרשת
-
כל אירוע ביצוע מכיל תכונות של האירוע (כגון המדינה והספק של מכשיר הלקוח), כמו גם מידע ספציפי לאירוע:
- מעקבי משך, מדדי מעקב ועקבות מסך מכילים
trace_info
- מדדי מעקב מכילים
trace_info.metric_info
- עקבות מסך מכילות
trace_info.screen_info
- מעקבי רשת מכילים
network_info
סכימת נתונים מפורטת
שם שדה | סוּג | תיאור |
---|---|---|
event_timestamp | חותמת זמן | חותמת זמן מאז התקופה שבה האירוע התחיל במכשיר הלקוח (התחלת מעקב, התחלת רשת וכו') |
app_display_version | חוּט | גרסת תצוגה של האפליקציה (לדוגמה, "4.1.7")
|
app_build_version | חוּט | גרסת בנייה של האפליקציה (לדוגמה, "1523456")
|
os_version | חוּט | גרסת מערכת ההפעלה של מכשיר הלקוח
|
שם התקן | חוּט | שם מכשיר הלקוח (לדוגמה, "Google Pixel") |
מדינה | חוּט | קוד מדינה בן שתי אותיות של המדינה שממנה התרחש האירוע (לדוגמה, "ארה"ב" או "ZZ" עבור מדינה לא ידועה) |
מוֹבִיל | חוּט | ספק של מכשיר הלקוח |
רדיו_סוג | חוּט | סוג רדיו פעיל כשהאירוע התרחש (לדוגמה, "WIFI") |
מאפיינים_מותאם אישית | מערך<RECORD> | כל המאפיינים המותאמים אישית המצורפים לאירוע זה |
custom_attributes.key | חוּט | מפתח המאפיין המותאם אישית |
custom_attributes.value | חוּט | ערך המאפיין המותאם אישית |
סוג אירוע | חוּט | סוג האירוע; ערכים אפשריים:
|
שם אירוע | חוּט | שם האירוע
|
parent_trace_name | חוּט | שם מעקב האב הנושא את מדד המעקב קיים רק עבור TRACE_METRIC |
trace_info | תקליט | נוכח רק למשך DURATION_TRACE , SCREEN_TRACE ו- TRACE_METRIC |
trace_info.duration_us | int64 |
|
trace_info.screen_info | תקליט | קיים רק עבור SCREEN_TRACE |
trace_info.screen_info.slow_frame_ratio | לצוף64 | יחס של פריימים איטיים עבור מעקב מסך זה, בין 0 ל-1 (לדוגמה, ערך של 0.05 פירושו ש-5% מהפריימים עבור מופע מסך זה נדרשו ליותר מ-16ms לעיבוד) |
trace_info.screen_info.frozen_frame_ratio | לצוף64 | יחס של פריימים קפואים עבור מעקב מסך זה, בין 0 ל-1 (לדוגמה, ערך של 0.05 פירושו ש-5% מהפריימים עבור מופע מסך זה לקח יותר מ-700 אלפיות השנייה לעיבוד) |
trace_info.metric_info | תקליט | קיים רק עבור TRACE_METRIC |
trace_info.metric_info.metric_value | int64 | ערך מדד העקבות |
רשת_מידע | תקליט | קיים רק עבור NETWORK_REQUEST |
network_info.response_code | int64 | קוד תגובת HTTP עבור תגובת הרשת (לדוגמה, 200, 404) |
network_info.response_mime_type | חוּט | סוג MIME של תגובת הרשת (לדוגמה, "טקסט/html") |
network_info.request_http_method | חוּט | שיטת HTTP של בקשת הרשת (לדוגמה, "GET" או "POST") |
network_info.request_payload_bytes | int64 | גודל מטען בקשת הרשת יחידה: בייט |
network_info.response_payload_bytes | int64 | גודל מטען תגובת הרשת יחידה: בייט |
network_info.request_completed_time_us | int64 | מיקרו-שניות לאחר event_timestamp כאשר שליחת בקשת הרשת הושלמהיחידה: מיקרו שנייה |
network_info.response_initiated_time_us | int64 | מיקרו-שניות לאחר event_timestamp כאשר תגובת הרשת מופעלתיחידה: מיקרו שנייה |
network_info.response_completed_time_us | int64 | מיקרו-שניות לאחר event_timestamp כאשר תגובת הרשת הושלמהיחידה: מיקרו שנייה |
מה אתה יכול לעשות עם הנתונים המיוצאים?
הסעיפים הבאים מציעים דוגמאות לשאילתות שתוכל להפעיל ב-BigQuery מול נתוני ניטור הביצועים המיוצאים שלך.
הצג פירוט של זמן האחזור הממוצע לתחילת האפליקציה לפי מדינה
SELECT AVG(trace_info.duration_us), country FROM `TABLE_NAME` WHERE _PARTITIONTIME > TIMESTAMP("YYYY-MM-DD") AND event_type = "DURATION_TRACE" AND event_name = "_app_start" GROUP BY 2;
בדוק את היחס בין מסגרות קפואות מול תנאים שונים
לדוגמה, אתה יכול לבדוק את היחס בין פריימים קפואים לצד משך הזמן שהמשתמשים מבלים בכל מסך של האפליקציה שלך כאשר הם נמצאים בסוגי רדיו שונים (WiFi, 4G וכו').
SELECT AVG(trace_info.duration_us / 1000000) AS seconds_on_screen, AVG(trace_info.screen_info.frozen_frame_ratio) AS frozen_frame_ratio, event_name, radio_type FROM `TABLE_NAME` WHERE _PARTITIONTIME > TIMESTAMP("YYYY-MM-DD") AND event_type = "SCREEN_TRACE" GROUP BY event_name, radio_type ORDER BY event_name, radio_type;
חישוב קצב הפגיעה במטמון לטעינת סוגים מסוימים של קבצים מהדיסק
ניתוח זה מניח שהשתמשת במעקב אחר קוד מותאם אישית לטעינה מהדיסק עם תכונה מותאמת אישית בשם file-extension
ומדד מותאם אישית ( TRACE_METRIC
) בשם cache-hit
שמוגדר ל 1
אם מטמון פגע ו 0
אם מטמון פספס.
לדוגמה, אתה יכול לחשב את קצב הפגיעה במטמון עבור טעינת קבצי PNG מהדיסק:
SELECT AVG(trace_info.metric_info.metric_value) AS cache_hit_rate FROM `TABLE_NAME` WHERE _PARTITIONTIME > TIMESTAMP("YYYY-MM-DD") AND event_type = "TRACE_METRIC" AND event_name = "cache-hit" AND parent_trace_name = "loadFromDisk" AND STRUCT("file-extension", "png") IN UNNEST(custom_attributes);
בדוק את השעה ביום שבה משתמשים מוציאים בקשות רשת
לדוגמה, אתה יכול לבדוק באיזו שעה ביום משתמשים מארצות הברית מוציאים בקשות רשת מהאפליקציה שלך:
SELECT count(1) AS hourly_count, EXTRACT(HOUR FROM event_timestamp) AS hour_of_day FROM `TABLE_NAME` WHERE _PARTITIONTIME > TIMESTAMP("YYYY-MM-DD") AND event_type = "NETWORK_REQUEST" AND country = "US" GROUP BY 2 ORDER BY 2;
קח את נתוני ניטור הביצועים שלך לכל מקום
לפעמים אתה רוצה לגשת לשרת נתוני ניטור הביצועים שלך או לדחוף אותו לפתרון אחר של צד שלישי. כרגע אין תשלום עבור ייצוא נתונים.
אתה יכול לייצא את הנתונים שלך על ידי:
שימוש בממשק האינטרנט של BigQuery
הפעלת פקודת CLI
bq extract
הגשת עבודת חילוץ דרך ה-API או ספריות הלקוח.
תמחור
אין תשלום עבור ייצוא נתונים ממעקב אחר ביצועים, וביגQuery מספקת מגבלות שימוש נדיבות ללא עלות. למידע מפורט, עיין בתמחור של BigQuery או בארגז החול של BigQuery .