| প্ল্যাটফর্ম বেছে নিন: | iOS+ Android ওয়েব Flutter Unity |
Firebase কনসোলে (DevOps ও এনগেজমেন্ট > Crashlytics ড্যাশবোর্ড), আপনি কোনও সমস্যার উপর ক্লিক করে বিস্তারিত ইভেন্ট রিপোর্ট পেতে পারেন। আপনি সেইসব রিপোর্ট কাস্টমাইজ করতে এবং আপনার টেলিমেট্রি সংগ্রহ ম্যানেজ করতে পারবেন, যাতে আপনার ওয়েব অ্যাপে কী ঘটছে তা আরও ভালোভাবে বুঝতে পারেন:
- প্রোগ্রাম্যাটিক্যালি হ্যান্ডেল করা ব্যতিক্রমের রিপোর্ট করুন
- কাস্টম 'কী' যোগ করুন
- অল্প সময়ের জন্য চলা রুটিনের জন্য টেলিমেট্রি রেকর্ড জোর করে ফ্লাশ করুন
- স্যাম্পলিং রেট কনফিগার করা
- টেলিম্যাট্রি সংগ্রহ বন্ধ বা চালু করা
প্রোগ্রাম্যাটিক্যালি হ্যান্ডেল করা এক্সেপশন রিপোর্ট করুন
আপনি recordError ব্যবহার করে ম্যানুয়ালি হ্যান্ডেল করা ব্যতিক্রম রেকর্ড করতে পারবেন। আপনার ফ্রেমওয়ার্কের ত্রুটি
সীমা দ্বারা রাউটিং সংক্রান্ত ত্রুটি এবং আগে বোঝা যায়নি এমন সমস্যা অটোমেটিক ক্যাপচার করা হয়।
আপনার ব্যবহারকারীদের মধ্যে ব্যর্থতার ব্যাপকতা এবং ডায়াগনস্টিক অ্যাট্রিবিউট কীভাবে ট্র্যাক করবেন তা এখানে দেওয়া হল:
import { recordError, getCrashlytics } from '@firebase/crashlytics';
import { app } from './lib/firebase';
const crashlytics = getCrashlytics(app);
async function submitPaymentForm() {
try {
await api.processTransaction();
} catch (error) {
// Manually record handled exceptions with diagnostic context
recordError(crashlytics, error, {
userTier: 'Premium Gold',
checkoutStage: 'BillingAddressVerification',
transactionCode: 'tx_8412_err',
retryAttempts: 2
});
showFallbackBanner(error);
}
}
কাস্টম 'কী' যোগ করুন
কাস্টম মেটাডেটা কী আপনাকে নির্দিষ্ট অ্যাপের অবস্থা বা ক্র্যাশ হওয়ার আগে ব্যবহারকারীর ওয়ার্কফ্লো বুঝতে সাহায্য করে।
recordError কল করার সময় আপনি ঐচ্ছিক মেটাডেটা প্যারামিটার ব্যবহার করে সরাসরি কী-ভ্যালু কাস্টম অ্যাট্রিবিউট হিসেবে ব্যবহারকারীর অ্যাক্টিভিটি, সেশনের স্ট্যাটাস ও ডায়াগনস্টিক বিবরণ লগ করতে পারবেন:
import { recordError, getCrashlytics } from '@firebase/crashlytics';
import { app } from './lib/firebase'; // Shared initialization script
const crashlytics = getCrashlytics(app);
// Pass custom key-value diagnostic metadata within recordError
recordError(crashlytics, error, {
userTier: 'Premium Gold',
checkoutStage: 'BillingAddressVerification',
transactionCode: 'tx_8412_err',
retryAttempts: 2,
breadcrumb: 'User opened shopping cart',
lastAction: 'Click Checkout Button'
});
এইসব কাস্টম অ্যাট্রিবিউট ব্যতিক্রম রিপোর্টে রাখা হয় এবং Crashlytics ড্যাশবোর্ড সমস্যার ভিউতে কী ট্যাবের অধীনে দেখা যায়।
টেলিমেট্রি রেকর্ড ফ্লাশ করুন
ডিফল্ট হিসেবে, ব্যাটারির আয়ু, সিপিইউ পারফর্ম্যান্স ও নেটওয়ার্ক ব্যান্ডউইথ সংরক্ষণ করতে, ওয়েব টেলিমেট্রি ইঞ্জিন মেমরি সেগমেন্টে লগ ব্যাচ করে। তবে, স্বল্পস্থায়ী এক্সিকিউশন এনভায়রনমেন্টের জন্য, এক্সিকিউশন কনটেক্সট নষ্ট হওয়ার ঠিক আগে লগ আপলোড করতে হবে।
আপনি ব্যাকএন্ডে সারিবদ্ধ সব ত্রুটি অবিলম্বে পাঠাতে অ্যাসিঙ্ক্রোনাস flush কমান্ড ব্যবহার করতে পারেন:
import { recordError, flush, getCrashlytics } from '@firebase/crashlytics';
import { app } from './lib/firebase';
const crashlytics = getCrashlytics(app);
async function handleApplicationCrash(error: Error) {
// Capture the error with immediate priority
recordError(crashlytics, error, { priority: 'IMMEDIATE' });
// Force an immediate upload before the process terminates or reloads
await flush(crashlytics);
// Safe to terminate or refresh the current execution context
window.location.reload();
}
স্যাম্পলিং রেট কনফিগার করুন
টেলিমেট্রি ভলিউম ও খরচ নিয়ন্ত্রণ করার জন্য আপনি যদি ব্যবহারকারী সেশনের একটি অংশ স্যাম্পেল করেন, তাহলে নিম্নলিখিত যেকোনও বিকল্প ব্যবহার করে স্যাম্পেলিং কনফিগার করতে পারবেন:
- বিকল্প ১ (সাজেস্ট করা হয়েছে): Firebase কনসোলে স্যাম্পলিং রেট কনফিগার করুন
- বিকল্প ২: Firebase Telemetry Admin API ব্যবহার করে স্যাম্পলিং রেট সেট করুন
বিকল্প ১ (সাজেস্ট করা হয়েছে): Firebase কনসোলে স্যাম্পলিং রেট কনফিগার করুন
Firebase কনসোলে, DevOps ও এনগেজমেন্ট > Crashlytics ড্যাশবোর্ড বিকল্পে যান।
পৃষ্ঠার সবচেয়ে উপরে ড্রপ-ডাউন সিলেক্টর থেকে আপনার ওয়েব অ্যাপ বেছে নিন।
ড্যাশবোর্ডের উপরে ডানদিকের কোণে স্যাম্পলিং কনফিগার করুন বিকল্পে ক্লিক করুন।
ক্লায়েন্টদের থেকে সংগৃহীত ইভেন্ট ও সেশনের শতাংশ নিয়ন্ত্রণ করতে স্যাম্পলিং রেট শতাংশ (
0%ও100%-এর মধ্যে) সেট করুন।
বিকল্প ২: Firebase Telemetry Admin API ব্যবহার করে স্যাম্পলিং রেট সেট করুন
আপনি Firebase Telemetry Admin API
(firebasetelemetryadmin.googleapis.com/v1alpha) ব্যবহার করে আপনার Firebase অ্যাপের জন্য টেলিমেট্রি সংগ্রহ
সেটিংস ম্যানেজ করতে পারেন।
আপনার টার্মিনালে নিম্নলিখিত প্রয়োজনীয় ভেরিয়েবেল কনফিগার করুন:
PROJECT_ID="PROJECT_ID" LOCATION="LOCATION" # for example, global APP_ID="FIREBASE_APP_ID" # for example, 1:1234567890:web:abcdef123456 TOKEN=$(gcloud auth application-default print-access-token)আপনার CONFIG_NAME খুঁজে নিন এবং তারপর আপনার টার্মিনালে এটি একটি ভেরিয়েবল হিসেবে কনফিগার করুন:
টেলিমেট্রি সেটিংস
Configরিসোর্স ব্যবহার করে ম্যানেজ করা হয়, তাই আপনার ওয়েব অ্যাপের জন্য নির্দিষ্ট CONFIG_NAME আপনাকে খুঁজে নিতে হবে।আপনার প্রোজেক্টে কনফিগারেশনের তালিকা দেখায় এবং আপনার FIREBASE_APP_ID অনুযায়ী ফিল্টার করে।
curl -Gএবং--data-urlencodeফ্ল্যাগ নিশ্চিত করে যে AIP-160 ফিল্টার স্ট্রিং সঠিকভাবে URL-এনকোড করা হয়েছে:curl -G \ -H "Authorization: Bearer $TOKEN" \ --data-urlencode "filter=app_id=\"${APP_ID}\"" \ "https://firebasetelemetryadmin.googleapis.com/v1alpha/projects/${PROJECT_ID}/locations/${LOCATION}/configs"JSON উত্তরে, আপনার অ্যাপের জন্য
nameফিল্ডটি খুঁজুন (projects/PROJECT_ID/locations/LOCATION/configs/<CONFIG_ID>), এবং তারপর এটিকে আপনারCONFIG_NAMEভেরিয়েবল হিসেবে সেট করুন:CONFIG_NAME="CONFIG_NAME"
স্যাম্পলিং রেট সেট করুন:
স্যাম্পলিং রেট অ্যাডজাস্ট করতে,
PATCHপদ্ধতি ব্যবহার করেsampling_rateফিল্ড আপডেট করুন। আপনাকে কোয়েরি প্যারামিটারেupdateMask=sampling_rateউল্লেখ করতে হবে। স্যাম্পলিং রেট হল একটি ডবল ভ্যালু যা সেশন সংগ্রহের শতাংশকে প্রতিনিধিত্ব করে (যেমন, ২৫%-এর জন্য0.25):# Example: Set sampling rate to 25% curl -X PATCH \ -H "Authorization: Bearer $TOKEN" \ -H "Content-Type: application/json" \ -d "{ \"sampling_rate\": 0.25, \"app_id\": \"${APP_ID}\" }" \ "https://firebasetelemetryadmin.googleapis.com/v1alpha/${CONFIG_NAME}?updateMask=sampling_rate"
টেলিম্যাট্রি সংগ্রহ বন্ধ বা চালু করা
ডিফল্ট হিসেবে, আপনার ওয়েব অ্যাপের জন্য Crashlytics সেট-আপ করার সময় টেলিমেট্রি কালেকশন চালু করা হয়। Crashlytics SDK ইনস্টল করার পরে আপনাকে যদি ডায়নামিকভাবে টেলিমেট্রি কালেকশন বন্ধ বা আবার চালু করতে হয়, তাহলে আপনি Firebase Telemetry Admin API (firebasetelemetryadmin.googleapis.com/v1alpha) ব্যবহার করে কালেকশন এন্ডপয়েন্ট ম্যানেজ করতে পারবেন।
টেলিম্যাট্রি বন্ধ বা চালু করার আগে, আপনাকে নিম্নলিখিত ভেরিয়েবল সেট করতে হবে:
আপনার টার্মিনালে নিম্নলিখিত প্রয়োজনীয় ভেরিয়েবেল কনফিগার করুন:
PROJECT_ID="PROJECT_ID" LOCATION="LOCATION" # for example, global APP_ID="FIREBASE_APP_ID" # for example, 1:1234567890:web:abcdef123456 TOKEN=$(gcloud auth application-default print-access-token)আপনার CONFIG_NAME খুঁজে নিন এবং তারপর আপনার টার্মিনালে এটি একটি ভেরিয়েবল হিসেবে কনফিগার করুন:
টেলিমেট্রি সেটিংস
Configরিসোর্স ব্যবহার করে ম্যানেজ করা হয়, তাই আপনার ওয়েব অ্যাপের জন্য নির্দিষ্ট CONFIG_NAME আপনাকে খুঁজে নিতে হবে।আপনার প্রোজেক্টে কনফিগারেশনের তালিকা দেখায় এবং আপনার FIREBASE_APP_ID অনুযায়ী ফিল্টার করে।
curl -Gএবং--data-urlencodeফ্ল্যাগ নিশ্চিত করে যে AIP-160 ফিল্টার স্ট্রিং সঠিকভাবে URL-এনকোড করা হয়েছে:curl -G \ -H "Authorization: Bearer $TOKEN" \ --data-urlencode "filter=app_id=\"${APP_ID}\"" \ "https://firebasetelemetryadmin.googleapis.com/v1alpha/projects/${PROJECT_ID}/locations/${LOCATION}/configs"JSON উত্তরে, আপনার অ্যাপের জন্য
nameফিল্ডটি খুঁজুন (projects/PROJECT_ID/locations/LOCATION/configs/<CONFIG_ID>), এবং তারপর এটিকে আপনারCONFIG_NAMEভেরিয়েবল হিসেবে সেট করুন:CONFIG_NAME="CONFIG_NAME"
টেলিম্যাট্রি সংগ্রহ বন্ধ করুন
টেলিম্যাট্রি সংগ্রহ বন্ধ করতে :disable কাস্টম পদ্ধতি ব্যবহার করুন:
curl -X POST \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{}' \
"https://firebasetelemetryadmin.googleapis.com/v1alpha/${CONFIG_NAME}:disable"
টেলিমেট্রি সংগ্রহ আবার চালু করুন
টেলিম্যাট্রি সংগ্রহ আবার চালু করতে, :enable পদ্ধতি কল করুন:
curl -X POST \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{}' \
"https://firebasetelemetryadmin.googleapis.com/v1alpha/${CONFIG_NAME}:enable"