يمكنك تصدير بيانات 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 أو شبكة الجيل الرابع أو ما إلى ذلك).
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.