تصدير بيانات "مراقبة الأداء" إلى BigQuery

يمكنك تصدير بيانات "مراقبة الأداء" من تطبيقات Apple وAndroid إلى BigQuery لإجراء مزيد من التحليل. تسمح لك أداة BigQuery بتحليل البيانات باستخدام BigQuery SQL، وتصديرها إلى مقدّم آخر لخدمات السحابة الإلكترونية، وحتى استخدام بيانات نماذج تعلُّم الآلة المخصّصة.

تفعيل BigQuery Export

  1. انتقِل إلى صفحة عمليات الدمج في "وحدة تحكُّم Firebase"، ثم انقر على ربط في بطاقة BigQuery.

  2. اتبع التعليمات التي تظهر على الشاشة لتفعيل BigQuery.

    عند تفعيل ميزة تصدير بيانات BigQuery لميزة "مراقبة الأداء"، سيحدث ما يلي:

لإيقاف BigQuery Export، عليك إلغاء ربط مشروعك في وحدة تحكُّم 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")
  • على أجهزة Android — VersionName
  • لنظام التشغيل iOS — CFBundleShortVersionString
إصدار_app_build_version سلسلة إصدار نسخة من التطبيق (مثل "1523456")
  • على أجهزة Android — VersionCode
  • لنظام التشغيل iOS — CFBundleVersion
إصدار_نظام التشغيل سلسلة إصدار نظام التشغيل لجهاز العميل
  • على أجهزة Android: مستوى واجهة برمجة تطبيقات Android (على سبيل المثال "26")
  • بالنسبة إلى نظام التشغيل iOS: إصدار iOS (على سبيل المثال "11.4")
اسم_الجهاز سلسلة اسم جهاز العميل (مثل "Google Pixel")
بلد سلسلة رمز البلد المكوّن من حرفَين للبلد الذي وقعت منه الفعالية (على سبيل المثال، "US" أو "ZZ" لبلد غير معروف)
شركة النقل سلسلة مشغّل شبكة الجوّال لجهاز العميل
نوع_الراديو سلسلة نوع الراديو النشط عندما وقع الحدث (على سبيل المثال، "شبكة Wi-Fi")
السمات_المخصّصة المصفوفة<السجلّ> جميع السمات المخصّصة المرفقة بهذا الحدث
custom_attributes.key سلسلة مفتاح السمة المخصّصة
قيمة_السمات_المخصّصة سلسلة قيمة السمة المخصّصة
نوع_الحدث سلسلة نوع الحدث، القيم المحتملة:
  • DURATION_TRACE — عمليات التتبّع التي تجمع تلقائيًا مقياس "المدة"، والتي تشمل بدء التطبيق، ومقدمة التطبيق، وخلفية التطبيق، بالإضافة إلى أي عمليات تتبُّع للرموز المخصّصة التي يستخدمها المطوّر
  • SCREEN_TRACE — بيانات تتبّع حول فترة بقاء الشاشة (تتبُّع عرض الشاشة)
  • TRACE_METRIC — المقاييس المخصّصة المرتبطة بتتبُّعات الرموز المخصّصة التي يستخدمها المطوّرون
  • NETWORK_REQUEST - يتبُع فترة صلاحية طلب الشبكة (عمليات تتبُّع طلبات شبكة HTTP)
event_name سلسلة اسم الحدث
  • بالنسبة إلى DURATION_TRACE: اسم التتبُّع
  • بالنسبة إلى TRACE_METRIC: اسم المقياس المخصّص
  • في الفترة من SCREEN_TRACE إلى _st_، يليه اسم التتبّع
  • بالنسبة إلى NETWORK_REQUEST: نمط عنوان URL لطلب الشبكة
اسم_الوالدة سلسلة اسم سجلّ التتبُّع الأصلي الذي يحمل مقياس التتبُّع
متوفّر فقط لـ TRACE_METRIC
معلومات_التتبّع سجلّ العرض متاح فقط لـ DURATION_TRACE وSCREEN_TRACE وTRACE_METRIC.
trace_info.duration_us int64
  • بالنسبة إلى DURATION_TRACE وSCREEN_TRACE: هي المدة الزمنية ("المدة") من بداية عملية التتبّع إلى نهايتها.
  • بالنسبة إلى TRACE_METRIC: المدة الزمنية ("المدة") من بداية عملية التتبُّع الرئيسية إلى نهايتها
الوحدة: ميكرو ثانية
trace_info.screen_info سجلّ يتوفّر للمستخدم SCREEN_TRACE فقط.
trace_info.screen_info.slow_frame_ratio عائم 64 نسبة اللقطات البطيئة لتتبُّع الشاشة هذا بين 0 و1 (على سبيل المثال، تعني القيمة 0.05 أنّ عرض% 5 من اللقطات لمثيل الشاشة هذا استغرق أكثر من 16 ملي ثانية)
trace_info.screen_info.frozen_frame_ratio عائم 64 نسبة اللقطات الثابتة في عملية تتبُّع الشاشة هذه بين 0 و1 (على سبيل المثال، تعني القيمة 0.05 أنّ عرض% 5 من اللقطات لمثيل الشاشة هذا استغرق أكثر من 700 ملي ثانية)
trace_info.metric_info سجلّ يتوفّر للمستخدم TRACE_METRIC فقط.
trace_info.metric_info.metric_value int64 قيمة مقياس التتبُّع
معلومات الشبكة سجلّ يتوفّر للمستخدم NETWORK_REQUEST فقط.
Network_info.response_code int64 رمز استجابة HTTP لاستجابة الشبكة (على سبيل المثال، 200 أو 404)
Network_info.response_mime_type. سلسلة نوع MIME لاستجابة الشبكة (على سبيل المثال، "نص/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 مع بيانات "مراقبة الأداء" التي تم تصديرها.

عرض تفاصيل متوسط وقت استجابة بدء التطبيق حسب البلد

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 ومقياس مخصّص (a 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;

نقل بيانات "مراقبة الأداء" إلى أي مكان

قد تحتاج أحيانًا إلى الوصول إلى بيانات "مراقبة الأداء" من جهة الخادم أو إرسالها إلى حلّ آخر تابع لجهة خارجية. لا يتم حاليًا فرض رسوم على تصدير البيانات.

يمكنك تصدير بياناتك حسب ما يلي:

  • استخدام واجهة مستخدم الويب في BigQuery

  • تنفيذ الأمر CLI bq extract

  • إرسال مهمة استخراج عبر واجهة برمجة التطبيقات أو مكتبات العملاء

الأسعار

لا يتم تحصيل رسوم منك مقابل تصدير البيانات من "أداة مراقبة الأداء"، كما توفّر أداة BigQuery حدودًا كبيرة للاستخدام بدون تكلفة. للحصول على معلومات تفصيلية، راجِع أسعار BigQuery أو وضع الحماية في BigQuery.