মনিটরিং

পারফর্ম্যান্স অপ্টিমাইজেশন শুরু হয় মূল মেট্রিক শনাক্ত করার মাধ্যমে, যা সাধারণত লেটেন্সি ও থ্রুপুটের সাথে সম্পর্কিত। এইসব মেট্রিক ক্যাপচার ও ট্র্যাক করার জন্য মনিটরিং যোগ করলে অ্যাপ্লিকেশনের দুর্বল পয়েন্টগুলি প্রকাশ পায়। মেট্রিকের মাধ্যমে, পারফর্ম্যান্স মেট্রিক উন্নত করার জন্য অপ্টিমাইজেশন করা যেতে পারে।

এছাড়াও, অনেক মনিটরিং টুল আপনাকে মেট্রিকের জন্য সতর্কতা সেট-আপ করতে দেয়, যাতে কোনও নির্দিষ্ট থ্রেশহোল্ডে পৌঁছালে আপনাকে বিজ্ঞপ্তি পাঠানো হয়। যেমন, আপনি হয়ত এমন একটি সতর্কতা সেট-আপ করতে পারেন যা ব্যর্থ অনুরোধের শতাংশ স্বাভাবিক লেভেলের চেয়ে X%-এর বেশি বৃদ্ধি পেলে আপনাকে বিজ্ঞপ্তি পাঠাবে। মনিটর করার টুল আপনাকে স্বাভাবিক পারফর্ম্যান্স কেমন হয় তা বুঝতে এবং লেটেন্সি, ত্রুটির পরিমাণ ও অন্যান্য মূল মেট্রিকের অস্বাভাবিক বৃদ্ধি শনাক্ত করতে সাহায্য করতে পারে। এইসব মেট্রিক মনিটর করার ক্ষমতা বিশেষ করে ব্যবসার গুরুত্বপূর্ণ টাইমফ্রেমের সময় বা প্রোডাকশনে নতুন কোড পুশ করার পরে গুরুত্বপূর্ণ।

লেটেন্সি মেট্রিক শনাক্ত করা

আপনার UI যতটা সম্ভব রেসপন্সিভ রাখার চেষ্টা করুন, মনে রাখবেন যে ব্যবহারকারীরা মোবাইল অ্যাপ থেকে আরও বেশি প্রত্যাশা করেন। ব্যাকএন্ড পরিষেবার জন্য লেটেন্সিও পরিমাপ এবং ট্র্যাক করা উচিত, বিশেষ করে যেহেতু এটি চেক না করা হলে থ্রুপুট সমস্যা হতে পারে।

ট্র্যাক করার জন্য সাজেস্ট করা মেট্রিকের মধ্যে নিম্নলিখিতগুলি অন্তর্ভুক্ত:

  • অনুরোধের সময়সীমা
  • সাবসিস্টেম গ্র্যানুলারিটিতে (যেমন API কল) অনুরোধের সময়সীমা
  • কাজের সময়সীমা

থ্রুপুট মেট্রিক শনাক্ত করুন

থ্রুপুট হল নির্দিষ্ট সময়ের ব্যবধানে মোট কতগুলি অনুরোধের উত্তর দেওয়া হয়েছে তার পরিমাপ। সাবসিস্টেমের লেটেন্সি থ্রুপুটকে প্রভাবিত করতে পারে, তাই থ্রুপুট উন্নত করতে আপনাকে লেটেন্সি অপ্টিমাইজ করতে হতে পারে।

ট্র্যাক করার জন্য এখানে কিছু সাজেস্ট করা মেট্রিক দেওয়া হল:

  • প্রতি সেকেন্ডে কোয়েরি
  • প্রতি সেকেন্ডে ট্রান্সফার করা ডেটার সাইজ
  • প্রতি সেকেন্ডে I/O অপারেশনের সংখ্যা
  • রিসোর্স ব্যবহার, যেমন সিপিইউ বা মেমরির ব্যবহার
  • প্রসেসিং ব্যাকলগের সাইজ, যেমন পাব/সাব বা থ্রেডের সংখ্যা

শুধু গড় নয়

পারফর্ম্যান্স পরিমাপ করার সময় একটি সাধারণ ভুল হল শুধুমাত্র গড় (অ্যাভারেজ) কেস দেখা। এটি উপযোগী হলেও, লেটেন্সি ডিস্ট্রিবিউশন সম্পর্কে ইনসাইট প্রদান করে না। ট্র্যাক করার জন্য আরও ভালো মেট্রিক হল পারফর্ম্যান্স পার্সেন্টাইল, যেমন কোনও মেট্রিকের জন্য ৫০তম, ৭৫তম, ৯০তম এবং ৯৯তম পার্সেন্টাইল।

সাধারণত, দুটি ধাপে অপ্টিমাইজ করা যায়। প্রথমত, ৯০তম পার্সেন্টাইল লেটেন্সির জন্য অপ্টিমাইজ করুন। তারপর, ৯৯তম পার্সেন্টাইল বিবেচনা করুন—যা টেল লেটেন্সি নামেও পরিচিত: অনুরোধের ছোট অংশ যা সম্পূর্ণ হতে অনেক বেশি সময় নেয়।

বিস্তারিত ফলাফলের জন্য সার্ভার-সাইড মনিটরিং

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

এন্ড-টু-এন্ড দৃশ্যমানতার জন্য ব্রাউজার মনিটর করা

