এই পৃষ্ঠায় Performance Monitoring শুরু করার জন্য অথবা Performance Monitoring বৈশিষ্ট্য এবং সরঞ্জাম ব্যবহার করার জন্য সমস্যা সমাধানের টিপস দেওয়া হয়েছে।
সমস্যা সমাধানের জন্য প্রথম পরীক্ষা
পরবর্তী সমস্যা সমাধানের আগে নিম্নলিখিত দুটি পরীক্ষা হল সাধারণ সর্বোত্তম অনুশীলন যা যে কারো জন্য সুপারিশ করা হয়।
১. পারফর্ম্যান্স ইভেন্টের জন্য লগ বার্তা পরীক্ষা করুন
Performance Monitoring SDK পারফরম্যান্স ইভেন্টগুলি ক্যাপচার করছে কিনা তা নিশ্চিত করতে আপনার লগ বার্তাগুলি পরীক্ষা করুন।
আপনার অ্যাপের
AndroidManifest.xmlফাইলে একটি<meta-data>উপাদান যোগ করে বিল্ড টাইমে Performance Monitoring জন্য ডিবাগ লগিং সক্ষম করুন, যেমন:<application> <meta-data android:name="firebase_performance_logcat_enabled" android:value="true" /> </application>কোনও ত্রুটির বার্তার জন্য আপনার লগ বার্তাগুলি পরীক্ষা করুন।
Performance Monitoring তার লগ বার্তাগুলিকে
FirebasePerformanceদিয়ে ট্যাগ করে। logcat ফিল্টারিং ব্যবহার করে, আপনি নিম্নলিখিত কমান্ডটি চালিয়ে নির্দিষ্টভাবে সময়কাল ট্রেস এবং HTTP/S নেটওয়ার্ক অনুরোধ লগিং দেখতে পারেন:adb logcat -s FirebasePerformance
নিম্নলিখিত ধরণের লগগুলি পরীক্ষা করুন যা নির্দেশ করে যে Performance Monitoring পারফরম্যান্স ইভেন্টগুলি লগ করছে:
-
Logging trace metric: TRACE_NAME , FIREBASE_PERFORMANCE_CONSOLE_URL -
Logging network request trace: URL
-
Firebase কনসোলে আপনার ডেটা দেখতে URL-এ ক্লিক করুন। ড্যাশবোর্ডে ডেটা আপডেট হতে কয়েক মুহূর্ত সময় লাগতে পারে।
যদি আপনার অ্যাপ পারফর্ম্যান্স ইভেন্ট লগ না করে, তাহলে সমস্যা সমাধানের টিপস পর্যালোচনা করুন।
2. Firebase স্ট্যাটাস ড্যাশবোর্ড পরীক্ষা করুন
Firebase বা Performance Monitoring জন্য কোনও পরিচিত বিভ্রাট থাকলে Firebase স্ট্যাটাস ড্যাশবোর্ডটি পরীক্ষা করুন।
Performance Monitoring শুরু করা
যদি আপনি Performance Monitoring ( iOS+ | Android | Web ) শুরু করেন, তাহলে Firebase-এর SDK সনাক্তকরণ বা Firebase কনসোলে আপনার প্রথম পারফরম্যান্স ডেটা প্রদর্শনের সাথে সম্পর্কিত সমস্যাগুলির ক্ষেত্রে নিম্নলিখিত সমস্যা সমাধানের টিপসগুলি সাহায্য করতে পারে।
আপনার অ্যাপ থেকে ইভেন্ট তথ্য (যেমন অ্যাপ ইন্টারঅ্যাকশন) পেলে, Firebase আপনার অ্যাপে Performance Monitoring SDK সফলভাবে যোগ করেছে কিনা তা সনাক্ত করতে পারে। সাধারণত আপনার অ্যাপ শুরু করার ১০ মিনিটের মধ্যে, Firebase কনসোলের পারফর্মেন্স ড্যাশবোর্ডে "SDK সনাক্ত করা হয়েছে" বার্তা প্রদর্শিত হয়। তারপর, ৩০ মিনিটের মধ্যে, ড্যাশবোর্ড প্রাথমিক প্রক্রিয়াজাত ডেটা প্রদর্শন করে।
যদি আপনার অ্যাপে SDK-এর সর্বশেষ সংস্করণ যোগ করার পর ১০ মিনিটেরও বেশি সময় হয়ে যায়, এবং আপনি এখনও কোনও পরিবর্তন দেখতে না পান, তাহলে আপনার লগ বার্তাগুলি পরীক্ষা করে নিশ্চিত করুন যে Performance Monitoring ইভেন্টগুলি লগ করছে। বিলম্বিত SDK সনাক্তকরণ বার্তার সমস্যা সমাধানের জন্য নীচে বর্ণিত যথাযথ সমস্যা সমাধানের পদক্ষেপগুলি চেষ্টা করুন।
নিশ্চিত করুন যে আপনি Performance Monitoring অ্যান্ড্রয়েড SDK 19.1.0 বা তার পরবর্তী (অথবা Firebase BoM 26.3.0 বা তার পরবর্তী) ব্যবহার করছেন, রিলিজ নোট দেখুন।
যদি আপনি এখনও স্থানীয়ভাবে ডেভেলপ করেন, তাহলে ডেটা সংগ্রহের জন্য আরও ইভেন্ট তৈরি করার চেষ্টা করুন:
- আপনার অ্যাপটিকে ব্যাকগ্রাউন্ড এবং ফোরগ্রাউন্ডের মধ্যে বেশ কয়েকবার স্যুইচ করে, স্ক্রিন জুড়ে নেভিগেট করে আপনার অ্যাপের সাথে ইন্টারঅ্যাক্ট করে এবং/অথবা নেটওয়ার্ক অনুরোধগুলি ট্রিগার করে ইভেন্ট তৈরি করুন।
নিশ্চিত করুন যে আপনার Firebase কনফিগারেশন ফাইল (
google-services.json) আপনার অ্যাপে সঠিকভাবে যোগ করা হয়েছে এবং আপনি ফাইলটি পরিবর্তন করেননি। বিশেষ করে, নিম্নলিখিতগুলি পরীক্ষা করুন:কনফিগ ফাইলের নামটিতে অতিরিক্ত অক্ষর যুক্ত করা হয়নি, যেমন
(2)।কনফিগ ফাইলটি আপনার অ্যাপের মডিউল (অ্যাপ-লেভেল) ডিরেক্টরিতে রয়েছে।
কনফিগ ফাইলে তালিকাভুক্ত Firebase Android App ID (
mobilesdk_app_id) আপনার অ্যাপের জন্য সঠিক। আপনার Project settings এর Your apps কার্ডে আপনার Firebase App ID খুঁজুন।
যদি আপনার অ্যাপের কনফিগ ফাইলে কিছু ভুল মনে হয়, তাহলে নিম্নলিখিতগুলি চেষ্টা করে দেখুন:
আপনার অ্যাপে বর্তমানে যে কনফিগারেশন ফাইলটি আছে তা মুছে ফেলুন।
একটি নতুন কনফিগারেশন ফাইল ডাউনলোড করতে এবং আপনার অ্যান্ড্রয়েড অ্যাপে যোগ করতে এই নির্দেশাবলী অনুসরণ করুন।
যদি SDK ইভেন্ট লগিং করে এবং সবকিছু সঠিকভাবে সেট আপ করা হয়েছে বলে মনে হয়, কিন্তু আপনি এখনও SDK সনাক্তকরণ বার্তা বা প্রক্রিয়াজাত ডেটা দেখতে না পান (10 মিনিট পরে), তাহলে Firebase Support এর সাথে যোগাযোগ করুন ।
Performance Monitoring গ্রেডল প্লাগইনের সেটআপটি নিম্নরূপ পরীক্ষা করুন:
নিশ্চিত করুন যে আপনি প্লাগইনটি সঠিকভাবে যোগ করেছেন । বিশেষ করে, নিম্নলিখিতগুলি পরীক্ষা করুন:
- আপনি আপনার মডিউল (অ্যাপ-লেভেল)
build.gradleফাইলে প্লাগইনটি () যোগ করেছেন।apply plugin: 'com.google.firebase.firebase-perf' - আপনি আপনার প্রজেক্ট-লেভেল
build.gradleফাইলে প্লাগইনের জন্য ক্লাসপাথ নির্ভরতা () অন্তর্ভুক্ত করেছেন।classpath 'com.google.firebase:perf-plugin:2.0.2'
- আপনি আপনার মডিউল (অ্যাপ-লেভেল)
নিশ্চিত করুন যে প্লাগইনটি নিম্নলিখিত ফ্ল্যাগগুলির মাধ্যমে নিষ্ক্রিয় করা নেই :
- আপনার মডিউল (অ্যাপ-লেভেল)
build.gradleফাইলেinstrumentationEnabled - আপনার
gradle.propertiesফাইলেfirebasePerformanceInstrumentationEnabled
- আপনার মডিউল (অ্যাপ-লেভেল)
আপনার
AndroidManifest.xmlফাইলে নিম্নলিখিত ফ্ল্যাগগুলির মাধ্যমে Performance Monitoring SDK অক্ষম করা আছে কিনা তা পরীক্ষা করুন:-
firebase_performance_collection_enabled -
firebase_performance_collection_deactivated
-
রানটাইমে Performance Monitoring অক্ষম না আছে তা নিশ্চিত করুন।
যদি আপনার অ্যাপে অক্ষম করা কিছু খুঁজে না পান, তাহলে Firebase Support-এর সাথে যোগাযোগ করুন ।
Performance Monitoring পারফরম্যান্স ইভেন্ট ডেটা প্রক্রিয়া করে পারফরম্যান্স ড্যাশবোর্ডে প্রদর্শন করে।
যদি "SDK সনাক্ত করা হয়েছে" বার্তাটি আসার পর ২৪ ঘন্টারও বেশি সময় হয়ে যায়, এবং আপনি এখনও ডেটা দেখতে না পান, তাহলে Firebase Status Dashboard চেক করুন যদি কোনও পরিচিত বিভ্রাট থাকে। যদি কোনও বিভ্রাট না থাকে, তাহলে Firebase Support এর সাথে যোগাযোগ করুন ।
সাধারণ সমস্যা সমাধান
আপনি যদি সফলভাবে SDK যোগ করে থাকেন এবং আপনার অ্যাপে Performance Monitoring ব্যবহার করে থাকেন, তাহলে নিম্নলিখিত সমস্যা সমাধানের টিপসগুলি Performance Monitoring বৈশিষ্ট্য এবং টুলিং সম্পর্কিত সাধারণ সমস্যাগুলির সমাধানে সাহায্য করতে পারে।
যদি আপনি পারফর্ম্যান্স ইভেন্টের জন্য লগ বার্তা দেখতে না পান, তাহলে নিম্নলিখিত সমস্যা সমাধানের পদক্ষেপগুলি চেষ্টা করে দেখুন:
Performance Monitoring গ্রেডল প্লাগইনের সেটআপটি নিম্নরূপ পরীক্ষা করুন:
নিশ্চিত করুন যে আপনি প্লাগইনটি সঠিকভাবে যোগ করেছেন । বিশেষ করে, নিম্নলিখিতগুলি পরীক্ষা করুন:
- আপনি আপনার মডিউল (অ্যাপ-লেভেল)
build.gradleফাইলে প্লাগইনটি () যোগ করেছেন।apply plugin: 'com.google.firebase.firebase-perf' - আপনি আপনার প্রজেক্ট-লেভেল
build.gradleফাইলে প্লাগইনের জন্য ক্লাসপাথ নির্ভরতা () অন্তর্ভুক্ত করেছেন।classpath 'com.google.firebase:perf-plugin:2.0.2'
- আপনি আপনার মডিউল (অ্যাপ-লেভেল)
নিশ্চিত করুন যে প্লাগইনটি নিম্নলিখিত ফ্ল্যাগগুলির মাধ্যমে নিষ্ক্রিয় করা নেই :
- আপনার মডিউল (অ্যাপ-লেভেল)
build.gradleফাইলেinstrumentationEnabled - আপনার
gradle.propertiesফাইলেfirebasePerformanceInstrumentationEnabled
- আপনার মডিউল (অ্যাপ-লেভেল)
আপনার
AndroidManifest.xmlফাইলে নিম্নলিখিত ফ্ল্যাগগুলির মাধ্যমে Performance Monitoring SDK অক্ষম করা আছে কিনা তা পরীক্ষা করুন:-
firebase_performance_collection_enabled -
firebase_performance_collection_deactivated
-
রানটাইমে Performance Monitoring অক্ষম না আছে তা নিশ্চিত করুন।
যদি আপনার অ্যাপে অক্ষম করা কিছু খুঁজে না পান, তাহলে Firebase Support-এর সাথে যোগাযোগ করুন ।
যদি আপনার স্ক্রিন রেন্ডারিং ট্রেসের ডেটা অনুপস্থিত থাকে, তাহলে নিম্নলিখিত সমস্যা সমাধানের ধাপগুলি চেষ্টা করে দেখুন:
নিশ্চিত করুন যে আপনি Android SDK এর সর্বশেষ সংস্করণ (v22.0.4) ব্যবহার করছেন। স্ক্রিন রেন্ডারিং ট্রেস শুধুমাত্র v15.2.0 বা তার পরবর্তী সংস্করণের সাথে উপলব্ধ।
নিশ্চিত করুন যে আপনি কোনও স্ক্রিনের জন্য হার্ডওয়্যার অ্যাক্সিলারেশন ম্যানুয়ালি অক্ষম করেননি।
নিশ্চিত করুন যে আপনি DexGuard বা Jack ব্যবহার করছেন না। Performance Monitoring এই টুলচেইনগুলির সাথে বেমানান।
DexGuard অ্যাপ স্টার্ট, অ্যাপ-ইন-ফোরগ্রাউন্ড এবং অ্যাপ-ইন-ব্যাকগ্রাউন্ড ট্রেসগুলির স্বয়ংক্রিয় সংগ্রহ অক্ষম করে। তবে, যদি আপনার অ্যাপ DexGuard ব্যবহার করে তবে যেকোনো কাস্টম কোড ট্রেস স্বাভাবিকভাবে আচরণ করা উচিত।
জ্যাক অপ্রচলিত এবং সাধারণত আপনার অ্যাপে ব্যবহার করা উচিত নয়।
আপনি কি স্বয়ংক্রিয়ভাবে সংগৃহীত ট্রেসের জন্য পারফর্ম্যান্স ডেটা দেখছেন কিন্তু কাস্টম কোড ট্রেসের জন্য দেখছেন না ? নিম্নলিখিত সমস্যা সমাধানের পদক্ষেপগুলি চেষ্টা করে দেখুন:
যদি আপনি Trace API এর মাধ্যমে কাস্টম কোড ট্রেস ইন্সট্রুমেন্ট করে থাকেন, তাহলে ট্রেসগুলির সেটআপ পরীক্ষা করুন, বিশেষ করে নিম্নলিখিতগুলি:
- কাস্টম কোড ট্রেস এবং কাস্টম মেট্রিক্সের নামগুলিকে নিম্নলিখিত প্রয়োজনীয়তাগুলি পূরণ করতে হবে: কোনও লিডিং বা ট্রেলিং হোয়াইটস্পেস নেই, কোনও লিডিং আন্ডারস্কোর (
_) অক্ষর নেই এবং সর্বাধিক দৈর্ঘ্য 32 অক্ষর। - সকল ট্রেস শুরু এবং বন্ধ করতে হবে। যে কোন ট্রেস যা শুরু হয়নি, থামানো হয়নি, অথবা শুরু হওয়ার আগে বন্ধ করা হয়েছে তা লগ করা হবে না।
- কাস্টম কোড ট্রেস এবং কাস্টম মেট্রিক্সের নামগুলিকে নিম্নলিখিত প্রয়োজনীয়তাগুলি পূরণ করতে হবে: কোনও লিডিং বা ট্রেলিং হোয়াইটস্পেস নেই, কোনও লিডিং আন্ডারস্কোর (
যদি আপনি
@AddTraceনোটেশনের মাধ্যমে কাস্টম কোড ট্রেস ইন্সট্রুমেন্ট করে থাকেন, তাহলে Performance Monitoring Gradle প্লাগইনের সেটআপ পরীক্ষা করুন:নিশ্চিত করুন যে আপনি প্লাগইনটি সঠিকভাবে যোগ করেছেন । বিশেষ করে, নিম্নলিখিতগুলি পরীক্ষা করুন:
- আপনি আপনার মডিউল (অ্যাপ-লেভেল)
build.gradleফাইলে প্লাগইনটি () যোগ করেছেন।apply plugin: 'com.google.firebase.firebase-perf' - আপনি আপনার প্রজেক্ট-লেভেল
build.gradleফাইলে প্লাগইনের জন্য ক্লাসপাথ নির্ভরতা () অন্তর্ভুক্ত করেছেন।classpath 'com.google.firebase:perf-plugin:2.0.2'
- আপনি আপনার মডিউল (অ্যাপ-লেভেল)
নিশ্চিত করুন যে প্লাগইনটি নিম্নলিখিত ফ্ল্যাগগুলির মাধ্যমে নিষ্ক্রিয় করা নেই :
- আপনার মডিউল (অ্যাপ-লেভেল)
build.gradleফাইলেinstrumentationEnabled - আপনার
gradle.propertiesফাইলেfirebasePerformanceInstrumentationEnabled
- আপনার মডিউল (অ্যাপ-লেভেল)
Performance Monitoring প্রত্যাশিত কাস্টম কোড ট্রেস লগ করছে কিনা তা নিশ্চিত করতে আপনার লগ বার্তাগুলি পরীক্ষা করুন ।
যদি Performance Monitoring ইভেন্টগুলি লগ করে, কিন্তু 24 ঘন্টা পরে কোনও ডেটা প্রদর্শিত না হয়, তাহলে Firebase Support এর সাথে যোগাযোগ করুন ।
যদি আপনার নেটওয়ার্ক অনুরোধের ডেটা অনুপস্থিত থাকে, তাহলে নিম্নলিখিত সমস্যা সমাধানের ধাপগুলি চেষ্টা করে দেখুন:
অ্যান্ড্রয়েড অ্যাপের জন্য, Performance Monitoring গ্রেডল প্লাগইন এমন যন্ত্রানুষঙ্গ সক্ষম করে যা HTTP/S নেটওয়ার্ক অনুরোধগুলির স্বয়ংক্রিয় পর্যবেক্ষণ প্রদান করে। নিম্নলিখিতগুলি পরীক্ষা করুন:
নিশ্চিত করুন যে আপনি প্লাগইনটি সঠিকভাবে যোগ করেছেন । বিশেষ করে, নিম্নলিখিতগুলি পরীক্ষা করুন:
- আপনি আপনার মডিউল (অ্যাপ-লেভেল)
build.gradleফাইলে প্লাগইনটি () যোগ করেছেন।apply plugin: 'com.google.firebase.firebase-perf' - আপনি আপনার প্রজেক্ট-লেভেল
build.gradleফাইলে প্লাগইনের জন্য ক্লাসপাথ নির্ভরতা () অন্তর্ভুক্ত করেছেন।classpath 'com.google.firebase:perf-plugin:2.0.2'
- আপনি আপনার মডিউল (অ্যাপ-লেভেল)
নিশ্চিত করুন যে প্লাগইনটি নিম্নলিখিত ফ্ল্যাগগুলির মাধ্যমে নিষ্ক্রিয় করা নেই :
- আপনার মডিউল (অ্যাপ-লেভেল)
build.gradleফাইলেinstrumentationEnabled - আপনার
gradle.propertiesফাইলেfirebasePerformanceInstrumentationEnabled
- আপনার মডিউল (অ্যাপ-লেভেল)
নেটওয়ার্ক লাইব্রেরির অসঙ্গতি পরীক্ষা করুন। Performance Monitoring স্বয়ংক্রিয়ভাবে নিম্নলিখিত নেটওয়ার্কিং লাইব্রেরি ব্যবহার করে এমন নেটওয়ার্ক অনুরোধের মেট্রিক্স সংগ্রহ করে: OkHttp 3.xx, জাভার URLConnection, এবং Apache HttpClient।
মনে রাখবেন যে আপনি নেটওয়ার্ক অনুরোধের জন্য কাস্টম পর্যবেক্ষণ যোগ করতে পারেন।
নিম্নলিখিত বিষয়গুলি সম্পর্কে সচেতন থাকুন:
আপনার কোড এবং আপনার কোড দ্বারা ব্যবহৃত নেটওয়ার্কিং লাইব্রেরির আচরণের উপর নির্ভর করে, Performance Monitoring কেবলমাত্র সম্পন্ন হওয়া নেটওয়ার্ক অনুরোধগুলির প্রতিবেদন করতে পারে। এর অর্থ হল যে HTTP/S সংযোগগুলি খোলা রাখা হয়েছে সেগুলি প্রতিবেদন নাও হতে পারে।
Performance Monitoring ডেক্সগার্ড এবং জ্যাকের সাথে সামঞ্জস্যপূর্ণ নয়।
- ডেক্সগার্ড HTTP/S নেটওয়ার্ক অনুরোধের পর্যবেক্ষণ অক্ষম করে।
- জ্যাক অপ্রচলিত এবং সাধারণত আপনার অ্যাপে ব্যবহার করা উচিত নয়।
Performance Monitoring অবৈধ
Content-Typeহেডার সহ নেটওয়ার্ক অনুরোধগুলির প্রতিবেদন করে না। তবে,Content-Typeহেডার ছাড়া নেটওয়ার্ক অনুরোধগুলি এখনও গ্রহণ করা হবে।
Performance Monitoring কীভাবে URL প্যাটার্নের অধীনে নেটওয়ার্ক অনুরোধের ডেটা একত্রিত করে সে সম্পর্কে আরও জানুন।
আপনি কাস্টম URL প্যাটার্নও চেষ্টা করে দেখতে পারেন!
প্রায়শই জিজ্ঞাসিত প্রশ্নাবলী
আমাদের সাম্প্রতিক সতর্কতা প্রবর্তনের ফলো-আপ হিসেবে আমরা শীর্ষ সমস্যাগুলিকে সাম্প্রতিক সতর্কতা দিয়ে প্রতিস্থাপন করেছি, যা আপনার সেট করা থ্রেশহোল্ড অতিক্রম করলে স্বয়ংক্রিয়ভাবে আপনাকে অবহিত করে। সমস্যাগুলি এখন অবহেলিত এবং সতর্কতা দ্বারা প্রতিস্থাপিত হয়েছে।
পারফরম্যান্স কার্ডের উপরে থাকা অ্যাপস নির্বাচক সাম্প্রতিক সতর্কতাগুলির অধীনে সতর্কতা এন্ট্রিগুলি ফিল্টার করে। নির্বাচিত অ্যাপ(গুলি) এর জন্য কেবলমাত্র তিনটি সাম্প্রতিক সতর্কতা প্রদর্শিত হয়।
সতর্কতা সম্পর্কে আরও জানতে, কর্মক্ষমতা সমস্যার জন্য সতর্কতা সেট আপ করুন দেখুন।
Performance Monitoring নির্ধারিত থ্রেশহোল্ড অতিক্রমকারী মেট্রিক্সের জন্য সতর্কতা সমর্থন করে। পারফরম্যান্স মেট্রিক্সের জন্য এই কনফিগারযোগ্য থ্রেশহোল্ডগুলির সাথে বিভ্রান্তি এড়াতে, আমরা সমস্যার জন্য থ্রেশহোল্ড কনফিগার করার ক্ষমতা সরিয়ে দিয়েছি।
সমস্যা সমাধানের পদ্ধতি উন্নত করার জন্য আমরা Details and Metrics পৃষ্ঠাগুলিকে একটি নতুনভাবে ডিজাইন করা, কেন্দ্রীভূত ব্যবহারকারী ইন্টারফেস (UI) দিয়ে প্রতিস্থাপন করেছি। এই নতুন সমস্যা সমাধান UI Details and Metrics-এর মতো একই মূল কার্যকারিতা প্রদান করে। সমস্যা সমাধান সম্পর্কে আরও জানতে, একটি নির্দিষ্ট ট্রেসের জন্য আরও ডেটা দেখুন দেখুন।
Performance Monitoring আপনার অ্যাপের ব্যবহারকারী ডিভাইস থেকে পারফরম্যান্স ডেটা সংগ্রহ করে। যদি আপনার অ্যাপ্লিকেশনের অনেক ব্যবহারকারী থাকে অথবা অ্যাপটি যদি প্রচুর পরিমাণে পারফরম্যান্স অ্যাক্টিভিটি তৈরি করে, তাহলে Performance Monitoring প্রক্রিয়াজাত ইভেন্টের সংখ্যা কমাতে ডিভাইসের একটি উপসেটের মধ্যে ডেটা সংগ্রহ সীমাবদ্ধ করতে পারে। এই সীমাগুলি যথেষ্ট বেশি যাতে, কম ইভেন্ট থাকা সত্ত্বেও, মেট্রিক মানগুলি এখনও আপনার ব্যবহারকারীর অ্যাপ অভিজ্ঞতার প্রতিনিধিত্ব করে।
আমরা যে পরিমাণ তথ্য সংগ্রহ করি তা পরিচালনা করতে, Performance Monitoring নিম্নলিখিত নমুনা বিকল্পগুলি ব্যবহার করে:
অন-ডিভাইস রেট লিমিটিং : কোনও ডিভাইস যাতে হঠাৎ করে ট্রেস বার্স্ট না পাঠায়, তার জন্য আমরা প্রতি ১০ মিনিটে একটি ডিভাইস থেকে পাঠানো কোড এবং নেটওয়ার্ক রিকোয়েস্ট ট্রেসের সংখ্যা ৩০০টি ইভেন্টে সীমাবদ্ধ রাখি। এই পদ্ধতিটি ডিভাইসটিকে লুপযুক্ত ইন্সট্রুমেন্টেশন থেকে রক্ষা করে যা প্রচুর পরিমাণে পারফরম্যান্স ডেটা পাঠাতে পারে এবং এটি একটি একক ডিভাইসকে পারফরম্যান্স পরিমাপকে বিকৃত করতে বাধা দেয়।
ডায়নামিক স্যাম্পলিং : Performance Monitoring সমস্ত অ্যাপ ব্যবহারকারীদের কাছ থেকে প্রতিদিন প্রতি অ্যাপের জন্য সীমিত সংখ্যক কোড ট্রেস এবং নেটওয়ার্ক অনুরোধ ট্রেস সংগ্রহ করে। একটি র্যান্ডম ডিভাইস ট্রেস ক্যাপচার করে পাঠাবে কিনা তা নির্ধারণ করার জন্য ডিভাইসগুলিতে ( Firebase Remote Config ব্যবহার করে) একটি ডায়নামিক স্যাম্পলিং রেট আনা হয়। স্যাম্পলিং এর জন্য নির্বাচিত না হওয়া ডিভাইস কোনও ইভেন্ট পাঠায় না। ডায়নামিক স্যাম্পলিং রেট অ্যাপ-নির্দিষ্ট এবং সংগৃহীত ডেটার সামগ্রিক পরিমাণ সীমার নিচে থাকে তা নিশ্চিত করার জন্য সামঞ্জস্য করা হয়।
যেসব প্রকল্প BigQuery ইন্টিগ্রেশন সক্ষম করেছে, তারা নেটওয়ার্ক অনুরোধের ট্রেসের সংখ্যার জন্য একটি উচ্চতর সীমা পায়।
ব্যবহারকারীর সেশনগুলি ব্যবহারকারীর ডিভাইস থেকে অতিরিক্ত, বিস্তারিত ডেটা পাঠায়, যার ফলে ডেটা ক্যাপচার এবং প্রেরণের জন্য আরও সংস্থান প্রয়োজন হয়। ব্যবহারকারীর সেশনের প্রভাব কমাতে, Performance Monitoring সেশনের সংখ্যাও সীমিত করতে পারে।
সার্ভার-সাইড রেট লিমিটিং : অ্যাপগুলি যাতে স্যাম্পলিং লিমিট অতিক্রম না করে তা নিশ্চিত করার জন্য, Performance Monitoring ডিভাইস থেকে প্রাপ্ত কিছু ইভেন্ট ড্রপ করার জন্য সার্ভার-সাইড স্যাম্পলিং ব্যবহার করতে পারে। যদিও এই ধরণের লিমিটিং আমাদের মেট্রিক্সের কার্যকারিতা পরিবর্তন করে না, তবে এটি প্যাটার্নের ছোটখাটো পরিবর্তন ঘটাতে পারে, যার মধ্যে নিম্নলিখিতগুলি অন্তর্ভুক্ত রয়েছে:
- কোনও কোড কতবার কার্যকর করা হয়েছে তার সংখ্যার চেয়ে ট্রেসের সংখ্যা আলাদা হতে পারে।
- কোডে ঘনিষ্ঠভাবে সংযুক্ত ট্রেসগুলির প্রতিটিতে নমুনার সংখ্যা ভিন্ন হতে পারে।
আমরা সমস্যা ট্যাবটির পরিবর্তে সতর্কতা চালু করেছি, যা আপনার সেট করা থ্রেশহোল্ড অতিক্রম করলে স্বয়ংক্রিয়ভাবে আপনাকে অবহিত করে। থ্রেশহোল্ডের অবস্থা নির্ধারণের জন্য আপনাকে আর Firebase কনসোলটি ম্যানুয়ালি পরীক্ষা করতে হবে না। সতর্কতা সম্পর্কে জানতে, কর্মক্ষমতা সমস্যার জন্য সতর্কতা সেট আপ করুন দেখুন।
আমরা Firebase কনসোলের Performance Monitoring বিভাগটি পুনরায় ডিজাইন করেছি যাতে ড্যাশবোর্ড ট্যাব আপনার মূল মেট্রিক্স এবং আপনার সমস্ত ট্রেস একই স্থানে প্রদর্শন করে। পুনরায় ডিজাইনের অংশ হিসাবে, আমরা অন ডিভাইস এবং নেটওয়ার্ক পৃষ্ঠাগুলি সরিয়ে দিয়েছি।
ড্যাশবোর্ড ট্যাবের নীচের ট্রেস টেবিলটিতে অন ডিভাইস এবং নেটওয়ার্ক ট্যাবগুলির মতো একই তথ্য রয়েছে, তবে কিছু অতিরিক্ত বৈশিষ্ট্য সহ, একটি নির্দিষ্ট মেট্রিকের জন্য শতাংশ পরিবর্তন অনুসারে আপনার ট্রেসগুলি সাজানোর ক্ষমতা সহ। একটি নির্দিষ্ট ট্রেসের জন্য সমস্ত মেট্রিক্স এবং ডেটা দেখতে, ট্রেস টেবিলের ট্রেস নামে ক্লিক করুন।
ট্রেস টেবিলের নিম্নলিখিত সাবট্যাবগুলিতে আপনার ট্রেসগুলি দেখুন:
- নেটওয়ার্ক অনুরোধের ট্রেস (আউট-অফ-দ্য-বক্স এবং কাস্টম উভয়) — নেটওয়ার্ক অনুরোধের সাবট্যাব
- কাস্টম কোড ট্রেস — কাস্টম ট্রেস সাবট্যাব
- অ্যাপ শুরু, অ্যাপ-ইন-ফোরগ্রাউন্ড, অ্যাপ-ইন-ব্যাকগ্রাউন্ড ট্রেস — কাস্টম ট্রেস সাবট্যাব
- স্ক্রিন রেন্ডারিং ট্রেস — স্ক্রিন রেন্ডারিং সাবট্যাব
- পৃষ্ঠা লোড ট্রেস — পৃষ্ঠা লোড সাবট্যাব
ট্রেস টেবিল এবং মেট্রিক্স এবং ডেটা দেখার বিশদ বিবরণের জন্য, কনসোল ওভারভিউ পৃষ্ঠাটি দেখুন ( iOS+ | Android | ওয়েব )।
ধীর রেন্ডারিং ফ্রেম এবং হিমায়িত ফ্রেম গণনা করা হয় 60Hz ডিভাইস রিফ্রেশ রেট ধরে। যদি কোনও ডিভাইস রিফ্রেশ রেট 60Hz এর কম হয়, তাহলে প্রতিটি ফ্রেমের রেন্ডারিং সময় ধীর হবে কারণ প্রতি সেকেন্ডে কম ফ্রেম রেন্ডার করা হয়। ধীর রেন্ডারিং সময় আরও ধীর বা হিমায়িত ফ্রেম রিপোর্ট করতে পারে কারণ আরও ফ্রেম ধীর রেন্ডার করা হবে বা হিমায়িত হবে। তবে, যদি কোনও ডিভাইস রিফ্রেশ রেট 60Hz এর বেশি হয়, তাহলে প্রতিটি ফ্রেমের রেন্ডারিং সময় দ্রুত হবে। এর ফলে কম ধীর বা হিমায়িত ফ্রেম রিপোর্ট করা হতে পারে। এটি Performance Monitoring SDK-তে একটি বর্তমান সীমাবদ্ধতা।
অ্যাপ অ্যাক্টিভিটির পাশাপাশি টুকরোগুলির পারফর্ম্যান্স দেখতে, নিশ্চিত করুন যে আপনার অ্যাপটি Performance Monitoring অ্যান্ড্রয়েড SDK সংস্করণ 20.1.0 বা তার উপরে ব্যবহার করছে। আরও জানতে, আপনার অ্যাপে পারফর্ম্যান্স মনিটরিং যোগ করুন দেখুন।
প্রতিটি খণ্ড এবং কার্যকলাপের ট্রেস আপনার অ্যাপ্লিকেশনে সংজ্ঞায়িত ক্লাসের নামের উপর ভিত্তি করে তৈরি করা হয়েছে। প্রতিটি স্ক্রিন ট্রেসে st প্রিফিক্স থাকে এবং তারপরে ক্লাসের নাম থাকে। Firebase কনসোলে, প্রিফিক্সটি সরানো হয়। আরও জানতে, স্ক্রিন রেন্ডারিং পারফরম্যান্স ডেটা সম্পর্কে জানুন (অ্যাপল এবং অ্যান্ড্রয়েড অ্যাপস) দেখুন।
Performance Monitoring একটি ডিভাইসে সংগৃহীত সমস্ত ইভেন্টের ইভেন্ট স্যাম্পলিং পরিচালনা করে। এই পদ্ধতির মাধ্যমে আমরা ব্যবহারকারীর ডিভাইস থেকে পারফরম্যান্স মেট্রিক্স প্রদানের জন্য প্রয়োজনীয় ন্যূনতম ইভেন্ট সংগ্রহ করতে পারি।
Performance Monitoring আপনাকে আপনার পছন্দের মেট্রিক্সের জন্য সতর্কতা সেট আপ করতে দেয়। জেনারেট করা স্ক্রিন রেন্ডারিং ট্রেসের জন্য, ধীর এবং হিমায়িত ফ্রেমের শতাংশ আপনার সেট করা থ্রেশহোল্ড অতিক্রম করলে আপনাকে অবহিত করার জন্য সতর্কতা সেট আপ করতে পারেন।
অ্যান্ড্রয়েডের জন্য Performance Monitoring বাইটকোড ইন্সট্রুমেন্টেশন ব্যবহার করে HTTP/S নেটওয়ার্ক অনুরোধ পর্যবেক্ষণের মতো কিছু অত্যাধুনিক বৈশিষ্ট্য প্রদান করে। সংকলনের অংশ হিসেবে, এই প্রক্রিয়াটির জন্য আপনার অ্যাপের সমস্ত ক্লাসের (নির্ভরতা সহ) পুনরাবৃত্তি প্রয়োজন যাতে কোডটি ইন্সট্রুমেন্ট করা যায় যা আপনার অ্যাপ্লিকেশনের নেটওয়ার্ক অনুরোধের কর্মক্ষমতা পরিমাপের জন্য অত্যন্ত গুরুত্বপূর্ণ।
নির্মাণের সময় বৃদ্ধির কিছু মূল কারণ এখানে দেওয়া হল:
- ক্লাস বা ফাইলের সংখ্যা
- ঐ প্রতিটি ক্লাসের আকার (কোডের লাইন)
- আপনার মেশিনের কনফিগারেশন
- প্রাথমিক বিল্ড বনাম পরবর্তী বিল্ড (পরবর্তী বিল্ডগুলি সাধারণত প্রাথমিক বিল্ডের চেয়ে দ্রুত হয়)
আপনার বিল্ড টাইম অপ্টিমাইজ করার জন্য, আপনার কোড মডুলারাইজ করার কথা বিবেচনা করুন।
Performance Monitoring প্লাগইনের ভার্সন ১.৩.৩ থেকে শুরু করে, আমরা লাইব্রেরি ইনপুটগুলির ক্রমবর্ধমান বিল্ড প্রক্রিয়াকরণ এবং ক্যাশিংয়ে উল্লেখযোগ্য উন্নতি করার উপর মনোনিবেশ করেছি। সাম্প্রতিক বিল্ড টাইম উন্নতিগুলি পেতে, প্লাগইনের সর্বশেষ সংস্করণ (v2.0.2) ব্যবহার করতে ভুলবেন না ।
মনে রাখবেন, দীর্ঘ বিল্ড টাইম এড়াতে চাইলে, আপনি স্থানীয়ভাবে আপনার ডিবাগ বিল্ডের জন্য Performance Monitoring প্লাগইনটি অক্ষম করতে পারেন। তবে, প্রোডাকশন বিল্ডের জন্য এই পদ্ধতিটি সুপারিশ করা হয় না, কারণ এর ফলে আপনার অ্যাপে নেটওয়ার্ক অনুরোধের জন্য পারফরম্যান্স পরিমাপ মিস হতে পারে।
অ্যান্ড্রয়েডের জন্য Performance Monitoring বাইটকোড ইন্সট্রুমেন্টেশন ব্যবহার করে HTTP/S নেটওয়ার্ক অনুরোধ পর্যবেক্ষণের মতো কিছু অত্যাধুনিক বৈশিষ্ট্য প্রদান করে। সংকলনের অংশ হিসেবে, এই প্রক্রিয়াটির জন্য আপনার অ্যাপের সমস্ত ক্লাসের (নির্ভরতা সহ) পুনরাবৃত্তি প্রয়োজন যাতে কোডটি ইন্সট্রুমেন্ট করা যায় যা আপনার অ্যাপ্লিকেশনের নেটওয়ার্ক অনুরোধের কর্মক্ষমতা পরিমাপের জন্য অত্যন্ত গুরুত্বপূর্ণ।
যদি আপনি JSR/RET are not supported with computeFrames option অথবা Performance Monitoring প্লাগইনের সাথে ইন্টিগ্রেট করার পরে অনুরূপ ত্রুটি পান, তাহলে এর কারণ হতে পারে যে আপনার এমন একটি লাইব্রেরির উপর নির্ভরতা রয়েছে যা Performance Monitoring Gradle প্লাগইনের সাথে সামঞ্জস্যপূর্ণ নয়।
এই সমস্যা থেকে মুক্তি পেতে, আপনি এই পদক্ষেপগুলি অনুসরণ করে অসঙ্গত ক্লাস/লাইব্রেরিগুলিকে ইন্সট্রুমেন্ট করা থেকে বাদ দিতে পারেন:
- Performance Monitoring গ্রেডল প্লাগইনের সর্বশেষ সংস্করণে আপডেট করুন (সর্বনিম্ন v1.4.0 )।
- আপনার Android Gradle প্লাগইন সংস্করণটি v7.2.0 বা তার পরবর্তী সংস্করণে আপডেট করুন।
- আপনার মডিউল (অ্যাপ-লেভেল)
build.gradleফাইলে নিম্নলিখিত পতাকাটি যুক্ত করুন যাতে অসঙ্গত ক্লাস/লাইব্রেরিগুলিকে ইন্সট্রুমেন্ট করা না হয়: অ্যান্ড্রয়েড গ্রেডল প্লাগইনেরandroid { // ... androidComponents { onVariants(selector().all(), { instrumentation.excludes.add("example.incompatible.library") }) } }
InstrumentationAPI-এরexcludeপ্রপার্টি সম্পর্কে আরও জানতে, ইন্সট্রুমেন্টেশন দেখুন।
অসঙ্গত লাইব্রেরির কারণে বিল্ড ত্রুটির সম্মুখীন হলে অনুগ্রহ করে একটি Github সমস্যা দায়ের করুন যাতে সেগুলি Performance Monitoring প্লাগইনে অন্তর্ভুক্ত নাও হতে পারে।
যদি আপনি Firebase Performance Monitoring এর জন্য BigQuery ইন্টিগ্রেশন সক্ষম করে থাকেন, তাহলে আপনার ডেটা দিন শেষ হওয়ার 12 থেকে 24 ঘন্টা পরে (প্যাসিফিক সময়) BigQuery তে রপ্তানি করা হবে।
উদাহরণস্বরূপ, ১৯ এপ্রিলের ডেটা ২০ এপ্রিল দুপুর ১২:০০ টা থেকে মধ্যরাতের মধ্যে BigQuery-তে পাওয়া যাবে (সমস্ত তারিখ এবং সময় প্যাসিফিক সময় অনুসারে)।
রিয়েল-টাইম ডেটা প্রক্রিয়াকরণ এবং প্রদর্শনের কাছাকাছি
Firebase Performance Monitoring সংগৃহীত পারফরম্যান্স ডেটা আসার সাথে সাথে প্রক্রিয়া করে, যার ফলে Firebase কনসোলে রিয়েল-টাইম ডেটা প্রায় প্রদর্শিত হয়। প্রক্রিয়াকৃত ডেটা সংগ্রহের কয়েক মিনিটের মধ্যেই কনসোলে প্রদর্শিত হয়, তাই "রিয়েল-টাইমের কাছাকাছি" শব্দটি ব্যবহার করা হয়।
প্রায় রিয়েল-টাইম ডেটা প্রক্রিয়াকরণের সুবিধা নিতে, নিশ্চিত করুন যে আপনার অ্যাপটি একটি রিয়েল-টাইম সামঞ্জস্যপূর্ণ SDK সংস্করণ ব্যবহার করছে।
রিয়েল-টাইম ডেটা প্রসেসিংয়ের সুবিধা নিতে, আপনাকে কেবল নিশ্চিত করতে হবে যে আপনার অ্যাপটি একটি Performance Monitoring SDK সংস্করণ ব্যবহার করে যা রিয়েল-টাইম ডেটা প্রসেসিংয়ের সাথে সামঞ্জস্যপূর্ণ।
এগুলি হল রিয়েল-টাইম সামঞ্জস্যপূর্ণ SDK সংস্করণ:
- iOS — সংস্করণ ৭.৩.০ বা তার পরবর্তী
- tvOS — ভার্সন ৮.৯.০ বা তার পরবর্তী
- অ্যান্ড্রয়েড — v19.0.10 বা তার পরবর্তী সংস্করণ (অথবা Firebase Android BoM v26.1.0 বা তার পরবর্তী সংস্করণ)
- ওয়েব — সংস্করণ ৭.১৪.০ বা তার পরবর্তী
মনে রাখবেন যে আমরা সর্বদা SDK এর সর্বশেষ সংস্করণ ব্যবহার করার পরামর্শ দিই, তবে উপরে তালিকাভুক্ত যেকোনো সংস্করণ Performance Monitoring আপনার ডেটা প্রায় রিয়েল টাইমে প্রক্রিয়া করতে সক্ষম করবে।
রিয়েল-টাইম ডেটা প্রক্রিয়াকরণের সাথে সামঞ্জস্যপূর্ণ SDK সংস্করণগুলি এখানে দেওয়া হল:
- iOS — সংস্করণ ৭.৩.০ বা তার পরবর্তী
- tvOS — ভার্সন ৮.৯.০ বা তার পরবর্তী
- অ্যান্ড্রয়েড — v19.0.10 বা তার পরবর্তী সংস্করণ (অথবা Firebase Android BoM v26.1.0 বা তার পরবর্তী সংস্করণ)
- ওয়েব — সংস্করণ ৭.১৪.০ বা তার পরবর্তী
মনে রাখবেন যে আমরা সর্বদা SDK এর সর্বশেষ সংস্করণ ব্যবহার করার পরামর্শ দিই, তবে উপরে তালিকাভুক্ত যেকোনো সংস্করণ Performance Monitoring আপনার ডেটা প্রায় রিয়েল টাইমে প্রক্রিয়া করতে সক্ষম করবে।
যদি আপনার অ্যাপটি রিয়েল-টাইম সামঞ্জস্যপূর্ণ SDK সংস্করণ ব্যবহার না করে, তবুও আপনি Firebase কনসোলে আপনার অ্যাপের সমস্ত কর্মক্ষমতা ডেটা দেখতে পাবেন। তবে, কর্মক্ষমতা ডেটা সংগ্রহের সময় থেকে প্রায় 36 ঘন্টা বিলম্বিত হবে।
হ্যাঁ! কোনও অ্যাপের ইনস্ট্যান্স যে SDK ভার্সনই ব্যবহার করুক না কেন, আপনি আপনার সমস্ত ব্যবহারকারীর পারফর্ম্যান্স ডেটা দেখতে পাবেন।
তবে, যদি আপনি সাম্প্রতিক ডেটা (প্রায় ৩৬ ঘন্টারও কম পুরনো) দেখেন, তাহলে প্রদর্শিত ডেটা রিয়েল-টাইম সামঞ্জস্যপূর্ণ SDK সংস্করণ ব্যবহার করে অ্যাপ ইনস্ট্যান্স ব্যবহারকারীদের কাছ থেকে এসেছে। তবে, সাম্প্রতিক নয় এমন ডেটাতে আপনার অ্যাপের সমস্ত সংস্করণের পারফর্ম্যান্স ডেটা অন্তর্ভুক্ত রয়েছে।
ফায়ারবেস সাপোর্টের সাথে যোগাযোগ করা
যদি আপনি Firebase সাপোর্টের সাথে যোগাযোগ করেন , তাহলে সর্বদা আপনার Firebase অ্যাপ আইডি অন্তর্ভুক্ত করুন। আপনার প্রজেক্ট সেটিংস" এর "Your apps" কার্ডে আপনার Firebase অ্যাপ আইডি খুঁজুন।