BigQuery-এ পারফরম্যান্স মনিটরিং ডেটা এক্সপোর্ট করুন

আপনি আরও বিশ্লেষণের জন্য Apple এবং Android অ্যাপগুলি থেকে BigQueryPerformance Monitoring ডেটা রপ্তানি করতে পারেন। BigQuery আপনাকে BigQuery SQL ব্যবহার করে ডেটা বিশ্লেষণ করতে, অন্য ক্লাউড প্রদানকারীর কাছে রপ্তানি করতে এবং এমনকি আপনার কাস্টম ML মডেলের জন্য ডেটা ব্যবহার করতে দেয়।

BigQuery এক্সপোর্ট চালু করুন

  1. Firebase কনসোলে ইন্টিগ্রেশন পৃষ্ঠায় যান, তারপর BigQuery কার্ডে লিঙ্কে ক্লিক করুন।

  2. BigQuery সক্ষম করতে অন-স্ক্রীন নির্দেশাবলী অনুসরণ করুন।

    আপনি যখন Performance Monitoring জন্য 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")
  • Android এর জন্য — VersionName
  • iOS এর জন্য — CFBundleShortVersionString
app_build_version স্ট্রিং অ্যাপ্লিকেশনটির বিল্ড সংস্করণ (উদাহরণস্বরূপ, "1523456")
  • অ্যান্ড্রয়েডের জন্য — VersionCode
  • iOS - CFBundleVersion এর জন্য
os_version স্ট্রিং ক্লায়েন্ট ডিভাইসের OS সংস্করণ
  • Android এর জন্য — Android API স্তর (উদাহরণস্বরূপ "26")
  • iOS এর জন্য — iOS সংস্করণ (উদাহরণস্বরূপ "11.4")
device_name স্ট্রিং ক্লায়েন্ট ডিভাইসের নাম (উদাহরণস্বরূপ, "গুগল পিক্সেল")
দেশ স্ট্রিং যে দেশ থেকে ইভেন্টটি হয়েছিল তার দুই-অক্ষরের কান্ট্রি কোড (উদাহরণস্বরূপ, "US", বা অজানা দেশের জন্য "ZZ")
বাহক স্ট্রিং ক্লায়েন্ট ডিভাইসের বাহক
রেডিও_টাইপ স্ট্রিং ইভেন্টটি হওয়ার সময় সক্রিয় রেডিও প্রকার (উদাহরণস্বরূপ, "WIFI")
custom_attributes অ্যারে<রেকর্ড> এই ইভেন্টের সাথে সংযুক্ত সমস্ত কাস্টম বৈশিষ্ট্য
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 এর জন্য উপস্থিত
ট্রেস_তথ্য রেকর্ড শুধুমাত্র 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% ফ্রেম রেন্ডার করতে 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 স্যান্ডবক্স দেখুন।