BigQuery-এ Firebase Crashlytics ডেটা রপ্তানি করুন

আরও বিশ্লেষণের জন্য আপনি আপনার Crashlytics ডেটা BigQuery- এ এক্সপোর্ট করতে পারেন। BigQuery আপনাকে BigQuery SQL ব্যবহার করে ডেটা বিশ্লেষণ করতে, অন্য ক্লাউড প্রদানকারীর কাছে রপ্তানি করতে এবং Google ডেটা স্টুডিওর সাথে ভিজ্যুয়ালাইজেশন এবং কাস্টম ড্যাশবোর্ডের জন্য এটি ব্যবহার করতে দেয়।

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

  1. Firebase কনসোলে ইন্টিগ্রেশন পৃষ্ঠায় যান।
  2. BigQuery কার্ডে, লিঙ্কে ক্লিক করুন।
  3. BigQuery সক্ষম করতে অন-স্ক্রীন নির্দেশাবলী অনুসরণ করুন।

আপনি যখন আপনার প্রকল্পকে BigQuery-এর সাথে লিঙ্ক করবেন:

  • Firebase আপনার Firebase প্রকল্প থেকে BigQuery-এ আপনার ডেটার দৈনিক সিঙ্ক সেট আপ করে।
  • ডিফল্টরূপে, আপনার প্রোজেক্টের সমস্ত অ্যাপ BigQuery-এর সাথে লিঙ্ক করা থাকে এবং আপনি পরে প্রোজেক্টে যোগ করা যেকোন অ্যাপ স্বয়ংক্রিয়ভাবে BigQuery-এর সাথে লিঙ্ক হয়ে যায়। কোন অ্যাপগুলি ডেটা পাঠায় তা আপনি পরিচালনা করতে পারেন৷
  • Firebase আপনার বিদ্যমান ডেটার একটি কপি BigQuery-এ এক্সপোর্ট করে । প্রতিটি লিঙ্ক করা অ্যাপের জন্য, এতে দৈনিক সিঙ্ক থেকে ডেটা সম্বলিত একটি ব্যাচ টেবিল অন্তর্ভুক্ত থাকে।
  • আপনি Crashlytics BigQuery স্ট্রিমিং রপ্তানি সক্ষম করলে, সমস্ত লিঙ্ক করা অ্যাপের একটি রিয়েলটাইম টেবিল থাকবে যাতে ক্রমাগত ডেটা আপডেট হয়।

BigQuery এক্সপোর্ট নিষ্ক্রিয় করতে, Firebase কনসোলে আপনার প্রোজেক্ট আনলিঙ্ক করুন

BigQuery-এ কোন ডেটা রপ্তানি করা হয়?

Firebase Crashlytics ডেটা firebase_crashlytics নামের একটি BigQuery ডেটাসেটে রপ্তানি করা হয়। ডিফল্টরূপে, আপনার প্রজেক্টের প্রতিটি অ্যাপের জন্য Crashlytics ডেটা সেটের ভিতরে পৃথক টেবিল তৈরি করা হবে। ফায়ারবেস অ্যাপের বান্ডেল শনাক্তকারীর উপর ভিত্তি করে টেবিলের নাম দেয়, পিরিয়ডগুলিকে আন্ডারস্কোরে রূপান্তরিত করে এবং শেষে একটি প্ল্যাটফর্মের নাম যুক্ত করা হয়।

উদাহরণস্বরূপ, com.google.test আইডি সহ একটি অ্যাপের ডেটা com_google_test_ANDROID নামের একটি টেবিলে থাকবে। এই ব্যাচ টেবিল প্রতিদিন একবার আপডেট করা হয়. আপনি Crashlytics BigQuery স্ট্রিমিং এক্সপোর্ট সক্ষম করলে, Firebase Crashlytics ডেটাও রিয়েলটাইমে com_google_test_ANDROID_REALTIME এ স্ট্রিম করা হবে।

একটি টেবিলের প্রতিটি সারি ক্র্যাশ, অ-মারাত্মক ত্রুটি এবং ANR সহ অ্যাপে ঘটে যাওয়া একটি ইভেন্টকে উপস্থাপন করে।

Crashlytics BigQuery স্ট্রিমিং এক্সপোর্ট সক্ষম করুন

আপনি BigQueryStreaming এর মাধ্যমে আপনার Crashlytics ডেটা রিয়েলটাইমে স্ট্রিম করতে পারেন। লাইভ ডেটার প্রয়োজন হয় এমন যেকোন উদ্দেশ্যে আপনি এটি ব্যবহার করতে পারেন, যেমন একটি লাইভ ড্যাশবোর্ডে তথ্য উপস্থাপন করা, একটি রোলআউট লাইভ দেখা, বা অ্যালার্ট এবং কাস্টম ওয়ার্কফ্লো ট্রিগার করে এমন অ্যাপ্লিকেশন সমস্যাগুলি পর্যবেক্ষণ করা।

BigQuery স্যান্ডবক্সের জন্য Crashlytics BigQuery স্ট্রিমিং এক্সপোর্ট উপলব্ধ নয়।

আপনি যখন Crashlytics BigQuery স্ট্রিমিং এক্সপোর্ট সক্ষম করেন, তখন ব্যাচ টেবিল ছাড়াও আপনার কাছে একটি রিয়েলটাইম টেবিল থাকবে। টেবিলের মধ্যে আপনার যে পার্থক্যগুলি সম্পর্কে সচেতন হওয়া উচিত তা এখানে রয়েছে:

