Join us for Firebase Summit on November 10, 2021. Tune in to learn how Firebase can help you accelerate app development, release with confidence, and scale with ease. Register

ייצא נתוני ניטור ביצועים ל- BigQuery

ניתן לייצא נתוני מעקב אחר ביצועי מ- iOS ו- Android לתוך BigQuery לניתוח נוסף. BigQuery מאפשר לך לנתח את הנתונים באמצעות BigQuery SQL, לייצא אותם לספק ענן אחר ואפילו להשתמש בנתונים עבור דגמי ה- ML המותאמים אישית שלך.

אפשר ייצוא BigQuery

  1. עבור אל ואינטגרציות דף במסוף Firebase, ולאחר מכן לחץ על הקישור של הכרטיס BigQuery.

  2. עקוב אחר ההוראות שעל המסך כדי להפעיל את BigQuery.

כאשר אתה מקשר את הפרויקט שלך ל- BiqQuery:

  • Firebase מייצאת עותק של הנתונים הקיימים שלך כדי BigQuery.

    • בעת הקישור הראשוני, Firebase מתזמן באופן אוטומטי את טבלאות BigQuery שלך למילוי נתונים מחדש משבעת הימים האחרונים, כך שתוכל להתחיל להתנסות מיד. אפשר מספר שעות עד שהנתונים הראשוניים יהיו זמינים ב- BigQuery.

    • ניתן גם באופן ידני מילוי חוזר של נתוני לוח זמנים עבור עד 30 הימים האחרונים.

  • Firebase מגדיר סנכרון יומי של הנתונים שלך מפרויקט Firebase שלך ​​ל- BigQuery.

  • כברירת מחדל, כל האפליקציות בפרויקט שלך מקושרות ל- 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 הוא הדפוס המסווג של ה- URL בקשת הרשת

כל אירוע ביצועים מכיל תכונות של האירוע (כגון מדינה וספק של מכשיר הלקוח), כמו גם מידע ספציפי לאירוע:

  • עקבות משך, מדדי עקבות, ועקבות מסך מכילים trace_info
  • מדדי Trace מכילים trace_info.metric_info
  • עקבות מסך מכילות trace_info.screen_info
  • מעקבי רשת מכילים network_info

סכמת נתונים מפורטת

שם שדה סוּג תיאור
חותם_זמן אירוע חותמת זמן חותמת זמן מאז התקופה בה האירוע התחיל במכשיר הלקוח (התחלת עקבות, הפעלת רשת וכו ')
app_display_version חוּט הצגת גרסת האפליקציה (לדוגמה, "4.1.7")
  • עבור אנדרואיד - VersionName
  • עבור iOS - CFBundleShortVersionString
app_build_version חוּט בנה גרסת יישום (לדוגמה, "1523456")
  • עבור אנדרואיד - VersionCode
  • עבור iOS - CFBundleVersion
os_version חוּט גרסת מערכת ההפעלה של מכשיר הלקוח
  • עבור אנדרואיד - רמת API של Android (למשל "26")
  • עבור iOS - גרסת iOS (למשל "11.4")
שם התקן חוּט שם מכשיר הלקוח (לדוגמה, "Google Pixel")
מדינה חוּט קוד מדינה בן שתי אותיות של המדינה שממנה התרחש האירוע (לדוגמה, "US" או "ZZ" עבור מדינה לא ידועה)
מוֹבִיל חוּט ספק מכשיר הלקוח
סוג radio_ חוּט סוג רדיו פעיל בעת שהאירוע התקיים (לדוגמה, "WIFI")
מאפיינים מותאמים אישית ARRAY <RECORD> כל התכונות המותאמות אישית המצורפות לאירוע זה
custom_attributes.key חוּט מפתח המאפיין המותאם אישית
custom_attributes.value חוּט ערך המאפיין המותאם אישית
סוג אירוע חוּט סוג האירוע; ערכים אפשריים:
  • DURATION_TRACE - עקבות שאוספות, כברירת מחדל, המדד של "משך", הכולל תחילת יישום, יישום-ב-קדמה, ואפליקציית-ב-רקע, וכן כול עקבות קוד מותאם אישית מאובזר מפתח
  • SCREEN_TRACE - עקבות פורש החיים של מסך (עקבות עיבוד מסך)
  • TRACE_METRIC - ערכים מותאמים אישית המשויכים עקבות קוד מותאם אישית מאובזר מפתח
  • NETWORK_REQUEST - עקבות פורשות את החיים של בקשת רשת (עקבות בקשת רשת HTTP)
שם אירוע חוּט שם האירוע
  • עבור DURATION_TRACE - זכר שם
  • עבור TRACE_METRIC - מנהג שם מטרי
  • עבור SCREEN_TRACE - _st_ ואחריו שם עקבות
  • עבור NETWORK_REQUEST - רשת דפוס URL בקשה
שם הורה_עקבות חוּט שם העקוב האב הנושא את מדד העקבות
רק הווה עבור TRACE_METRIC
מידע_עקבות תקליט רק ההווה עבור DURATION_TRACE , SCREEN_TRACE , ו TRACE_METRIC
trace_info.duration_us int64
  • עבור DURATION_TRACE ו SCREEN_TRACE - משך הזמן ( "משך") מההתחלה עד הסוף של עקבות
  • עבור TRACE_METRIC - משך הזמן ( "משך") מההתחלה עד הסוף של עקבות ההורה
יחידה: מיקרו שנייה
trace_info.screen_info תקליט רק הווה עבור SCREEN_TRACE
trace_info.screen_info.slow_frame_ratio 64 היחס בין מסגרות איטיות למעקב אחר מסך זה, בין 0 ל -1 (לדוגמה, ערך של 0.05 פירושו ש -5% מהמסגרות עבור מופע מסך זה לקח יותר מ -16 אלפיות השנייה)
trace_info.screen_info.frozen_frame_ratio float64 היחס בין מסגרות קפואות למעקב אחר מסך זה, בין 0 ל -1 (לדוגמה, ערך של 0.05 פירושו ש -5% מהמסגרות עבור מופע מסך זה לקח יותר מ -700 ms לעבד)
trace_info.metric_info תקליט רק הווה עבור TRACE_METRIC
trace_info.metric_info.metric_value int64 ערך מדד העקבות
מידע_רשת תקליט רק הווה עבור NETWORK_REQUEST
code_info.response_code int64 קוד תגובה HTTP לתגובת הרשת (לדוגמה, 200, 404)
network_info.response_mime_type חוּט סוג MIME של תגובת הרשת (לדוגמה, "text/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 או לקוח.

תמחור

אין תשלום עבור ייצוא נתונים ממעקב ביצועים, ו- BigQuery מספקת מגבלות שימוש נדיבות בחינם. לקבלת מידע מפורט, עיין תמחור BigQuery או ארגז חול BigQuery .