يمكنك تصدير بيانات 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، عليك إلغاء ربط مشروعك في Firebase Console.
ما هي البيانات التي يتم تصديرها إلى BigQuery؟
بالنسبة إلى كل تطبيق في المشروع، تنشئ عملية التصدير جدولاً يتضمّن جميع أحداث الأداء التي تم رصدها. كل صف في الجدول هو حدث أداء واحد يمكن أن يكون أحد الأنواع التالية:
تتبُّع المدة : عمليات التتبُّع التي تجمع، تلقائيًا، مقياس "المدة"، والذي يشمل بدء التطبيق والتطبيق في المقدّمة والتطبيق في الخلفية، بالإضافة إلى أي عمليات تتبُّع للرموز المخصّصة التي أنشأها المطوّر
event_typeهوDURATION_TRACEevent_nameهو نفسه اسم عملية التتبُّع
مقياس عملية التتبُّع : مقاييس مخصّصة مرتبطة بعمليات تتبُّع الرموز المخصّصة التي أنشأها المطوّر
event_typeهوTRACE_METRICevent_nameهو اسم المقياسparent_trace_nameهو اسم عملية التتبُّع التي تتضمّن هذا المقياس
تتبُّع الشاشة : عمليات التتبُّع التي تغطي فترة عرض الشاشة (عمليات تتبُّع عرض الشاشة)
event_typeهوSCREEN_TRACEevent_nameهو البادئة_st_متبوعة باسم الشاشة الفعلي
طلب الشبكة : عمليات التتبُّع التي تغطي فترة طلب الشبكة (عمليات تتبُّع طلبات شبكة HTTP)
event_typeهوNETWORK_REQUESTevent_nameهو النمط المصنّف لعنوان URL لطلب الشبكة
يحتوي كل حدث أداء على سمات الحدث (مثل بلد جهاز العميل وشركة النقل)، بالإضافة إلى معلومات خاصة بالحدث:
- تحتوي عمليات تتبُّع المدة ومقاييس عمليات التتبُّع وعمليات تتبُّع الشاشة على
trace_info - تحتوي مقاييس عمليات التتبُّع على
trace_info.metric_info - تحتوي عمليات تتبُّع الشاشة على
trace_info.screen_info - تحتوي عمليات تتبُّع الشبكة على
network_info
مخطط البيانات التفصيلية
| اسم الحقل | النوع | الوصف |
|---|---|---|
| event_timestamp | timestamp | الطابع الزمني منذ بداية الحقبة عندما بدأ الحدث على جهاز العميل (بدء عملية التتبُّع وبدء الشبكة وما إلى ذلك) |
| app_display_version | string | الإصدار المعروض من التطبيق (على سبيل المثال، "4.1.7")
|
| app_build_version | string | إصدار تصميم التطبيق (على سبيل المثال، "1523456")
|
| os_version | string | إصدار نظام التشغيل على جهاز العميل
|
| device_name | string | اسم جهاز العميل (على سبيل المثال، "Google Pixel") |
| country | string | رمز البلد المكوّن من حرفَين والذي حدث فيه الحدث (على سبيل المثال، "US" أو "ZZ" لبلد غير معروف) |
| carrier | string | شركة النقل لجهاز العميل |
| radio_type | string | نوع الاتصال اللاسلكي النشط عند وقوع الحدث (على سبيل المثال، "WIFI") |
| custom_attributes | ARRAY<RECORD> | جميع السمات المخصّصة المرفقة بهذا الحدث |
| custom_attributes.key | string | مفتاح السمة المخصّصة |
| custom_attributes.value | string | قيمة السمة المخصّصة |
| event_type | string | نوع الحدث؛ القيم المحتمَلة:
|
| event_name | string | اسم الحدث
|
| parent_trace_name | string | اسم عملية التتبُّع الرئيسية التي تتضمّن مقياس عملية التتبُّع لا يظهر هذا الحقل إلا في TRACE_METRIC |
| trace_info | RECORD | لا يظهر هذا الحقل إلا في DURATION_TRACE و
SCREEN_TRACE وTRACE_METRIC |
| trace_info.duration_us | int64 |
|
| trace_info.screen_info | RECORD | لا يظهر هذا الحقل إلا في 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 | RECORD | لا يظهر هذا الحقل إلا في TRACE_METRIC |
| trace_info.metric_info.metric_value | int64 | قيمة مقياس عملية التتبُّع |
| network_info | RECORD | لا يظهر هذا الحقل إلا في NETWORK_REQUEST |
| network_info.response_code | int64 | رمز استجابة HTTP لاستجابة الشبكة (على سبيل المثال، 200، 404) |
| network_info.response_mime_type | string | نوع MIME لاستجابة الشبكة (على سبيل المثال، "text/html") |
| network_info.request_http_method | string | طريقة 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 أو 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 Sandbox.