ব্যাচ টেবিল রিয়েলটাইম টেবিল
  • প্রতিদিন একবার ডেটা এক্সপোর্ট করা হয়
  • BigQuery-এ ব্যাচ লেখার আগে ইভেন্টগুলি স্থিরভাবে সংরক্ষণ করা হয়
  • 90 দিন আগে পর্যন্ত ব্যাকফিল করা যাবে
  • রিয়েল টাইমে ডেটা রপ্তানি হয়
  • কোন ব্যাকফিল উপলব্ধ

ব্যাচ টেবিলটি দীর্ঘমেয়াদী বিশ্লেষণ এবং সময়ের সাথে প্রবণতা সনাক্ত করার জন্য আদর্শ কারণ আমরা ইভেন্টগুলি লেখার আগে স্থিরভাবে সংরক্ষণ করি এবং সেগুলি 90 দিন পর্যন্ত টেবিলে ব্যাকফিল করা যেতে পারে। যখন আমরা আপনার রিয়েলটাইম টেবিলে ডেটা লিখি, তখনই আমরা তা BigQuery-এ লিখি এবং তাই এটি লাইভ ড্যাশবোর্ড এবং কাস্টম সতর্কতার জন্য আদর্শ। এই দুটি টেবিল একটি সেলাই কোয়েরি সঙ্গে মিলিত হতে পারে উভয় সুবিধা পেতে. নীচের 9 নং প্রশ্নের উদাহরণ দেখুন।

ডিফল্টরূপে, রিয়েলটাইম টেবিলের পার্টিশনের মেয়াদ 30 দিনের জন্য থাকে। এটিকে কীভাবে পরিবর্তন করতে হয় তা জানতে, পার্টিশনের মেয়াদ আপডেট করা দেখুন।

Crashlytics BigQuery স্ট্রিমিং সক্ষম করুন

স্ট্রিমিং সক্ষম করতে, BigQuery ইন্টিগ্রেশন পৃষ্ঠার Crashlytics বিভাগে নেভিগেট করুন এবং স্ট্রিমিং অন্তর্ভুক্ত করুন চেকবক্স নির্বাচন করুন।

ডেটা স্টুডিও টেমপ্লেট

আপনার ডেটা স্টুডিও টেমপ্লেটে রিয়েলটাইম ডেটা সক্ষম করতে, ডেটা স্টুডিওর সাথে এক্সপোর্ট করা ক্র্যাশলিটিক্স ডেটা ভিজ্যুয়ালাইজ করার নির্দেশাবলী অনুসরণ করুন।

ভিউ

আপনি BigQuery UI ব্যবহার করে নীচের উদাহরণের প্রশ্নগুলিকে ভিউতে পরিণত করতে পারেন। বিস্তারিত নির্দেশাবলীর জন্য ভিউ তৈরি করা দেখুন।

রপ্তানি করা ডেটা দিয়ে আপনি কী করতে পারেন?

BigQuery এক্সপোর্টে ডিভাইসের ধরন, অপারেটিং সিস্টেম, ব্যতিক্রম (Android অ্যাপ) বা ত্রুটি (Apple অ্যাপস) এবং Crashlytics লগের পাশাপাশি অন্যান্য ডেটা সহ কাঁচা ক্র্যাশ ডেটা থাকে।

BigQuery-এ Firebase Crashlytics ডেটা নিয়ে কাজ করা

নিম্নলিখিত উদাহরণগুলি আপনি আপনার Crashlytics ডেটাতে চালাতে পারেন এমন প্রশ্নগুলি প্রদর্শন করে৷ এই প্রশ্নগুলি এমন রিপোর্ট তৈরি করে যা Crashlytics ড্যাশবোর্ডে পাওয়া যায় না।

Crashlytics প্রশ্নের উদাহরণ

নিম্নলিখিত উদাহরণগুলি দেখায় যে কীভাবে রিপোর্ট তৈরি করতে হয় যা ক্র্যাশ ইভেন্ট ডেটাকে আরও সহজে বোঝা যায় এমন সারাংশে একত্রিত করে।

উদাহরণ 1: দিনে দিনে ক্র্যাশ

যতটা সম্ভব বাগ ঠিক করার জন্য কাজ করার পরে, একজন প্রধান বিকাশকারী মনে করেন যে তার দল অবশেষে তাদের নতুন ফটো-শেয়ারিং অ্যাপ চালু করতে প্রস্তুত। তারা করার আগে, তারা গত মাসে প্রতিদিন ক্র্যাশের সংখ্যা পরীক্ষা করতে চায়, তাদের বাগ-ব্যাশ সময়ের সাথে অ্যাপটিকে আরও স্থিতিশীল করেছে তা নিশ্চিত করতে:

SELECT
  COUNT(DISTINCT event_id) AS number_of_crashes,
  FORMAT_TIMESTAMP("%F", event_timestamp) AS date_of_crashes
FROM
 `projectId.firebase_crashlytics.package_name_ANDROID`
GROUP BY
  date_of_crashes
ORDER BY
  date_of_crashes DESC
LIMIT 30;

উদাহরণ 2: সর্বাধিক বিস্তৃত ক্র্যাশগুলি খুঁজুন

প্রোডাকশন প্ল্যানকে সঠিকভাবে অগ্রাধিকার দেওয়ার জন্য, একজন প্রোজেক্ট ম্যানেজার চিন্তা করেন কিভাবে তাদের প্রোডাক্টের শীর্ষ 10টি সবচেয়ে ব্যাপক ক্র্যাশগুলিকে নির্দেশ করা যায়। তারা একটি প্রশ্ন তৈরি করে যা ডেটার প্রাসঙ্গিক পয়েন্টগুলি প্রদান করে:

