ডাটাবেস কর্মক্ষমতা নিরীক্ষণ

আপনার Firebase Realtime Database -এর পারফরম্যান্স নিরীক্ষণ করার এবং আপনার অ্যাপের সম্ভাব্য সমস্যাগুলো চিহ্নিত করার কয়েকটি ভিন্ন উপায় রয়েছে। আপনার অ্যাপের ইনকামিং ও আউটগোয়িং ব্যান্ডউইথ এবং লোড পর্যবেক্ষণ করলে আপনার বিল কেমন আসবে, সে সম্পর্কেও একটি ধারণা পাওয়া যায়। এছাড়াও, যদি কিছু অস্বাভাবিক মনে হয়, তবে আপনার ডেটাবেসের কার্যক্রম সম্পর্কে একটি স্পষ্ট ধারণা পাওয়া সমস্যা সমাধানে একটি সহায়ক উপায় হতে পারে।

এই পৃষ্ঠায় Realtime Database পারফরম্যান্স মনিটরিং নিয়ে আলোচনা করা হয়েছে। ব্যবহার মনিটরিংয়ের জন্য, ‘ডাটাবেস ব্যবহার মনিটর করুন’ দেখুন।

Realtime Database মনিটরিং টুল ব্যবহার করুন

আপনার প্রয়োজনীয় সূক্ষ্মতার মাত্রার ওপর নির্ভর করে, আপনি কয়েকটি ভিন্ন টুলের মাধ্যমে আপনার Realtime Database পারফরম্যান্স সম্পর্কে ডেটা সংগ্রহ করতে পারেন।

Realtime Database প্রোফাইলার টুলটি ব্যবহার করুন

Realtime Database প্রোফাইলার টুলটি আপনার ডেটাবেসের রিড/রাইট অপারেশনগুলোর একটি রিয়েলটাইম সার্বিক চিত্র প্রদান করে। এই রিপোর্টে প্রতিটি অপারেশনের গতি এবং পেলোড সাইজ সম্পর্কিত তথ্যের পাশাপাশি আনইনডেক্সড কোয়েরিগুলোর তথ্যও অন্তর্ভুক্ত থাকে। তবে, এতে ঐতিহাসিক তথ্য বা কানেকশন ওভারহেড সংক্রান্ত কোনো পরিসংখ্যান অন্তর্ভুক্ত থাকে না এবং এটি বিলিং খরচ অনুমান করার জন্য ব্যবহার করা উচিত নয়

প্রোফাইলার টুল ব্যবহারের বিষয়ে আরও জানতে, আপনার ডাটাবেস প্রোফাইল করুন দেখুন।

Firebase কনসোল ব্যবহার করুন

Firebase কনসোলের ইউসেজ ট্যাবটি আপনার ডাটাবেসে একযোগে চলমান সংযোগ, আপনি কী পরিমাণ ডেটা সংরক্ষণ করছেন, বহির্গামী ব্যান্ডউইথ (প্রোটোকল এবং এনক্রিপশন ওভারহেড সহ), এবং ১-মিনিটের ব্যবধানে আপনার ডাটাবেসের লোড সম্পর্কে তথ্য প্রদান করে। যদিও ইউসেজ ট্যাবটি আপনার ডাটাবেসের সামগ্রিক পারফরম্যান্সের একটি আরও সঠিক চিত্র দেয়, তবুও সম্ভাব্য পারফরম্যান্স সমস্যাগুলি সমাধান করার জন্য আপনি হয়তো যথেষ্ট গভীরে যেতে পারবেন না।

Cloud Monitoring ব্যবহার করুন

Google Cloud Cloud Monitoring এর মাধ্যমে, আপনি মেট্রিক্স এক্সপ্লোরার ব্যবহার করে স্বতন্ত্র পারফরম্যান্স মেট্রিক্স দেখতে পারেন, অথবা সময়ের সাথে সাথে পারফরম্যান্স মেট্রিক্সের বিভিন্ন সংমিশ্রণ প্রদর্শনকারী চার্টসহ বিভিন্ন ড্যাশবোর্ড তৈরি করতে পারেন। Cloud Monitoring এর সাথে Realtime Database ইন্টিগ্রেশন সর্বোচ্চ স্তরের সূক্ষ্মতা প্রদান করে।

Cloud Monitoring সেট আপ করার ধাপগুলো ‘ডেটাবেস ব্যবহার মনিটর করুন’ অংশে বর্ণনা করা হয়েছে।

পারফরম্যান্স সমস্যা শনাক্ত করতে নির্দিষ্ট Cloud Monitoring মেট্রিক্স ব্যবহারের পরামর্শের জন্য নিম্নলিখিত বিভাগগুলি দেখুন।