আপনার Google Ads API ইন্টিগ্রেশন যদি ব্যবহারকারীদের জন্য একটি ওয়েব ফ্রন্টএন্ড পরিবেশন করে, তাহলে ব্রাউজার প্রোফাইলিং ব্যবহারকারীর অভিজ্ঞতা সম্পর্কে অতিরিক্ত ইনসাইট প্রদান করতে পারে। এটি দেখাতে পারে কোন পৃষ্ঠাগুলিতে ধীরগতির অনুরোধ রয়েছে, যা আপনি আরও বিশ্লেষণের জন্য সার্ভার-সাইড মনিটরিংয়ের সাথে সম্পর্কযুক্ত করতে পারেন।

এছাড়াও, Google Analytics, Analytics পৃষ্ঠা টাইমিং রিপোর্টে পৃষ্ঠা লোড হওয়ার সময় মনিটর করার জন্য আউট-অফ-দ্য-বক্স সুবিধা প্রদান করে। এটি আপনার সাইটে ব্যবহারকারীর অভিজ্ঞতা বোঝার জন্য বেশ কয়েকটি উপযোগী ভিউ প্রদান করে, বিশেষ করে:

  • পৃষ্ঠা লোড হওয়ার সময়
  • রিডাইরেক্ট লোড টাইম
  • সার্ভার থেকে উত্তর পেতে যে সময় লাগে

ক্লাউডে মনিটর করা

আপনার অ্যাপ্লিকেশনের পারফর্ম্যান্স মেট্রিক ক্যাপচার ও মনিটর করার জন্য আপনি অনেক টুল ব্যবহার করতে পারেন। যেমন, আপনি Google Cloud Logging ব্যবহার করে আপনার Google Cloud Project-এ পারফর্ম্যান্স মেট্রিক লগ করতে পারেন, তারপর Google Cloud Monitoring-এ ড্যাশবোর্ড সেট-আপ করে লগ করা মেট্রিক মনিটর ও ভাগ করতে পারেন।

Python ক্লায়েন্ট লাইব্রেরির জন্য লেখা কাস্টম gRPC লগিং ইন্টারসেপ্টর উদাহরণ দেখতে লগিং গাইড দেখুন। এই উদাহরণে, ইন্টারসেপ্টর logger.log_struct() কল করে, যাতে Cloud Logging-এ স্ট্রাকচার্ড লগ ডেটার Python ডিকশনারি পাঠানো যায়, যা Cloud Logging, লগ এন্ট্রির jsonPayload ফিল্ডে স্টোর করে:

logger.log_struct({
    "method": method_name,
    "elapsed_ms": elapsed_milliseconds,
    "is_fault": is_fault,
})

Google Cloud-এ সেই ডেটা উপলভ্য থাকলে, আপনি লগ করা ডেটার উপরে মেট্রিক তৈরি করতে পারবেন যাতে Google Cloud Monitoring-এর মাধ্যমে আপনার অ্যাপ্লিকেশনের দৃশ্যমানতা পাওয়া যায়। Google Cloud Logging-এ পাঠানো লগ ব্যবহার করে মেট্রিক তৈরি করতে ব্যবহারকারীর দ্বারা নির্ধারিত লগ-ভিত্তিক মেট্রিক সংক্রান্ত নির্দেশিকা অনুসরণ করুন।

বিকল্প হিসেবে, আপনি Cloud Monitoring ক্লায়েন্ট লাইব্রেরি ব্যবহার করে আপনার কোডে মেট্রিক নির্ধারণ করতে এবং লগ থেকে আলাদা করে সরাসরি Monitoring-এ পাঠাতে পারেন।

লগ-ভিত্তিক মেট্রিকের উদাহরণ

ধরুন, আপনার অ্যাপ্লিকেশনে ত্রুটির হার আরও ভালোভাবে বুঝতে আপনি is_fault ভ্যালু মনিটর করতে চান। যেহেতু logger.log_struct() প্রতিটি Cloud Logging এন্ট্রিতে jsonPayload-এর অধীনে স্ট্রাকচার্ড ডিকশনারি ফিল্ড লেখে, তাই আপনি jsonPayload.is_fault = true-এর মতো ব্যর্থ অনুরোধের সাথে মেলে এমন ফিল্টার সহ ErrorCount নামের একটি কাউন্টার মেট্রিক তৈরি করতে পারবেন।

Cloud Logging-এ, লেবেল আপনাকে লগের অন্যান্য ডেটার উপর ভিত্তি করে আপনার মেট্রিকগুলিকে বিভাগে গ্রুপ করতে দেয়। Google Ads API পদ্ধতির মাধ্যমে ত্রুটির সংখ্যা ব্রেক ডাউন করতে আপনি jsonPayload.method ফিল্ডে Method নামে একটি STRING লেবেল কনফিগার করতে পারেন Cloud Logging-এ পাঠানো হয়েছে।

ErrorCount মেট্রিক এবং Method লেবেল কনফিগার করা থাকলে, আপনি Method অনুযায়ী গ্রুপ করা ErrorCount মনিটর করতে Cloud Monitoring-এ নতুন চার্ট তৈরি করতে পারবেন।

সতর্কতা

Cloud Monitoring এবং অন্যান্য টুলে সতর্কতা নীতি কনফিগার করা সম্ভব যা আপনার মেট্রিক্স দ্বারা কখন এবং কীভাবে সতর্কতা ট্রিগার করা উচিত তা নির্দিষ্ট করে। Cloud Monitoring সতর্কতা সেট-আপ করার নির্দেশাবলীর জন্য, লগ-ভিত্তিক মেট্রিক্সে সতর্ক করার নির্দেশিকা অনুসরণ করুন।