SELECT
  DISTINCT issue_id,
  COUNT(DISTINCT event_id) AS number_of_crashes,
  COUNT(DISTINCT installation_uuid) AS number_of_impacted_user,
  blame_frame.file,
  blame_frame.line
FROM
  `projectId.firebase_crashlytics.package_name_ANDROID`
WHERE
  event_timestamp >= TIMESTAMP_SUB(CURRENT_TIMESTAMP(),INTERVAL 168 HOUR)
  AND event_timestamp < CURRENT_TIMESTAMP()
GROUP BY
  issue_id,
  blame_frame.file,
  blame_frame.line
ORDER BY
  number_of_crashes DESC
LIMIT 10;

উদাহরণ 3: শীর্ষ 10 ক্র্যাশিং ডিভাইস

পতন নতুন ফোন সিজন! একজন বিকাশকারী জানেন যে এটির মানে এটি নতুন ডিভাইস- নির্দিষ্ট সমস্যা সিজন। সামঞ্জস্যপূর্ণ উদ্বেগগুলিকে এগিয়ে নিতে, তারা একটি ক্যোয়ারী একত্র করেছে যা 10টি ডিভাইস সনাক্ত করে যা গত সপ্তাহে সবচেয়ে বেশি ক্র্যাশ হয়েছে:

SELECT
  device.model,
COUNT(DISTINCT event_id) AS number_of_crashes
FROM
  `projectId.firebase_crashlytics.package_name_ANDROID`
WHERE
  event_timestamp >= TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 168 HOUR)
  AND event_timestamp < CURRENT_TIMESTAMP()
GROUP BY
  device.model
ORDER BY
  number_of_crashes DESC
LIMIT 10;

উদাহরণ 4: কাস্টম কী দ্বারা ফিল্টার করুন

একজন গেম ডেভেলপার জানতে চায় তাদের গেমের কোন স্তরে সবচেয়ে বেশি ক্র্যাশ হয়েছে। তাদের সেই স্ট্যাট ট্র্যাক করতে সাহায্য করার জন্য, তারা একটি কাস্টম ক্র্যাশলিটিক্স কী current_level সেট করে এবং প্রতিবার ব্যবহারকারী যখন একটি নতুন স্তরে পৌঁছায় তখন এটি আপডেট করে।

উদ্দেশ্য গ

CrashlyticsKit setIntValue:3 forKey:@"current_level";

সুইফট

Crashlytics.sharedInstance().setIntValue(3, forKey: "current_level");

জাভা

Crashlytics.setInt("current_level", 3);

তাদের BigQuery রপ্তানিতে সেই কী দিয়ে, তারা প্রতিটি ক্র্যাশ ইভেন্টের সাথে যুক্ত current_level মানের বন্টন প্রতিবেদন করার জন্য একটি ক্যোয়ারী লেখে:

SELECT
COUNT(DISTINCT event_id) AS num_of_crashes,
  value
FROM
  `projectId.firebase_crashlytics.package_name_ANDROID`
UNNEST(custom_keys)
WHERE
  key = "current_level"
GROUP BY
  key,
  value
ORDER BY
  num_of_crashes DESC

উদাহরণ 5: ব্যবহারকারী আইডি নিষ্কাশন

একজন ডেভেলপারের প্রারম্ভিক অ্যাক্সেসে একটি অ্যাপ আছে। তাদের বেশিরভাগ ব্যবহারকারী এটি পছন্দ করেন, তবে তিনজন অস্বাভাবিক সংখ্যক ক্র্যাশের সম্মুখীন হয়েছেন। সমস্যার তলানিতে যাওয়ার জন্য, তারা একটি ক্যোয়ারী লেখে যা তাদের ব্যবহারকারী আইডি ব্যবহার করে সেই ব্যবহারকারীদের জন্য সমস্ত ক্র্যাশ ইভেন্ট টানে:

SELECT *
FROM
  `projectId.firebase_crashlytics.package_name_ANDROID`
WHERE
  user.id IN ("userid1", "userid2", "userid3")
ORDER BY
  user.id
 

উদাহরণ 6: একটি নির্দিষ্ট ক্র্যাশ সমস্যার সম্মুখীন সমস্ত ব্যবহারকারীদের খুঁজুন

একজন বিকাশকারী বিটা পরীক্ষকদের একটি গ্রুপে একটি জটিল বাগ প্রকাশ করেছে। দলটি নির্দিষ্ট ক্র্যাশ ইস্যু আইডি সনাক্ত করতে উপরের উদাহরণ 2 থেকে প্রশ্নটি ব্যবহার করতে সক্ষম হয়েছিল। এখন তারা এই ক্র্যাশ দ্বারা প্রভাবিত অ্যাপ ব্যবহারকারীদের তালিকা বের করার জন্য একটি ক্যোয়ারী চালাতে চায়:

SELECT user.id as user_id
FROM
  `projectId.firebase_crashlytics.package_name_ANDROID`
WHERE
  issue_id = "YOUR_ISSUE_ID"
  AND application.display_version = ""
  AND user.id != ""
ORDER BY
  user.id;

উদাহরণ 7: ক্র্যাশ সমস্যা দ্বারা প্রভাবিত ব্যবহারকারীর সংখ্যা, দেশ অনুসারে বিভক্ত