Cloud Monitoring এ পারফরম্যান্স নিরীক্ষণ করুন

আপনি যদি আপটাইম বা ল্যাটেন্সি সহ পারফরম্যান্স সংক্রান্ত কোনো সমস্যার সম্মুখীন হন, তাহলে আপনি Cloud Monitoring ব্যবহার করে নিম্নলিখিত মেট্রিকগুলো নিরীক্ষণ করতে পারেন। উল্লেখ্য যে, সমস্ত মেট্রিক টাইপের নামের শুরুতে firebasedatabase.googleapis.com/ যুক্ত থাকে।

মেট্রিক নাম বর্ণনা
ডাটাবেস লোড

io/database_load । সময়ের সাথে সাথে অনুরোধ প্রক্রিয়াকরণে আপনার উপলব্ধ ডাটাবেস ব্যান্ডউইথের কতটুকু ব্যবহৃত হচ্ছে তা নিরীক্ষণ করতে এই মেট্রিকটি ব্যবহার করুন। আপনার ডাটাবেস লোড যখন মোট উপলব্ধ ব্যান্ডউইথের কাছাকাছি পৌঁছায়, তখন আপনি পারফরম্যান্স সংক্রান্ত সমস্যা দেখতে পারেন। এছাড়াও, কোন ধরনের অপারেশন সবচেয়ে বেশি লোড ব্যবহার করছে তা আপনি দেখতে পারেন এবং সেই অনুযায়ী সমস্যা সমাধান করতে পারেন। যে অপারেশনগুলো এক মিনিটের বেশি সময় নেয়, সেগুলোর ক্ষেত্রে রিপোর্ট করা লোড ১০০% ছাড়িয়ে যেতে পারে। এমনটা ঘটে যখন একাধিক মিনিট ধরে ব্যবহৃত মোট ব্যান্ডউইথ, অপারেশনটি সম্পন্ন হওয়ার পর এক মিনিটের রিপোর্টিং সময়সীমার মধ্যে সংকুচিত হয়ে আসে।

অতিরিক্ত ব্যবহারের জন্য নেটওয়ার্ক নিষ্ক্রিয়।

network/disabled_for_overages . এই মেট্রিকটি এমন যেকোনো বিভ্রাটকে প্রতিফলিত করে যা আপনার Realtime Database কোনো ব্যান্ডউইথ বা নেটওয়ার্ক সীমা অতিক্রম করার কারণে ঘটতে পারতো।

অতিরিক্ত ব্যবহারের জন্য স্টোরেজ নিষ্ক্রিয় করা হয়েছে

storage/disabled_for_overages . এই মেট্রিকটি এমন যেকোনো বিভ্রাটকে প্রতিফলিত করে যা আপনার Realtime Database কোনো স্টোরেজ সীমা অতিক্রম করার কারণে ঘটতে পারতো।

সহায়ক অন্তর্দৃষ্টি ও সার্বিক ধারণা পেতে আপনার ড্যাশবোর্ডের চার্টে মেট্রিকগুলো একত্রিত করুন। উদাহরণস্বরূপ, নিম্নলিখিত সংমিশ্রণগুলো চেষ্টা করে দেখুন:

  • অপারেশন: আপনার মোট ডাটাবেস লোডের কতটুকু প্রতিটি অপারেশন টাইপ দ্বারা ব্যবহৃত হচ্ছে তা দেখতে io/database_load মেট্রিকটি ব্যবহার করুন। বিভিন্ন অপারেশন টাইপের সমস্যা সমাধানের জন্য io/database_load টাইপ অনুযায়ী গ্রুপ করতে ভুলবেন না।
  • স্টোরেজ: Realtime Database স্টোরেজ সীমার সাপেক্ষে আপনার স্টোরেজ ব্যবহার নিরীক্ষণ করতে storage/limit এবং storage/total_bytes ব্যবহার করুন। স্টোরেজ সীমা অতিক্রম করার ফলে আপনার অ্যাপে কোনো ডাউনটাইম হয়েছিল কিনা তা দেখতে আপনি storage/disabled_for_overages ও যোগ করতে পারেন।
  • SSL ওভারহেড: আপনার ডাটাবেস কতগুলো SSL সংযোগের অনুরোধ পেয়েছে তা নিরীক্ষণ করতে network/https_requests_count ব্যবহার করুন, এবং reused_ssl_session ফিল্টার দিয়ে বিদ্যমান SSL সেশন টিকিট পুনরায় ব্যবহার করা অনুরোধগুলো আলাদা করুন। আপনার অ্যাপ SSL সেশন টিকিট দক্ষতার সাথে ব্যবহার করছে কিনা তা নিরীক্ষণ করতে আপনি এটিকে network/sent_bytes_count এবং network/sent_payload_and_protocol_bytes_count সাথে তুলনা করতে পারেন।

