يمكنك تصدير بيانات Performance Monitoring من تطبيقات Apple وAndroid إلى BigQuery لإجراء المزيد من التحليلات. تتيح لك BigQuery تحليل البيانات باستخدام BigQuery SQL وتصديرها إلى مقدّم خدمة سحابية آخر، ويمكنك حتى استخدام البيانات لنماذج تعلُّم الآلة المخصّصة.
تفعيل تصدير BigQuery
انتقِل إلى صفحة عمليات الدمج في وحدة تحكّم Firebase، ثم انقر على ربط في بطاقة BigQuery.
اتّبِع التعليمات الظاهرة على الشاشة لتفعيل BigQuery.
عند تفعيل خيار تصدير BigQuery لنطاق Performance Monitoring، يحدث ما يلي:
يُصدِّر Firebase نسخة من بياناتك الحالية إلى BigQuery. قد يستغرق نشر البيانات الأوّلي للتصدير مدة تصل إلى 48 ساعة.
- يمكنك تحديد موعد يدويًا لعمليات إعادة تعبئة البيانات لمدة تصل إلى آخر 30 يومًا أو لأحدث تاريخ فعّلت فيه ميزة BigQueryتصدير البيانات (أيهما أحدث).
بعد إنشاء مجموعة البيانات، لا يمكن تغيير الموقع الجغرافي، ولكن يمكنك نسخ مجموعة البيانات إلى موقع جغرافي آخر أو نقلها (إعادة إنشائها) يدويًا في موقع جغرافي آخر. لمزيد من المعلومات، يُرجى الاطّلاع على تغيير موقع مجموعة البيانات.
يُعدّ Firebase عمليات مزامنة منتظمة لبياناتك من مشروعك على Firebase إلى BigQuery. عادةً ما تنتهي عمليات التصدير اليومية هذه في غضون 24 ساعة من تحديد موعدها.
يتم تلقائيًا ربط جميع التطبيقات في مشروعك بـ 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_info.metric_info
- تحتوي عمليات تتبُّع الشاشة على
trace_info.screen_info
- تحتوي عمليات تتبُّع الشبكة على
network_info
مخطط البيانات التفصيلية
اسم الحقل | النوع | الوصف |
---|---|---|
event_timestamp | الطابع الزمني | الطابع الزمني منذ بداية الحقبة عندما بدأ الحدث على جهاز العميل (بدء التتبُّع، وبدء الشبكة، وما إلى ذلك) |
app_display_version | سلسلة | عرض إصدار التطبيق (على سبيل المثال، "4.1.7")
|
app_build_version | سلسلة | إصدار البنية للتطبيق (على سبيل المثال، "1523456")
|
os_version | سلسلة | إصدار نظام التشغيل على الجهاز العميل
|
device_name | سلسلة | اسم جهاز العميل (على سبيل المثال، "Google Pixel") |
بلد | سلسلة | رمز البلد المؤلّف من حرفين والذي وقع فيه الحدث (على سبيل المثال، "US" أو "ZZ" لبلد غير معروف) |
شركة النقل | سلسلة | مشغّل شبكة الجوّال لجهاز العميل |
radio_type | سلسلة | نوع الراديو النشط عند وقوع الحدث (مثل "WIFI") |
custom_attributes | ARRAY<RECORD> | جميع السمات المخصّصة المرتبطة بهذا الحدث |
custom_attributes.key | سلسلة | مفتاح السمة المخصّصة |
custom_attributes.value | سلسلة | قيمة السمة المخصّصة |
event_type | سلسلة | نوع الحدث، والقيم المحتملة هي:
|
event_name | سلسلة | اسم الحدث
|
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 | float64 | نسبة اللقطات البطيئة لتتبُّع الشاشة هذا، وتتراوح بين 0 و1 (على سبيل المثال، تعني القيمة 0.05 أنّ% 5 من اللقطات في مثيل الشاشة هذا استغرق عرضها مدة تزيد عن 16 ملّي ثانية) |
trace_info.screen_info.frozen_frame_ratio | float64 | نسبة اللقطات المجمدة لتتبُّع الشاشة هذا، وتتراوح بين 0 و1 (على سبيل المثال، تعني القيمة 0.05 أنّ% 5 من اللقطات في مثيل الشاشة هذا استغرق عرضها أكثر من 700 ملي ثانية) |
trace_info.metric_info | سجلّ | يظهر هذا الخيار فقط للمستخدم TRACE_METRIC |
trace_info.metric_info.metric_value | int64 | قيمة مقياس التتبُّع |
network_info | سجلّ | يظهر هذا الخيار فقط للمستخدم NETWORK_REQUEST |
network_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 مقابل بيانات Performance Monitoring التي تم تصديرها.
مطابقة البيانات المعروضة على وحدة التحكّم
تجمّع لوحة بيانات Firebase البيانات اليومية في المنطقة الزمنية America/Los_Angeles
.
لمطابقة ما تم عرضه في وحدة التحكّم، يجب أن تحدّد دوال التاريخ بشكل صريح America/Los_Angeles
كمنطقة زمنية، وإلا سيتم تلقائيًا استخدام التوقيت العالمي المتفق عليه.
SELECT DATE(event_timestamp, 'America/Los_Angeles') AS daily_date, APPROX_QUANTILES(trace_info.duration_us, 100)[OFFSET(90)] / 1000000 AS p90_seconds, FROM `TABLE_NAME` WHERE DATE(event_timestamp, 'America/Los_Angeles') >= DATE_SUB( PARSE_DATE('%Y%m%d', 'YYYY-MM-DD'), INTERVAL 7 DAY) AND DATE(event_timestamp, 'America/Los_Angeles') <= PARSE_DATE('%Y%m%d', 'YYYY-MM-DD') AND event_name = '_app_start' GROUP BY 1 ORDER BY 1 DESC;
عرض تفاصيل متوسط وقت استجابة بدء تشغيل التطبيق حسب البلد
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;
التحقّق من نسبة اللقطات المجمدة في ظل ظروف مختلفة
على سبيل المثال، يمكنك التحقّق من نسبة اللقطات المجمدة إلى جانب مقدار الوقت الذي يقضيه المستخدمون على كل شاشة من شاشات تطبيقك عند استخدام أنواع مختلفة من شبكات الراديو (شبكة Wi-Fi وشبكة الجيل الرابع وما إلى ذلك).
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;
نقل بيانات Performance Monitoring إلى أي مكان
في بعض الأحيان، قد تحتاج إلى الوصول إلى بيانات Performance Monitoring من جهة الخادم أو نقلها إلى حل آخر تابع لجهة خارجية. لا يتم حاليًا تحصيل أي رسوم مقابل تصدير البيانات.
يمكنك تصدير بياناتك من خلال:
استخدام واجهة مستخدم الويب BigQuery
تشغيل أمر واجهة سطر الأوامر
bq extract
إرسال مهمة استخراج من خلال واجهة برمجة التطبيقات أو مكتبات البرامج
الأسعار
لا يتم تحصيل أي رسوم مقابل تصدير البيانات من Performance Monitoring، كما يوفّر BigQuery حدودًا سخية للاستخدام بدون تكلفة. للحصول على معلومات مفصّلة، يُرجى الرجوع إلى أسعار BigQuery أو بيئة الاختبار BigQuery.