এখন দলটি একটি নতুন রিলিজের রোলআউটের সময় একটি জটিল বাগ সনাক্ত করেছে৷ তারা নির্দিষ্ট ক্র্যাশ ইস্যু আইডি সনাক্ত করতে উপরের উদাহরণ 2 থেকে প্রশ্নটি ব্যবহার করতে সক্ষম হয়েছিল। দলটি এখন দেখতে চায় যে এই ক্র্যাশটি বিশ্বের বিভিন্ন দেশে ব্যবহারকারীদের মধ্যে ছড়িয়ে পড়েছে কিনা।

এই ক্যোয়ারী লিখতে, দলের প্রয়োজন হবে:

  1. Google Analytics-এর জন্য BigQuery এক্সপোর্ট চালু করুন। BigQuery-এ প্রজেক্ট ডেটা এক্সপোর্ট দেখুন।

  2. Google Analytics SDK এবং Crashlytics SDK উভয় ক্ষেত্রেই একটি ব্যবহারকারী আইডি পাস করতে তাদের অ্যাপ আপডেট করুন।

    উদ্দেশ্য গ
    CrashlyticsKit setUserIdentifier:@"123456789";
    FIRAnalytics setUserID:@"12345678 9";
    
    সুইফট
    Crashlytics.sharedInstance().setUserIdentifier("123456789");
    Analytics.setUserID("123456789");
    
    জাভা
    Crashlytics.setUserIdentifier("123456789");
    mFirebaseAnalytics.setUserId("123456789");
    
  3. Crashlytics BigQuery ডেটা সেটে ক্র্যাশ সহ Google Analytics BigQuery ডেটা সেটের ইভেন্টগুলিতে যোগদান করতে ব্যবহারকারী আইডি ক্ষেত্র ব্যবহার করে এমন একটি প্রশ্ন লিখুন:

    SELECT DISTINCT c.issue_id, a.geo.country, COUNT(DISTINCT c.user.id) as num_users_impacted
    FROM `projectId.firebase_crashlytics.package_name_ANDROID` c
    INNER JOIN  `projectId.analytics_YOUR_TABLE.events_*` a on c.user.id = a.user_id
    WHERE
     c.issue_id = "YOUR_ISSUE_ID"
     AND a._TABLE_SUFFIX BETWEEN '20190101'
     AND '20200101'
    GROUP BY
     c.issue_id,
     a.geo.country,
     c.user.id
    

উদাহরণ 8: আজ পর্যন্ত সেরা 5টি সমস্যা

Crashlytics BigQuery স্ট্রিমিং এক্সপোর্ট সক্ষম করা প্রয়োজন

SELECT
  issue_id,
  COUNT(DISTINCT event_id) AS events
FROM
  `your_project.firebase_crashlytics.package_name_ANDROID_REALTIME`
WHERE
  DATE(event_timestamp) = CURRENT_DATE()
GROUP BY
  issue_id
ORDER BY
  events DESC
LIMIT
  5;

উদাহরণ 9: আজ সহ DATE থেকে শীর্ষ 5টি সমস্যা

Crashlytics BigQuery স্ট্রিমিং এক্সপোর্ট সক্ষম করা প্রয়োজন।

এই উদাহরণে, আমরা নির্ভরযোগ্য ব্যাচ ডেটাতে রিয়েলটাইম তথ্য যোগ করতে ব্যাচ এবং রিয়েলটাইম টেবিলগুলিকে একত্রিত করি। যেহেতু event_id একটি প্রাথমিক কী, তাই আমরা দুটি টেবিল থেকে যেকোনো সাধারণ ঘটনা অনুমান করতে DISTINCT event_id ব্যবহার করতে পারি।

SELECT
  issue_id,
  COUNT(DISTINCT event_id) AS events
FROM (
  SELECT
    issue_id,
    event_id,
    event_timestamp
  FROM
    `your_project.firebase_crashlytics.package_name_ANDROID_REALTIME`
  UNION ALL
  SELECT
    issue_id,
    event_id,
    event_timestamp
  FROM
    `your_project.firebase_crashlytics.package_name_ANDROID`)
WHERE
  event_timestamp >= "2020-01-13"
GROUP BY
  issue_id
ORDER BY
  events DESC
LIMIT
  5;

BigQuery-এ Firebase Crashlytics স্কিমা বোঝা

আপনি যখন BigQuery-এর সাথে Crashlytics লিঙ্ক করেন, তখন Firebase সাম্প্রতিক ইভেন্টগুলি (ক্র্যাশ, অ-মরণীয় ত্রুটি এবং ANR) রপ্তানি করে, লিঙ্কের দুই দিন আগে পর্যন্ত ইভেন্ট সহ, নব্বই দিন পর্যন্ত ব্যাকফিল করার বিকল্প সহ।

সেই থেকে আপনি লিঙ্কটি নিষ্ক্রিয় না করা পর্যন্ত, Firebase ক্র্যাশলিটিক্স ইভেন্টগুলি প্রতিদিন রপ্তানি করে। প্রতিটি এক্সপোর্টের পরে BigQuery-এ ডেটা উপলব্ধ হতে কয়েক মিনিট সময় লাগতে পারে।

ডেটাসেট

Firebase Crashlytics Crashlytics ডেটার জন্য BigQuery-এ একটি নতুন ডেটাসেট তৈরি করে। ডেটাসেটটি আপনার পুরো প্রকল্পকে কভার করে, এমনকি এতে একাধিক অ্যাপ থাকলেও।

টেবিল

Firebase Crashlytics আপনার প্রোজেক্টের প্রতিটি অ্যাপের জন্য ডেটাসেটে একটি টেবিল তৈরি করে, যদি না আপনি সেই অ্যাপের জন্য ডেটা এক্সপোর্ট করা অপ্ট আউট করেন। ফায়ারবেস অ্যাপের বান্ডেল শনাক্তকারীর উপর ভিত্তি করে টেবিলের নাম দেয়, পিরিয়ডগুলিকে আন্ডারস্কোরে রূপান্তরিত করে এবং শেষে একটি প্ল্যাটফর্মের নাম যুক্ত করা হয়।

