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

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

تمكين تصدير BigQuery

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

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

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

    • يقوم Firebase بتصدير نسخة من بياناتك الحالية إلى BigQuery. قد يستغرق النشر الأولي للبيانات للتصدير ما يصل إلى 48 ساعة حتى يكتمل.

    • بعد إنشاء مجموعة البيانات، لا يمكن تغيير الموقع، ولكن يمكنك نسخ مجموعة البيانات إلى موقع مختلف أو نقل (إعادة إنشاء) مجموعة البيانات يدويًا في موقع مختلف. لمعرفة المزيد، راجع تغيير موقع مجموعة البيانات .

    • يقوم Firebase بإعداد عمليات مزامنة منتظمة لبياناتك من مشروع Firebase الخاص بك إلى BigQuery. عادةً ما تنتهي عمليات التصدير اليومية هذه خلال 24 ساعة بعد جدولتها.

    • بشكل افتراضي، ترتبط جميع التطبيقات في مشروعك بـ 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

مخطط البيانات التفصيلية

اسم الحقل يكتب وصف
events_timestamp الطابع الزمني الطابع الزمني منذ العصر الذي بدأ فيه الحدث على جهاز العميل (بدء التتبع، بدء الشبكة، وما إلى ذلك)
app_display_version خيط عرض إصدار التطبيق (على سبيل المثال، "4.1.7")
  • لنظام Android - VersionName
  • لنظام iOS - CFBundleShortVersionString
app_build_version خيط إصدار إصدار التطبيق (على سبيل المثال، "1523456")
  • لنظام Android - VersionCode
  • لنظام iOS - CFBundleVersion
إصدار نظام التشغيل خيط إصدار نظام التشغيل للجهاز العميل
  • لنظام Android - مستوى Android API (على سبيل المثال "26")
  • لنظام التشغيل iOS - إصدار iOS (على سبيل المثال "11.4")
اسم الجهاز خيط اسم الجهاز العميل (على سبيل المثال، "Google Pixel")
دولة خيط رمز البلد المكون من حرفين للبلد الذي وقع منه الحدث (على سبيل المثال، "US"، أو "ZZ" لبلد غير معروف)
الناقل خيط الناقل لجهاز العميل
radio_type خيط نوع الراديو النشط عند وقوع الحدث (على سبيل المثال، "WIFI")
custom_attributes صفيف <سجل> جميع السمات المخصصة المرفقة بهذا الحدث
custom_attributes.key خيط مفتاح السمة المخصصة
custom_attributes.value خيط قيمة السمة المخصصة
نوع الحدث خيط نوع الحدث؛ القيم الممكنة:
  • DURATION_TRACE — عمليات التتبع التي تجمع، افتراضيًا، مقياس "المدة"، والتي تتضمن بدء التطبيق، والتطبيق في المقدمة، والتطبيق في الخلفية، بالإضافة إلى أي آثار تعليمات برمجية مخصصة يستخدمها المطور
  • SCREEN_TRACE — آثار تمتد على مدى عمر الشاشة (آثار عرض الشاشة)
  • TRACE_METRIC — المقاييس المخصصة المرتبطة بتتبعات التعليمات البرمجية المخصصة التي يستخدمها المطور
  • NETWORK_REQUEST — آثار تمتد على مدى عمر طلب الشبكة (آثار طلب شبكة HTTP)
اسم الحدث خيط اسم الحدث
  • بالنسبة لـ DURATION_TRACE — اسم التتبع
  • بالنسبة إلى TRACE_METRIC — اسم المقياس المخصص
  • بالنسبة لـ SCREEN_TRACE_st_ متبوعًا باسم التتبع
  • بالنسبة لـ NETWORK_REQUEST — نمط عنوان URL لطلب الشبكة
parent_trace_name خيط اسم التتبع الأصلي الذي يحمل مقياس التتبع
موجود فقط لـ TRACE_METRIC
Trace_info سِجِلّ موجود فقط لـ 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 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_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 مقابل بيانات مراقبة الأداء المصدرة.

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

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;

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

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

يمكنك تصدير بياناتك عن طريق:

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

  • تشغيل bq extract من CLI

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

التسعير

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