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

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

אפשר ייצוא BigQuery

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

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

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

כדי לבטל יצוא 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

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

שם שדה סוּג תיאור
event_timestamp חותמת זמן חותמת זמן מאז התקופה שבה האירוע התחיל במכשיר הלקוח (התחלת מעקב, התחלת רשת וכו')
app_display_version חוּט גרסת תצוגה של האפליקציה (לדוגמה, "4.1.7")
  • עבור אנדרואיד - VersionName
  • עבור iOS - CFBundleShortVersionString
app_build_version חוּט גרסת בנייה של האפליקציה (לדוגמה, "1523456")
  • עבור אנדרואיד - VersionCode
  • עבור iOS - CFBundleVersion
os_version חוּט גרסת מערכת ההפעלה של מכשיר הלקוח
  • עבור אנדרואיד - רמת API של אנדרואיד (לדוגמה "26")
  • עבור iOS - גרסת iOS (לדוגמה "11.4")
שם התקן חוּט שם מכשיר הלקוח (לדוגמה, "Google Pixel")
מדינה חוּט קוד מדינה בן שתי אותיות של המדינה שממנה התרחש האירוע (לדוגמה, "ארה"ב" או "ZZ" עבור מדינה לא ידועה)
מוֹבִיל חוּט ספק של מכשיר הלקוח
רדיו_סוג חוּט סוג רדיו פעיל כשהאירוע התרחש (לדוגמה, "WIFI")
מאפיינים_מותאם אישית מערך<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 בקשה
parent_trace_name חוּט שם מעקב האב הנושא את מדד המעקב
רק הווה עבור TRACE_METRIC
trace_info תקליט רק ההווה עבור 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 לצוף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 .