উদাহরণস্বরূপ, com.google.test ID সহ একটি Android অ্যাপের ডেটা com_google_test_ANDROID নামের একটি টেবিলে থাকবে এবং রিয়েলটাইম ডেটা (যদি সক্ষম করা থাকে) com_google_test_ANDROID_REALTIME নামের একটি টেবিলে থাকবে

ডেভেলপারদের দ্বারা সংজ্ঞায়িত যেকোনো কাস্টম ক্র্যাশলিটিক্স কী ছাড়াও সারণিতে ক্র্যাশলিটিক্স ডেটার একটি প্রমিত সেট রয়েছে।

সারি

একটি টেবিলের প্রতিটি সারি অ্যাপটির সম্মুখীন হওয়া একটি ত্রুটি উপস্থাপন করে।

কলাম

একটি টেবিলের কলামগুলি ক্র্যাশ, অ-মারাত্মক ত্রুটি এবং ANR-এর জন্য অভিন্ন। যদি Crashlytics BigQuery স্ট্রিমিং এক্সপোর্ট চালু করা থাকে, তাহলে রিয়েলটাইম টেবিলে ব্যাচ টেবিলের মতো একই কলাম থাকবে। রপ্তানির মধ্যে থাকা কলামগুলি নীচে তালিকাভুক্ত করা হয়েছে৷

স্ট্যাক ট্রেস ছাড়া

সারিতে উপস্থিত কলামগুলি স্ট্যাক ট্রেস ছাড়াই ইভেন্টগুলিকে উপস্থাপন করে৷

