داده های نظارت بر عملکرد را به BigQuery صادر کنید

برای تجزیه و تحلیل بیشتر می توانید داده های نظارت بر عملکرد را از برنامه های اپل و اندروید به BigQuery صادر کنید. BigQuery به شما امکان می‌دهد داده‌ها را با استفاده از BigQuery SQL تجزیه و تحلیل کنید، آن‌ها را به ارائه‌دهنده ابری دیگر صادر کنید و حتی از داده‌ها برای مدل‌های ML سفارشی خود استفاده کنید.

صادرات BigQuery را فعال کنید

  1. به صفحه Integrations در کنسول Firebase بروید، سپس روی پیوند در کارت BigQuery کلیک کنید.

  2. دستورالعمل های روی صفحه را برای فعال کردن BigQuery دنبال کنید.

وقتی صادرات BigQuery را برای نظارت بر عملکرد فعال می‌کنید:

  • Firebase یک کپی از داده های موجود شما را به BigQuery صادر می کند.

    • در پیوند اولیه، Firebase به‌طور خودکار جداول BigQuery شما را برای تکمیل داده‌های ۷ روز گذشته زمان‌بندی می‌کند تا بتوانید بلافاصله آزمایش را شروع کنید. چند ساعت زمان بگذارید تا داده های اولیه در BigQuery در دسترس باشند.

    • همچنین می توانید به صورت دستی پر کردن داده ها را تا 30 روز گذشته برنامه ریزی کنید.

  • پس از ایجاد مجموعه داده، مکان را نمی توان تغییر داد، اما می توانید مجموعه داده را در مکان دیگری کپی کنید یا به صورت دستی مجموعه داده را در مکان دیگری منتقل کنید (بازآفرینی کنید). برای کسب اطلاعات بیشتر، به تغییر مکان مجموعه داده مراجعه کنید.

  • Firebase همگام‌سازی منظم داده‌های شما را از پروژه Firebase با BigQuery تنظیم می‌کند. این عملیات صادرات روزانه از ساعت 4:00 صبح به وقت اقیانوس آرام آغاز می شود و معمولاً در 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 است

طرح داده های تفصیلی

نام زمینه تایپ کنید شرح
رویداد_زمان مهر مهر زمانی مهر زمانی از زمان شروع رویداد در دستگاه مشتری (شروع ردیابی، شروع شبکه و غیره)
app_display_version رشته نمایش نسخه برنامه (به عنوان مثال، "4.1.7")
  • برای اندروید — VersionName
  • برای iOS - CFBundleShortVersionString
app_build_version رشته نسخه ساخت برنامه (به عنوان مثال، "1523456")
  • برای اندروید - VersionCode
  • برای iOS - CFBundleVersion
os_version رشته نسخه سیستم عامل دستگاه مشتری
  • برای Android - سطح API 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 درخواست شبکه
ردیابی_نام والدین رشته نام ردیابی والد که حامل معیار ردیابی است
فقط برای 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_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 در برابر داده‌های نظارت بر عملکرد صادر شده خود اجرا کنید.

میانگین زمان تاخیر شروع برنامه را بر اساس کشور مشاهده کنید

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 مراجعه کنید.