পারফর্ম্যান্স অপ্টিমাইজেশন শুরু হয় মূল মেট্রিক শনাক্ত করার মাধ্যমে, যা সাধারণত লেটেন্সি ও থ্রুপুট সম্পর্কিত হয়। এইসব মেট্রিক ক্যাপচার ও ট্র্যাক করার জন্য মনিটরিং যোগ করলে, অ্যাপ্লিকেশনের দুর্বল দিকগুলি সামনে চলে আসে। মেট্রিকের সাহায্যে, পারফর্ম্যান্স মেট্রিক উন্নত করতে অপ্টিমাইজেশন করা যেতে পারে।
এছাড়াও, অনেক মনিটরিং টুল আপনাকে মেট্রিকের জন্য অ্যালার্ট সেট-আপ করতে দেয়, যাতে
নির্দিষ্ট থ্রেশহোল্ডে পৌঁছালে আপনাকে বিজ্ঞপ্তি পাঠানো হয়। যেমন, আপনি হয়ত
ব্যর্থ অনুরোধের শতাংশ স্বাভাবিক লেভেলের চেয়ে X%-এর বেশি বৃদ্ধি পেলে
আপনাকে বিজ্ঞপ্তি পাঠানোর জন্য একটি সতর্কতা সেট-আপ করতে পারেন। মনিটরিং টুল আপনাকে বুঝতে সাহায্য করতে পারে যে
সাধারণ পারফর্ম্যান্স কেমন হয় এবং লেটেন্সি, ত্রুটির
পরিমাণ ও অন্যান্য গুরুত্বপূর্ণ মেট্রিকের অস্বাভাবিক বৃদ্ধি শনাক্ত করতে পারে। এইসব মেট্রিক মনিটর করার ক্ষমতা
বিশেষ করে ব্যবসার জন্য গুরুত্বপূর্ণ সময়সীমা অথবা নতুন কোড
প্রোডাকশনে পুশ করার পরে গুরুত্বপূর্ণ।
লেটেন্সি মেট্রিক শনাক্ত করা
আপনার UI যতটা সম্ভব রেসপন্সিভ রাখার চেষ্টা করুন, মনে রাখবেন যে ব্যবহারকারীরা মোবাইল অ্যাপ থেকে আরও বেশি উন্নত মানের অভিজ্ঞতা আশা করেন। ব্যাকএন্ড পরিষেবার জন্য লেটেন্সিও পরিমাপ এবং ট্র্যাক করা উচিত, বিশেষ করে যেহেতু এটি চেক না করা হলে থ্রুপুট সংক্রান্ত সমস্যা হতে পারে।
ট্র্যাক করার জন্য সাজেস্ট করা মেট্রিকের মধ্যে নিম্নলিখিতগুলি অন্তর্ভুক্ত:
- অনুরোধের সময়সীমা
- সাবসিস্টেম গ্র্যানুলারিটিতে অনুরোধের সময়সীমা (যেমন, API কল)
- চাকরির সময়সীমা
থ্রুপুট মেট্রিক শনাক্ত করা
থ্রুপুট হল নির্দিষ্ট সময়ের মধ্যে পরিবেশিত অনুরোধের মোট সংখ্যার পরিমাপ। সাবসিস্টেমের লেটেন্সি থ্রুপুটকে প্রভাবিত করতে পারে, তাই থ্রুপুট উন্নত করতে আপনাকে লেটেন্সি অপ্টিমাইজ করতে হতে পারে।
ট্র্যাক করার জন্য এখানে কিছু সাজেস্ট করা মেট্রিক দেওয়া হল:
- প্রতি সেকেন্ডে কোয়েরি
- প্রতি সেকেন্ডে ট্রান্সফার করা ডেটার সাইজ
- প্রতি সেকেন্ডে I/O অপারেশনের সংখ্যা
- সিপিইউ বা মেমরি ব্যবহারের মতো রিসোর্স ব্যবহার
- প্রসেসিং ব্যাকলগের সাইজ, যেমন pub/sub বা থ্রেডের সংখ্যা
শুধু গড় নয়
পারফর্ম্যান্স পরিমাপ করার সময় একটি সাধারণ ভুল হল, শুধুমাত্র গড় কেস দেখা। এটি উপযোগী হলেও, লেটেন্সি ডিস্ট্রিবিউশন সম্পর্কে ইনসাইট প্রদান করে না। ট্র্যাক করার জন্য আরও ভালো মেট্রিক হল পারফর্ম্যান্স পার্সেন্টাইল, যেমন কোনও মেট্রিকের জন্য ৫০তম, ৭৫তম, ৯০তম এবং ৯৯তম পার্সেন্টাইল।
সাধারণত, দুটি ধাপে অপ্টিমাইজ করা যায়। প্রথমে, ৯০তম পার্সেন্টাইল লেটেন্সির জন্য অপ্টিমাইজ করুন। তারপরে, ৯৯তম পার্সেন্টাইল বিবেচনা করুন—এটি টেল লেটেন্সি নামেও পরিচিত: অনুরোধের ছোট অংশ যা সম্পূর্ণ হতে অনেক বেশি সময় নেয়।
বিস্তারিত ফলাফলের জন্য সার্ভার-সাইড মনিটরিং
মেট্রিক ট্র্যাক করার জন্য সাধারণত সার্ভার-সাইড প্রোফাইলিং পছন্দ করা হয়। সার্ভার সাইড সাধারণত অনেক সহজে ইন্সট্রুমেন্ট করা যায়, আরও গ্রানুলার ডেটায় অ্যাক্সেস দেয় এবং কানেক্টিভিটি সংক্রান্ত সমস্যার কারণে কম প্রভাবিত হয়।
এন্ড-টু-এন্ড দৃশ্যমানতার জন্য ব্রাউজার মনিটরিং
আপনার Google Ads API ইন্টিগ্রেশন যদি ব্যবহারকারীদের জন্য ওয়েব ফ্রন্টএন্ড প্রদান করে, তাহলে ব্রাউজার প্রোফাইলিং ব্যবহারকারীর অভিজ্ঞতা সম্পর্কে অতিরিক্ত ইনসাইট প্রদান করতে পারে। কোন কোন পৃষ্ঠায় ধীরে ধীরে অনুরোধ করা হয়েছে তা এটি দেখাতে পারে, যা আপনি আরও বিশ্লেষণের জন্য সার্ভার-সাইড মনিটরিংয়ের সাথে কোরিলেট করতে পারেন।
এছাড়াও, Google Analytics Analytics পৃষ্ঠার সময় সংক্রান্ত রিপোর্টে পৃষ্ঠা লোড হওয়ার সময় মনিটর করার জন্য রেডি-মেড সুবিধা প্রদান করে। এটি আপনার সাইটে ব্যবহারকারীর অভিজ্ঞতা বোঝার জন্য বেশ কয়েকটি উপযোগী ভিউ প্রদান করে, বিশেষ করে:
- পৃষ্ঠা লোড হওয়ার সময়
- রিডাইরেক্ট লোড টাইম
- সার্ভার থেকে উত্তর পেতে যে সময় লাগে
ক্লাউডে মনিটর করা
আপনার অ্যাপ্লিকেশনের পারফর্ম্যান্স মেট্রিক ক্যাপচার ও মনিটর করার জন্য আপনি অনেক টুল ব্যবহার করতে পারেন। যেমন, আপনার Google Cloud প্রোজেক্টে পারফর্ম্যান্স মেট্রিক লগ করতে, আপনি Google Cloud Logging ব্যবহার করতে পারেন, তারপরে লগ করা মেট্রিক মনিটর ও সেগমেন্ট করতে, 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 পদ্ধতি
অনুসারে সমস্যার সংখ্যাকে আলাদা আলাদা করে দেখাতে, আপনি STRING লেবেল
কনফিগার করতে পারেন, যার নাম Method এবং যা jsonPayload.method ফিল্ডে
Cloud Logging-এ পাঠানো হয়।
ErrorCount মেট্রিক ও Method লেবেল কনফিগার করা থাকলে, আপনি
Method অনুযায়ী গ্রুপ করা ErrorCount মনিটর করতে
Cloud Monitoring-এ নতুন চার্ট তৈরি করতে পারবেন।
সতর্কতা
Cloud Monitoring এবং অন্যান্য টুলে সতর্কতা নীতি কনফিগার করা সম্ভব যা আপনার মেট্রিক্স দ্বারা কখন এবং কীভাবে সতর্কতা ট্রিগার করা উচিত তা নির্দিষ্ট করে। Cloud Monitoring সতর্কতা সেট-আপ করার নির্দেশাবলীর জন্য, লগ-ভিত্তিক মেট্রিক্সে সতর্ক করার নির্দেশিকা অনুসরণ করুন।