Catch up on everything announced at Firebase Summit, and learn how Firebase can help you accelerate app development and run your app with confidence. Learn More

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

تنظيم صفحاتك في مجموعات يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.

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

تفعيل تصدير BigQuery

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

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

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

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

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

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

    • بشكل افتراضي ، يتم ربط جميع التطبيقات في مشروعك بـ BigQuery. يتم تلقائيًا ربط أي تطبيقات تضيفها لاحقًا إلى المشروع بـ BigQuery. يمكنك إدارة التطبيقات التي ترسل البيانات .

لإلغاء تنشيط BigQuery Export ، ألغِ ربط مشروعك في وحدة تحكم Firebase.

ما البيانات التي يتم تصديرها إلى BigQuery؟

لكل تطبيق في المشروع ، يُنشئ التصدير جدولاً يتضمن جميع أحداث الأداء التي تم التقاطها. كل صف في الجدول عبارة عن حدث أداء منفرد يمكن أن يكون أحد الأحداث التالية:

  • تتبع المدة - تتبعات تجمع ، افتراضيًا ، مقياس "المدة" ، والتي تتضمن بدء التطبيق ، والتطبيق في المقدمة ، والتطبيق في الخلفية ، بالإضافة إلى أي تتبعات شفرة مخصصة بواسطة مطور البرامج

    • event_type هو DURATION_TRACE
    • event_name هو نفس اسم التتبع
  • مقياس التتبع - المقاييس المخصصة المرتبطة بتتبع التعليمات البرمجية المخصصة بواسطة المطور

    • نوع TRACE_METRIC هو event_type
    • event_name هو اسم المقياس
    • parent_trace_name هو اسم التتبع الذي يحتوي على هذا المقياس
  • تتبع الشاشة - تتبعات تمتد على مدى عمر الشاشة (تتبعات عرض الشاشة)

    • نوع SCREEN_TRACE هو event_type
    • 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")
  • VersionName - اسم الإصدار
  • لنظام iOS - CFBundleShortVersionString
app_build_version سلسلة نسخة الإصدار من التطبيق (على سبيل المثال ، "1523456")
  • لنظام Android - VersionCode
  • لنظام iOS - CFBundleVersion
إصدار نظام التشغيل سلسلة إصدار نظام التشغيل لجهاز العميل
  • لنظام التشغيل Android - مستوى واجهة برمجة تطبيقات Android (على سبيل المثال "26")
  • لنظام iOS - إصدار iOS (على سبيل المثال "11.4")
اسم الجهاز سلسلة اسم جهاز العميل (على سبيل المثال ، "Google Pixel")
بلد سلسلة رمز البلد المكون من حرفين للبلد الذي وقع منه الحدث (على سبيل المثال ، "US" أو "ZZ" لبلد غير معروف)
الناقل سلسلة الناقل لجهاز العميل
نوع الراديو سلسلة نوع الراديو النشط عند وقوع الحدث (على سبيل المثال ، "WIFI")
السمات_المخصصة صفيف <تسجيل> جميع السمات المخصصة المرفقة بهذا الحدث
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 تعويم 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 ومقياس مخصص ( 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

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

التسعير

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