برای تجزیه و تحلیل بیشتر می توانید داده های نظارت بر عملکرد را از برنامه های اپل و اندروید به BigQuery صادر کنید. BigQuery به شما امکان میدهد دادهها را با استفاده از BigQuery SQL تجزیه و تحلیل کنید، آنها را به ارائهدهنده ابری دیگر صادر کنید و حتی از دادهها برای مدلهای ML سفارشی خود استفاده کنید.
صادرات BigQuery را فعال کنید
به صفحه Integrations در کنسول Firebase بروید، سپس روی پیوند در کارت BigQuery کلیک کنید.
دستورالعمل های روی صفحه را برای فعال کردن 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")
|
app_build_version | رشته | نسخه ساخت برنامه (به عنوان مثال، "1523456")
|
os_version | رشته | نسخه سیستم عامل دستگاه مشتری
|
نام دستگاه | رشته | نام دستگاه مشتری (به عنوان مثال، "Google Pixel") |
کشور | رشته | کد کشور دو حرفی کشوری که رویداد از آنجا رخ داده است (به عنوان مثال، "US"، یا "ZZ" برای کشور ناشناخته) |
حامل | رشته | حامل دستگاه مشتری |
نوع_رادیویی | رشته | نوع رادیوی فعال هنگام وقوع رویداد (به عنوان مثال، "WIFI") |
صفات_سفارشی | آرایه <ضبط> | همه ویژگیهای سفارشی متصل به این رویداد |
custom_attributes.key | رشته | کلید ویژگی سفارشی |
custom_attributes.value | رشته | مقدار ویژگی سفارشی |
رویداد_نوع | رشته | نوع رویداد؛ مقادیر ممکن:
|
نام رویداد | رشته | نام رویداد
|
ردیابی_نام والدین | رشته | نام ردیابی والد که حامل معیار ردیابی است فقط برای TRACE_METRIC |
trace_info | رکورد | فقط برای DURATION_TRACE ، SCREEN_TRACE و TRACE_METRIC |
trace_info.duration_us | int64 |
|
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 مراجعه کنید.