ক্ষেত্র নাম ডেটা টাইপ বর্ণনা
প্ল্যাটফর্ম STRING অ্যাপল বা অ্যান্ড্রয়েড অ্যাপস
bundle_identifier STRING বান্ডেল আইডি, যেমন com.google.gmail
event_id STRING ইভেন্টের জন্য একটি অনন্য আইডি
হয়_মারাত্মক বুলিয়ান অ্যাপটি ক্র্যাশ হয়েছে কিনা
error_type STRING ইভেন্টের ত্রুটির ধরন (ফ্যাটাল, নন_ফ্যাটাল, এএনআর)
issue_id STRING ঘটনার সঙ্গে যুক্ত সমস্যা
variant_id STRING এই ইভেন্টের সাথে সম্পর্কিত সমস্যা বৈকল্পিক
মনে রাখবেন যে সমস্ত ইভেন্টের একটি সম্পর্কিত সমস্যা বৈকল্পিক নেই।
ঘটনা_টাইমস্ট্যাম্প টাইমস্ট্যাম্প যখন ঘটনাটি ঘটেছে
যন্ত্র রেকর্ড যে ডিভাইসে ঘটনাটি ঘটেছে
device.manufacturer STRING ডিভাইস প্রস্তুতকারক
ডিভাইস মডেল STRING ডিভাইস মডেল
device.architecture STRING X86_32, X86_64, ARMV7, ARM64, ARMV7S, বা ARMV7K
স্মৃতি রেকর্ড ডিভাইসের মেমরি স্থিতি
memory.used INT64 মেমরির বাইট ব্যবহার করা হয়েছে
স্মৃতি বিনামূল্যে INT64 বাইট মেমরি অবশিষ্ট আছে
স্টোরেজ রেকর্ড ডিভাইসের স্থায়ী সঞ্চয়স্থান
store.used INT64 স্টোরেজের বাইট ব্যবহার করা হয়েছে
স্টোরেজ বিনামূল্যে INT64 বাইট স্টোরেজ বাকি
অপারেটিং_সিস্টেম রেকর্ড ডিভাইসে OS এর বিশদ বিবরণ
operating_system.display_version STRING ডিভাইসে OS এর সংস্করণ
operating_system.name STRING ডিভাইসে OS এর নাম
operating_system.modification_state STRING ডিভাইসটি পরিবর্তন করা হয়েছে কিনা, যেমন জেলব্রোকেন/রুটেড (সংশোধিত বা অপরিবর্তিত)
operating_system.type STRING ডিভাইসে চলমান OS এর ধরন (উদাহরণস্বরূপ, IOS, MACOS); শুধুমাত্র অ্যাপল প্ল্যাটফর্ম অ্যাপের জন্য উপলব্ধ
operating_system.device_type STRING ডিভাইসের ধরন (উদাহরণস্বরূপ, মোবাইল, ট্যাবলেট, টিভি, ইত্যাদি); "ডিভাইস বিভাগ" নামেও পরিচিত
আবেদন রেকর্ড যে অ্যাপটি ইভেন্টটি তৈরি করেছে
application.build_version STRING অ্যাপটির বিল্ড সংস্করণ
application.display_version STRING
ব্যবহারকারী রেকর্ড ঐচ্ছিক: অ্যাপের ব্যবহারকারীর তথ্য সংগ্রহ করা
ব্যবহারকারীর নাম STRING ঐচ্ছিক: ব্যবহারকারীর নাম
user.email STRING ঐচ্ছিক: ব্যবহারকারীর ইমেল ঠিকানা
ব্যবহারকারী আইডি STRING ঐচ্ছিক: ব্যবহারকারীর সাথে যুক্ত একটি অ্যাপ-নির্দিষ্ট আইডি
কাস্টম_কি পুনরাবৃত্তি রেকর্ড বিকাশকারী-সংজ্ঞায়িত কী-মান জোড়া
custom_keys.key STRING একটি বিকাশকারী-সংজ্ঞায়িত কী
custom_keys.value STRING একটি বিকাশকারী-সংজ্ঞায়িত মান
ইনস্টলেশন_uuid STRING একটি আইডি যা একটি অনন্য অ্যাপ এবং ডিভাইস ইনস্টলেশন শনাক্ত করে
crashlytics_sdk_versions STRING Crashlytics SDK সংস্করণ যা ইভেন্টটি তৈরি করেছে৷
app_orientation STRING PORTRAIT, LANDSCAPE, FACE_UP, বা FACE_DOWN
device_orientation STRING PORTRAIT, LANDSCAPE, FACE_UP, বা FACE_DOWN
প্রক্রিয়া_রাষ্ট্র STRING ব্যাকগ্রাউন্ড বা ফোরগ্রাউন্ড
লগ পুনরাবৃত্তি রেকর্ড Crashlytics লগার দ্বারা তৈরি করা টাইমস্ট্যাম্পযুক্ত লগ বার্তা, যদি সক্রিয় থাকে
logs.timestamp টাইমস্ট্যাম্প যখন লগ করা হয়েছিল
logs.message STRING লগ করা বার্তা
ব্রেডক্রাম্বস পুনরাবৃত্তি রেকর্ড টাইমস্ট্যাম্পযুক্ত Google Analytics ব্রেডক্রাম্ব, যদি সক্ষম করা থাকে
breadcrumbs.timestamp টাইমস্ট্যাম্প ব্রেডক্রাম্বের সাথে যুক্ত টাইমস্ট্যাম্প
breadcrumbs.name STRING ব্রেডক্রাম্বের সাথে যুক্ত নাম
breadcrumbs.params পুনরাবৃত্তি রেকর্ড ব্রেডক্রাম্বের সাথে যুক্ত পরামিতি
breadcrumbs.params.key STRING ব্রেডক্রাম্বের সাথে যুক্ত একটি প্যারামিটার কী
breadcrumbs.params.value STRING ব্রেডক্রাম্বের সাথে সম্পর্কিত একটি প্যারামিটার মান
blame_frame রেকর্ড ক্র্যাশ বা ত্রুটির মূল কারণ হিসেবে চিহ্নিত ফ্রেম
blame_frame.line INT64 ফ্রেমের ফাইলের লাইন নম্বর
blame_frame.file STRING ফ্রেম ফাইলের নাম
blame_frame.symbol STRING হাইড্রেটেড চিহ্ন, বা কাঁচা প্রতীক যদি এটি হাইড্রেটযোগ্য না হয়
blame_frame.offset INT64 বাইট অফসেট বাইনারি ইমেজ যা কোড ধারণ করে, জাভা ব্যতিক্রমের জন্য আনসেট
blame_frame.address INT64 বাইনারি চিত্রের ঠিকানা যেখানে কোড রয়েছে, জাভা ফ্রেমের জন্য সেট করা নেই
blame_frame.library STRING ফ্রেম অন্তর্ভুক্ত লাইব্রেরির প্রদর্শন নাম
blame_frame.owner STRING বিকাশকারী, বিক্রেতা, রানটাইম, প্ল্যাটফর্ম বা সিস্টেম৷
blame_frame.blamed বুলিয়ান Crashlytics-এর বিশ্লেষণ নির্ধারণ করেছে যে এই ফ্রেমটি ক্র্যাশ বা ত্রুটির কারণ
ব্যতিক্রম পুনরাবৃত্তি রেকর্ড শুধুমাত্র Android: ব্যতিক্রম যা এই ইভেন্টের সময় ঘটেছে। নেস্টেড ব্যতিক্রমগুলি বিপরীত কালানুক্রমিক ক্রমে উপস্থাপিত হয় (পড়ুন: শেষ রেকর্ডটি নিক্ষেপ করা প্রথম ব্যতিক্রম)
ব্যতিক্রম। প্রকার STRING ব্যতিক্রম প্রকার, যেমন java.lang.IllegalStateException
exceptions.exception_message STRING ব্যতিক্রমের সাথে যুক্ত একটি বার্তা
exceptions.nested বুলিয়ান শেষ নিক্ষেপ করা ব্যতিক্রম ছাড়া সকলের জন্য সত্য (অর্থাৎ প্রথম রেকর্ড)
ব্যতিক্রম। শিরোনাম STRING থ্রেড শিরোনাম
ব্যতিক্রম.সাবটাইটেল STRING থ্রেডের সাবটাইটেল
ব্যতিক্রম। দোষী বুলিয়ান সত্য যদি ক্র্যাশলিটিক্স ব্যতিক্রমটি নির্ধারণ করে ত্রুটি বা ক্র্যাশের জন্য দায়ী
ব্যতিক্রম.ফ্রেম পুনরাবৃত্তি রেকর্ড ব্যতিক্রম সঙ্গে যুক্ত ফ্রেম
exceptions.frames.line INT64 ফ্রেমের ফাইলের লাইন নম্বর
exceptions.frames.file STRING ফ্রেম ফাইলের নাম
exceptions.frames.symbol STRING হাইড্রেটেড চিহ্ন, বা কাঁচা প্রতীক যদি এটি হাইড্রেটযোগ্য না হয়
exceptions.frames.offset INT64 বাইট অফসেট বাইনারি ইমেজ যা কোড ধারণ করে, জাভা ব্যতিক্রমের জন্য আনসেট
exceptions.frames.address INT64 বাইনারি চিত্রের ঠিকানা যেখানে কোড রয়েছে, জাভা ফ্রেমের জন্য সেট করা নেই
exceptions.frames.library STRING ফ্রেম অন্তর্ভুক্ত লাইব্রেরির প্রদর্শন নাম
exceptions.frames.owner STRING বিকাশকারী, বিক্রেতা, রানটাইম, প্ল্যাটফর্ম বা সিস্টেম৷
exceptions.frames.blamed বুলিয়ান Crashlytics-এর বিশ্লেষণ নির্ধারণ করেছে যে এই ফ্রেমটি ক্র্যাশ বা ত্রুটির কারণ
ত্রুটি পুনরাবৃত্তি রেকর্ড শুধুমাত্র অ্যাপল অ্যাপস: অ-মারাত্মক ত্রুটি
error.queue_name STRING যে সারিতে থ্রেড চলছিল
ভুল সংকেত INT64 অ্যাপের কাস্টম লগ করা NSError এর সাথে যুক্ত ত্রুটি কোড
error.title STRING থ্রেড শিরোনাম
error.subtitle STRING থ্রেডের সাবটাইটেল
error.blamed বুলিয়ান Crashlytics-এর বিশ্লেষণ নির্ধারণ করেছে যে এই ফ্রেমটি ত্রুটির কারণ
error.frames পুনরাবৃত্তি রেকর্ড স্ট্যাকট্রেস এর ফ্রেম
error.frames.line INT64 ফ্রেমের ফাইলের লাইন নম্বর
error.frames.file STRING ফ্রেম ফাইলের নাম
error.frames.symbol STRING হাইড্রেটেড চিহ্ন, বা কাঁচা প্রতীক যদি এটি হাইড্রেটযোগ্য না হয়
error.frames.offset INT64 বাইট অফসেট বাইনারি ইমেজ যে কোড ধারণ করে
error.frames.address INT64 বাইনারি চিত্রের ঠিকানা যা কোড ধারণ করে
error.frames.library STRING ফ্রেম অন্তর্ভুক্ত লাইব্রেরির প্রদর্শন নাম
error.frames.owner STRING বিকাশকারী, বিক্রেতা, রানটাইম, প্ল্যাটফর্ম বা সিস্টেম৷
error.frames.blamed বুলিয়ান Crashlytics-এর বিশ্লেষণ নির্ধারণ করেছে যে এই ফ্রেমটি ত্রুটির কারণ
থ্রেড পুনরাবৃত্তি রেকর্ড অনুষ্ঠানের সময় উপস্থিত থ্রেড
threads.crashed বুলিয়ান থ্রেড বিপর্যস্ত কিনা
threads.thread_name STRING থ্রেড এর নাম
threads.queue_name STRING শুধুমাত্র অ্যাপল অ্যাপস: থ্রেডটি যে সারিতে চলছিল
threads.signal_name STRING যে সিগন্যালটির কারণে অ্যাপটি ক্র্যাশ হয়েছে, শুধুমাত্র ক্র্যাশ হওয়া নেটিভ থ্রেডে উপস্থিত থাকে
threads.signal_code STRING সিগন্যালের কোড যার কারণে অ্যাপটি ক্র্যাশ হয়েছে; শুধুমাত্র বিপর্যস্ত নেটিভ থ্রেডে উপস্থিত
threads.crash_address INT64 সিগন্যালের ঠিকানা যা অ্যাপ্লিকেশনটি ক্র্যাশ করেছে; শুধুমাত্র বিপর্যস্ত নেটিভ থ্রেডে উপস্থিত
threads.code INT64 শুধুমাত্র অ্যাপল অ্যাপস: অ্যাপ্লিকেশনের কাস্টম লগ করা NSError-এর ত্রুটি কোড
threads.title STRING থ্রেড শিরোনাম
threads.subtitle STRING থ্রেডের সাবটাইটেল
থ্রেড বুলিয়ান Crashlytics-এর বিশ্লেষণ নির্ধারণ করেছে যে এই ফ্রেমটি ক্র্যাশ বা ত্রুটির কারণ
threads.frames পুনরাবৃত্তি রেকর্ড থ্রেড এর ফ্রেম
threads.frames.line INT64 ফ্রেমের ফাইলের লাইন নম্বর
threads.frames.file STRING ফ্রেম ফাইলের নাম
threads.frames.symbol STRING হাইড্রেটেড চিহ্ন, বা কাঁচা প্রতীক যদি এটি জলমুক্ত না হয়
threads.frames.offset INT64 বাইট অফসেট বাইনারি ইমেজ যে কোড ধারণ করে
threads.frames.address INT64 বাইনারি চিত্রের ঠিকানা যা কোড ধারণ করে
threads.frames.library STRING ফ্রেম অন্তর্ভুক্ত লাইব্রেরির প্রদর্শন নাম
threads.frames.owner STRING বিকাশকারী, বিক্রেতা, রানটাইম, প্ল্যাটফর্ম বা সিস্টেম৷
threads.frames.blamed বুলিয়ান Crashlytics-এর বিশ্লেষণ নির্ধারণ করেছে যে এই ফ্রেমটি ত্রুটির কারণ
unity_metadata.unity_version STRING ইউনিটির সংস্করণ এই ডিভাইসে চলছে
unity_metadata.debug_build বুলিয়ান যদি এটি একটি ডিবাগ বিল্ড হয়
unity_metadata.processor_type STRING প্রসেসরের ধরন
unity_metadata.processor_count INT64 প্রসেসরের সংখ্যা (কোর)
unity_metadata.processor_frequency_mhz INT64 MHz এ প্রসেসরের ফ্রিকোয়েন্সি
unity_metadata.system_memory_size_mb INT64 Mb-এ সিস্টেমের মেমরির আকার
unity_metadata.graphics_memory_size_mb INT64 এমবি-তে গ্রাফিক্স মেমরি
unity_metadata.graphics_device_id INT64 গ্রাফিক্স ডিভাইসের শনাক্তকারী
unity_metadata.graphics_device_vendor_id INT64 গ্রাফিক্স প্রসেসরের বিক্রেতার শনাক্তকারী
unity_metadata.graphics_device_name STRING গ্রাফিক্স ডিভাইসের নাম
unity_metadata.graphics_device_vendor STRING গ্রাফিক্স ডিভাইসের বিক্রেতা
unity_metadata.graphics_device_version STRING গ্রাফিক্স ডিভাইসের সংস্করণ
unity_metadata.graphics_device_type STRING গ্রাফিক্স ডিভাইসের ধরন
unity_metadata.graphics_shader_level INT64 গ্রাফিক্সের ছায়ার স্তর
unity_metadata.graphics_render_target_count INT64 গ্রাফিকাল রেন্ডারিং লক্ষ্যের সংখ্যা
unity_metadata.graphics_copy_texture_support STRING ইউনিটি API- তে সংজ্ঞায়িত গ্রাফিক্স টেক্সচার অনুলিপি করার জন্য সমর্থন
unity_metadata.graphics_max_texture_size INT64 টেক্সচার রেন্ডার করার জন্য নিবেদিত সর্বাধিক আকার
unity_metadata.screen_size_px STRING পিক্সেলে স্ক্রিনের আকার, প্রস্থ x উচ্চতা হিসাবে ফর্ম্যাট করা হয়েছে
unity_metadata.screen_resolution_dpi STRING ফ্লোটিং পয়েন্ট নম্বর হিসাবে স্ক্রিনের DPI
unity_metadata.screen_refresh_rate_hz INT64 হার্জে স্ক্রিনের রিফ্রেশ রেট

