يمكنك تصدير بيانات 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" للبلد غير المعروف) |
شركة النقل | السلسلة | مشغّل شبكة الجوّال لجهاز العميل |
نوع_الراديو | السلسلة | نوع الشبكة اللاسلكية النشطة عند وقوع الحدث (مثل "WIFI") |
custom_attributes | ARRAY<RECORD> | جميع السمات المخصّصة المرفقة بهذا الحدث |
custom_attributes.key | السلسلة | مفتاح السمة المخصّصة |
custom_attributes.value | السلسلة | قيمة السمة المخصّصة |
event_type | السلسلة | نوع الحدث، القيم المحتملة:
|
event_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;
التحقّق من نسبة اللقطات المتوقّفة في حالات مختلفة
على سبيل المثال، يمكنك التحقّق من نسبة اللقطات المتوقّفة إلى جانب مقدار الوقت الذي يقضيه المستخدمون على كل شاشة من شاشات تطبيقك عند استخدام أنواع مختلفة من الشبكات اللاسلكية (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;
نقل بيانات Performance Monitoring لاستخدامها في أي مكان
قد تحتاج أحيانًا إلى الوصول إلى بيانات Performance Monitoring من جهة الخادم أو إرسالها إلى حل آخر تابع لجهة خارجية. لا يتم حاليًا تحصيل رسوم مقابل تصدير البيانات.
يمكنك تصدير بياناتك حسب ما يلي:
استخدام واجهة مستخدم الويب BigQuery
تنفيذ أمر واجهة سطر الأوامر
bq extract
إرسال مهمة استخراج من خلال واجهة برمجة التطبيقات أو مكتبات العملاء
الأسعار
لا يتم تحصيل أي رسوم مقابل تصدير البيانات من Performance Monitoring، ويوفّر BigQuery حدود استخدام سخية بدون أي تكلفة. للحصول على معلومات تفصيلية، يُرجى الاطّلاع على أسعار BigQuery أو BigQuery الوضع التجريبي.