يمكنك تصدير بيانات Performance Monitoring من تطبيقات Apple وAndroid إلى BigQuery لإجراء المزيد من التحليلات. تتيح لك أداة "BigQuery" تحليل البيانات باستخدام لغة الاستعلام البنيوية (SQL) في "BigQuery"، وتصديرها إلى مقدّم خدمات سحابة إلكترونية آخر، وحتى استخدام البيانات في نماذج تعلُّم الآلة المخصّصة.
تفعيل تصدير بيانات 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 | الطابع الزمني | الطابع الزمني منذ Epoch عند بدء الحدث على جهاز العميل (بدء التتبّع، بدء الشبكة، وما إلى ذلك) |
| app_display_version | سلسلة | الإصدار المعروض من التطبيق (على سبيل المثال، "4.1.7")
|
| app_build_version | سلسلة | إصدار التطبيق (على سبيل المثال، "1523456")
|
| os_version | سلسلة | إصدار نظام التشغيل على جهاز العميل
|
| device_name | سلسلة | اسم جهاز العميل (على سبيل المثال، "Google Pixel") |
| بلد | سلسلة | رمز البلد المكوّن من حرفَين والذي وقع فيه الحدث (على سبيل المثال، "US" أو "ZZ" للبلد غير المعروف) |
| شركة النقل | سلسلة | مشغّل شبكة الجوّال على جهاز العميل |
| radio_type | سلسلة | نوع الاتصال اللاسلكي النشط عند وقوع الحدث (على سبيل المثال، "WIFI") |
| custom_attributes | مصفوفة<سجل> | جميع السمات المخصّصة المرتبطة بهذا الحدث |
| 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 صراحةً كمنطقة زمنية، وإلا ستستخدم دالة التاريخ التوقيت العالمي المنسق (UTC) تلقائيًا.
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.