আপনি Cloud Monitoring মাধ্যমে অ্যালার্ট সেট আপ করতে পারেন এবং Realtime Database মেট্রিক্সের উপর ভিত্তি করে নোটিফিকেশন পেতে পারেন। উদাহরণস্বরূপ, আপনার io/database_load একটি নির্দিষ্ট থ্রেশহোল্ডের কাছাকাছি পৌঁছালে আপনি একটি নোটিফিকেশন পাওয়ার জন্য বেছে নিতে পারেন।

Cloud Monitoring এর মাধ্যমে উপলব্ধ Realtime Database মেট্রিকগুলোর সম্পূর্ণ তালিকা দেখুন।

ডাটাবেস লোডের প্রকারভেদ

io/database_load মেট্রিকটি কোন ধরনের অপারেশনের কারণে লোড হয়েছে, তার একটি লেবেলও প্রদান করে। পরিমাপ করা যেতে পারে এমন সম্ভাব্য অপারেশনের প্রকারগুলো হলো:

  • admin : প্রশাসনিক কার্যক্রম, যেমন নিয়মকানুন নির্ধারণ করা এবং প্রজেক্টের মেটাডেটা পড়া।
  • auth : একটিমাত্র ক্লায়েন্টের জন্য সার্ভিস অ্যাকাউন্ট বা ফায়ারবেস অথেনটিকেশন থেকে প্রমাণীকরণ যাচাই করা।
  • client_management : একই সাথে একাধিক সংযোগ যুক্ত করা এবং অপসারণ করা পরিচালনা করা; এর মধ্যে সংযোগ অপসারণের সময় ডিসকানেক্ট অপারেশন চালানোও অন্তর্ভুক্ত।
  • get_shallow : shallow=true সহ একটি REST GET অনুরোধ থেকে ডেটা পুনরুদ্ধার করা।
  • get : REST GET অপারেশন পরিচালনা করা।
  • listen : সংযুক্ত ক্লায়েন্টদের থেকে on এবং once অপারেশনের জন্য প্রাথমিক ডেটা পুনরুদ্ধার করা হচ্ছে।
  • on_disconnect : ক্লায়েন্টদের সংযোগ বিচ্ছিন্ন করার কার্যক্রম নিবন্ধন করা।
  • put : ক্লায়েন্ট থেকে set অপারেশন বা REST PUT অপারেশন পরিচালনা করা।
  • transaction : শর্তসাপেক্ষ REST অনুরোধ বা ক্লায়েন্টের পক্ষ থেকে কোনো transaction অপারেশন সম্পাদন করা।
  • update : update অপারেশন বা REST PATCH অনুরোধ পরিচালনা করা।

Cloud Monitoring এ নিরাপত্তা নিয়মাবলী নিরীক্ষণ করুন

আপনি নিরাপত্তা বিধিগুলির মূল্যায়নও বিশ্লেষণ করতে পারেন। লক্ষ্য করুন, সমস্ত মেট্রিক টাইপের নামের শুরুতে firebasedatabase.googleapis.com/ যুক্ত থাকে।

মেট্রিক নাম বর্ণনা
নিয়ম মূল্যায়ন rules/evaluation_count . রাইট বা রিড রিকোয়েস্টের প্রতিক্রিয়ায় সম্পাদিত রিয়েলটাইম ডেটাবেস রুলস ইভ্যালুয়েশনের সংখ্যা। আপনি রিকোয়েস্টের ফলাফল (ALLOW, DENY, বা ERROR) অনুযায়ী এই মেট্রিকটিকে ভাগ করতে পারেন।

প্রয়োজন অনুযায়ী রুলস ইভ্যালুয়েশনের জন্য আপনার Cloud Monitoring চার্টটি সাজিয়ে নিন, উদাহরণস্বরূপ, নির্দিষ্ট ইভ্যালুয়েশন ফলাফল, যেমন ALLOW, DENY, বা ERROR-এর উপর ফিল্টার করে। চার্ট সেট আপ এবং কাস্টমাইজ করার বিষয়টি ‘Monitor Database Usage’ অংশে আলোচনা করা হয়েছে।

Cloud Monitoring এর মাধ্যমে উপলব্ধ Realtime Database মেট্রিকগুলোর সম্পূর্ণ তালিকা দেখুন।