CloudWatch দিয়ে AI Agents মনিটর করা

প্রতিটি এজেন্ট কল ডেটাবেসে লগ করা মানে মনিটরিং নয়। এটি কেবল স্টোরেজ।

আপনার সামারাইজার (summarizer) ধীরগতির কি না তা দেখার জন্য যদি আপনাকে রাত ২টায় SQL কুয়েরি চালাতে হয়, তবে আপনি অবজারভেবিলিটি (observability)-তে ব্যর্থ হয়েছেন। আপনার ড্যাশবোর্ড এবং অ্যালার্ম প্রয়োজন, ডেটাবেস রো (rows) নয়।

আমি লেটেন্সি (latency) বা জটিল কোড না বাড়িয়ে AI এজেন্ট মনিটর করার দুটি উপায় খুঁজে পেয়েছি।

১. Failure Modes-এর জন্য Metric Filters ব্যবহার করুন

বাজেট ক্যাপ বা সার্ভিস থ্রটলিং (service throttling)-এর মতো ফেইলর মোডগুলো (failure modes) অদৃশ্য থাকা উচিত নয়। একটি API কল করার জন্য নতুন কোড লিখবেন না। পরিবর্তে, আপনার বিদ্যমান লগগুলো ব্যবহার করুন।

যখন বাজেট ক্যাপ অতিক্রম হয়, তখন আপনার কোড একটি এরর (error) লগ করে। আপনি সেই লগগুলো স্ক্যান করার জন্য একটি CloudWatch Metric Filter সেট আপ করতে পারেন। যদি প্যাটার্নটি মিলে যায়, তবে CloudWatch একটি মেট্রিক (metric) বৃদ্ধি করবে।

এই পদ্ধতিটি সাশ্রয়ী। এর জন্য অতিরিক্ত IAM পারমিশনের প্রয়োজন হয় না এবং এটি আপনার এজেন্টে কোনো লেটেন্সি যোগ করে না।

এটি ব্যবহার করুন:

  • মাসিক খরচ সীমা (cost cap) অতিক্রম করলে
  • Bedrock throttling এরর হলে
  • সাধারণ এজেন্ট ফেইলর হলে

২. Performance Data-এর জন্য EMF ব্যবহার করুন

আপনি যদি লেটেন্সি, টোকেন ব্যবহার বা প্রতি এজেন্টের খরচ ট্র্যাক করতে চান, তবে Metric Filters যথেষ্ট নয়। আপনার ডাইমেনশন (dimensions) প্রয়োজন।

PutMetricData ব্যবহার করবেন না। এটি একটি সিনক্রোনাস নেটওয়ার্ক কল (synchronous network call)। এটি আপনার রিকোয়েস্টে ৩০ms থেকে ৮০ms সময় বাড়িয়ে দেয়। এছাড়া CloudWatch নিজেই যদি লোডে থাকে, তবে এটি ব্যর্থ হতে পারে।

পরিবর্তে, Embedded Metric Format (EMF) ব্যবহার করুন।

আপনি stdout-এ একটি মাত্র JSON লাইন লিখবেন। CloudWatch স্বয়ংক্রিয়ভাবে এগুলোকে ডাইমেনশনসহ মেট্রিক হিসেবে এক্সট্র্যাক্ট করে নেয়।

একটি JSON লাইনের মাধ্যমে আপনি পাবেন:

  • মোট ইনভোকেশন (invocations)
  • এরর রেট (error rates)
  • লেটেন্সি (P95)
  • ইনপুট এবং আউটপুট টোকেন
  • মডেল এবং প্রতি এজেন্টের খরচ

দক্ষ অবজারভেবিলিটির (Observability) নিয়মাবলী

  • একটি লাইন নির্গত (emit) করুন এবং CloudWatch-কে কাজ করতে দিন।
  • টেলিমিতি (telemetry) যেন আপনার এজেন্টকে অচল না করে দেয়। আপনার মেট্রিক কলগুলোকে try-except ব্লকের মধ্যে রাখুন।
  • একক ইভেন্টের বদলে বার্স্ট (bursts)-এর ওপর অ্যালার্ম সেট করুন। একটি থ্রটলিং স্বাভাবিক। পাঁচ মিনিটে দশটি থ্রটলিং একটি ইনসিডেন্ট (incident)।
  • নির্দিষ্ট এজেন্টের জন্য ডাইমেনশন ব্যবহার করুন, তবে সিস্টেম-ব্যাপী লেটেন্সির জন্য অ্যাগ্রিগেট (aggregates) ব্যবহার করুন।
  • এররগুলো কোড দিয়ে মেলান, টেক্সট স্ট্রিং দিয়ে নয়।

আপনি শুধুমাত্র লগ এবং EMF ব্যবহার করে $0 খরচেই একটি প্রফেশনাল মনিটরিং স্ট্যাক তৈরি করতে পারেন।

Source: https://dev.to/aws-builders/monitorear-agentes-de-ia-con-cloudwatch-45c4

Optional learning community: https://t.me/GyaanSetuAi