আপনি আরও বিশ্লেষণের জন্য Apple এবং Android অ্যাপগুলি থেকে BigQuery এ Performance Monitoring ডেটা রপ্তানি করতে পারেন। BigQuery আপনাকে BigQuery SQL ব্যবহার করে ডেটা বিশ্লেষণ করতে, অন্য ক্লাউড প্রদানকারীর কাছে রপ্তানি করতে এবং এমনকি আপনার কাস্টম ML মডেলের জন্য ডেটা ব্যবহার করতে দেয়।
BigQuery এক্সপোর্ট চালু করুন
Firebase কনসোলে ইন্টিগ্রেশন পৃষ্ঠায় যান, তারপর BigQuery কার্ডে লিঙ্কে ক্লিক করুন।
BigQuery সক্ষম করতে অন-স্ক্রীন নির্দেশাবলী অনুসরণ করুন।
আপনি যখন Performance Monitoring জন্য BigQuery রপ্তানি সক্ষম করেন, তখন নিম্নলিখিতগুলি ঘটে:
Firebase আপনার বিদ্যমান ডেটার একটি অনুলিপি BigQuery এ রপ্তানি করে। রপ্তানির জন্য ডেটার প্রাথমিক প্রচার সম্পূর্ণ হতে 48 ঘন্টা পর্যন্ত সময় লাগতে পারে।
- আপনি ম্যানুয়ালি গত 30 দিন পর্যন্ত ডেটা ব্যাকফিল বা সাম্প্রতিকতম তারিখের জন্য সময়সূচী করতে পারেন যখন আপনি BigQuery এক্সপোর্ট সক্ষম করেছেন (যেটি সাম্প্রতিকতম)।
ডেটাসেট তৈরি হওয়ার পরে, অবস্থান পরিবর্তন করা যাবে না, তবে আপনি ডেটাসেটটিকে একটি ভিন্ন অবস্থানে অনুলিপি করতে পারেন বা ম্যানুয়ালি একটি ভিন্ন অবস্থানে ডেটাসেটটি সরাতে (পুনরায় তৈরি) করতে পারেন৷ আরও জানতে, ডেটাসেটের অবস্থান পরিবর্তন দেখুন।
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
থাকে
বিস্তারিত ডেটা স্কিমা
ক্ষেত্রের নাম | টাইপ | বর্ণনা |
---|---|---|
ঘটনা_টাইমস্ট্যাম্প | টাইমস্ট্যাম্প | ক্লায়েন্ট ডিভাইসে ইভেন্ট শুরু হওয়ার পর থেকে টাইমস্ট্যাম্প (ট্রেস স্টার্ট, নেটওয়ার্ক স্টার্ট ইত্যাদি) |
app_display_version | স্ট্রিং | অ্যাপ্লিকেশনটির প্রদর্শন সংস্করণ (উদাহরণস্বরূপ, "4.1.7")
|
app_build_version | স্ট্রিং | অ্যাপ্লিকেশনটির বিল্ড সংস্করণ (উদাহরণস্বরূপ, "1523456")
|
os_version | স্ট্রিং | ক্লায়েন্ট ডিভাইসের OS সংস্করণ
|
device_name | স্ট্রিং | ক্লায়েন্ট ডিভাইসের নাম (উদাহরণস্বরূপ, "গুগল পিক্সেল") |
দেশ | স্ট্রিং | যে দেশ থেকে ইভেন্টটি হয়েছিল তার দুই-অক্ষরের কান্ট্রি কোড (উদাহরণস্বরূপ, "US", বা অজানা দেশের জন্য "ZZ") |
বাহক | স্ট্রিং | ক্লায়েন্ট ডিভাইসের বাহক |
রেডিও_টাইপ | স্ট্রিং | ইভেন্টটি হওয়ার সময় সক্রিয় রেডিও প্রকার (উদাহরণস্বরূপ, "WIFI") |
custom_attributes | অ্যারে<রেকর্ড> | এই ইভেন্টের সাথে সংযুক্ত সমস্ত কাস্টম বৈশিষ্ট্য |
custom_attributes.key | স্ট্রিং | কাস্টম বৈশিষ্ট্যের কী |
custom_attributes.value | স্ট্রিং | কাস্টম বৈশিষ্ট্যের মান |
ঘটনা_প্রকার | স্ট্রিং | অনুষ্ঠানের ধরন; সম্ভাব্য মান:
|
ঘটনা_নাম | স্ট্রিং | অনুষ্ঠানের নাম
|
পিতামাতার_ট্রেস_নাম | স্ট্রিং | প্যারেন্ট ট্রেসের নাম যা ট্রেস মেট্রিক বহন করে শুধুমাত্র TRACE_METRIC এর জন্য উপস্থিত |
ট্রেস_তথ্য | রেকর্ড | শুধুমাত্র 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% ফ্রেম রেন্ডার করতে 16ms এর বেশি সময় নেয়) |
trace_info.screen_info.frozen_frame_ratio | float64 | এই স্ক্রীন ট্রেসের জন্য হিমায়িত ফ্রেমের অনুপাত, 0 এবং 1 এর মধ্যে (উদাহরণস্বরূপ, 0.05 এর মান মানে এই স্ক্রীন উদাহরণের জন্য ফ্রেমের 5% রেন্ডার করতে 700ms এর বেশি সময় নেয়) |
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 প্রকার (উদাহরণস্বরূপ, "টেক্সট/এইচটিএমএল") |
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 পরে মাইক্রোসেকেন্ডএকক: মাইক্রোসেকেন্ড |
রপ্তানি করা ডেটা দিয়ে আপনি কী করতে পারেন?
নিম্নলিখিত বিভাগগুলি আপনার এক্সপোর্ট করা Performance Monitoring ডেটার বিপরীতে আপনি BigQuery এ চালাতে পারেন এমন প্রশ্নের উদাহরণগুলি অফার করে৷
কনসোলে দেখা ডেটার সাথে মিল করুন
Firebase ড্যাশবোর্ড America/Los_Angeles
টাইমজোনে দৈনিক ডেটা একত্রিত করে। কনসোলে যা দেখা গেছে তার সাথে মেলে, তারিখ ফাংশন স্পষ্টভাবে America/Los_Angeles
টাইমজোন হিসাবে সেট করা উচিত অন্যথায় তারিখ ফাংশনটি UTC ব্যবহার করতে ডিফল্ট হবে।
SELECT DATE(event_timestamp, 'America/Los_Angeles') AS daily_date, APPROX_QUANTILES(trace_info.duration_us, 100)[OFFSET(90)] / 1000000 AS p90_seconds, FROM `TABLE_NAME` WHERE DATE(event_timestamp, 'America/Los_Angeles') >= DATE_SUB( PARSE_DATE('%Y%m%d', 'YYYY-MM-DD'), INTERVAL 7 DAY) AND DATE(event_timestamp, 'America/Los_Angeles') <= PARSE_DATE('%Y%m%d', 'YYYY-MM-DD') AND event_name = '_app_start' GROUP BY 1 ORDER BY 1 DESC;
দেশ অনুসারে গড় অ্যাপ স্টার্ট লেটেন্সি ব্রেক-ডাউন দেখুন
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
নামে একটি কাস্টম বৈশিষ্ট্য এবং cache-hit
নামের একটি কাস্টম মেট্রিক (একটি TRACE_METRIC
) সহ ডিস্ক থেকে লোড করার জন্য একটি কাস্টম কোড ট্রেস তৈরি করেছেন যা ক্যাশে হিট হলে 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;
আপনার Performance Monitoring ডেটা যে কোনো জায়গায় নিয়ে যান
কখনও কখনও আপনি আপনার Performance Monitoring ডেটা সার্ভার-সাইড অ্যাক্সেস করতে চান বা এটিকে অন্য তৃতীয় পক্ষের সমাধানে ঠেলে দিতে চান। ডেটা রপ্তানির জন্য বর্তমানে কোন চার্জ নেই।
আপনি এর মাধ্যমে আপনার ডেটা রপ্তানি করতে পারেন:
BigQuery ওয়েব UI ব্যবহার করা
CLI কমান্ড
bq extract
চলমানAPI বা ক্লায়েন্ট লাইব্রেরির মাধ্যমে একটি এক্সট্রাক্ট কাজ জমা দেওয়া।
মূল্য নির্ধারণ
Performance Monitoring থেকে ডেটা রপ্তানি করার জন্য কোনও চার্জ নেই এবং BigQuery উদার অ-ব্যয় ব্যবহারের সীমা প্রদান করে৷ বিশদ তথ্যের জন্য, BigQuery মূল্য বা BigQuery স্যান্ডবক্স দেখুন।