ডেটা স্টুডিওর সাথে এক্সপোর্ট করা ক্র্যাশলিটিক্স ডেটা ভিজ্যুয়ালাইজ করা

Google ডেটা স্টুডিও BigQuery-এ আপনার Crashlytics ডেটাসেটগুলিকে এমন রিপোর্টে পরিণত করে যা পড়া সহজ, শেয়ার করা সহজ এবং সম্পূর্ণরূপে কাস্টমাইজযোগ্য।

ডেটা স্টুডিও ব্যবহার সম্পর্কে আরও জানতে, ডেটা স্টুডিও কুইকস্টার্ট গাইড, ডেটা স্টুডিওতে স্বাগতম

একটি Crashlytics রিপোর্ট টেমপ্লেট ব্যবহার করে

ডেটা স্টুডিওতে Crashlytics-এর জন্য একটি নমুনা প্রতিবেদন রয়েছে যাতে এক্সপোর্ট করা Crashlytics BigQuery স্কিমা থেকে মাত্রা এবং মেট্রিক্সের একটি বিস্তৃত সেট রয়েছে। আপনি যদি Crashlytics BigQuery স্ট্রিমিং এক্সপোর্ট সক্ষম করে থাকেন, তাহলে আপনি ডেটা স্টুডিও টেমপ্লেটের রিয়েলটাইম ট্রেন্ডস পৃষ্ঠায় সেই ডেটা দেখতে পারেন। আপনার নিজের অ্যাপের ক্র্যাশ ডেটার উপর ভিত্তি করে দ্রুত নতুন প্রতিবেদন এবং ভিজ্যুয়ালাইজেশন তৈরি করতে আপনি নমুনাটিকে একটি টেমপ্লেট হিসেবে ব্যবহার করতে পারেন:

  1. Crashlytics ডেটা স্টুডিও ড্যাশবোর্ড টেমপ্লেট খুলুন।
  2. উপরের ডানদিকে কোণায় টেমপ্লেট ব্যবহার করুন ক্লিক করুন।
  3. নতুন ডেটা উত্স ড্রপডাউনে, নতুন ডেটা উত্স তৈরি করুন নির্বাচন করুন।
  4. BigQuery কার্ডে সিলেক্ট এ ক্লিক করুন।
  5. আমার প্রজেক্ট > [your-project-name] > firebase_crashlytics > [your-table-name] বেছে নিয়ে এক্সপোর্ট করা Crashlytics ডেটা সম্বলিত একটি টেবিল নির্বাচন করুন। আপনার ব্যাচ টেবিল সবসময় নির্বাচন করার জন্য উপলব্ধ; Crashlytics BigQuery স্ট্রিমিং এক্সপোর্ট চালু থাকলে, আপনি পরিবর্তে আপনার রিয়েলটাইম টেবিল নির্বাচন করতে পারেন।
  6. কনফিগারেশনের অধীনে, Crashlytics টেমপ্লেট স্তরকে ডিফল্টে সেট করুন।
  7. নতুন ডেটা সোর্স তৈরি করতে কানেক্ট এ ক্লিক করুন।
  8. Crashlytics টেমপ্লেটে ফিরে যেতে প্রতিবেদনে যোগ করুন ক্লিক করুন।
  9. অবশেষে, Crashlytics ডেটা স্টুডিও ড্যাশবোর্ড টেমপ্লেটের আপনার অনুলিপি তৈরি করতে প্রতিবেদন তৈরি করুন- এ ক্লিক করুন।