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

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

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

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

  2. دستورالعمل های روی صفحه را برای فعال کردن 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")
صفات_سفارشی ARRAY<RECORD> همه ویژگی‌های سفارشی متصل به این رویداد
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 مراجعه کنید.