𝗠𝗼𝗻𝗶𝘁𝗼𝗿𝗶𝗻𝗴 𝗔𝗜 𝗔𝗴𝗲𝗻𝘁𝘀 𝘄𝗶𝘁𝗵 𝗖𝗹𝗼𝘂𝗱𝗪𝗮𝘁𝗰𝗵

ഓരോ ഏജന്റ് കോളും ഒരു ഡാറ്റാബേസിൽ ലോഗ് ചെയ്യുന്നത് മോണിറ്ററിംഗ് അല്ല. അത് വെറും സ്റ്റോറേജ് മാത്രമാണ്.

നിങ്ങളുടെ സമ്മറൈസർ (summarizer) സാവധാനത്തിലാണോ എന്ന് പരിശോധിക്കാൻ പുലർച്ചെ 2:00 മണിക്ക് SQL ക്വറികൾ റൺ ചെയ്യേണ്ടി വരുന്നുണ്ടെങ്കിൽ, നിങ്ങൾ ഒബ്സർവബിലിറ്റിയിൽ (observability) പരാജയപ്പെട്ടിരിക്കുന്നു എന്നാണ് അർത്ഥം. നിങ്ങൾക്ക് ഡാറ്റാബേസ് റോകൾ അല്ല, മറിച്ച് ഡാഷ്‌ബോർഡുകളും അലാറങ്ങളും ആണ് വേണ്ടത്.

ലേറ്റൻസി (latency) കൂട്ടാതെയോ സങ്കീർണ്ണമായ കോഡുകൾ ഉപയോഗിക്കാതെയോ AI ഏജന്റുകളെ മോണിറ്റർ ചെയ്യാൻ രണ്ട് വഴികൾ ഞാൻ കണ്ടെത്തിയിട്ടുണ്ട്.

𝟭. ഫെയിലർ മോഡുകൾക്കായി (Failure Modes) Metric Filters ഉപയോഗിക്കുക

ബഡ്ജറ്റ് ക്യാപ്പുകൾ (budget caps) അല്ലെങ്കിൽ സർവീസ് ത്രോട്ട്ലിംഗ് (service throttling) പോലുള്ള ഫെയിലർ മോഡുകൾ ശ്രദ്ധിക്കപ്പെടാതെ പോകരുത്. ഒരു API വിളിക്കാൻ പുതിയ കോഡ് എഴുതേണ്ടതില്ല. പകരം, നിലവിലുള്ള ലോഗുകൾ ഉപയോഗിക്കുക.

ഒരു ബഡ്ജറ്റ് ക്യാപ്പ് എത്തുമ്പോൾ, നിങ്ങളുടെ കോഡ് ഒരു എറർ ലോഗ് ചെയ്യുന്നു. ആ ലോഗുകൾ സ്കാൻ ചെയ്യാൻ നിങ്ങൾക്ക് ഒരു CloudWatch Metric Filter സെറ്റ് ചെയ്യാം. പാറ്റേൺ മാച്ച് ആയാൽ, CloudWatch ഒരു മെട്രിക് വർദ്ധിപ്പിക്കും.

ഈ രീതി ചിലവ് കുറഞ്ഞതാണ്. ഇതിന് അധികമായി IAM പെർമിഷനുകൾ ആവശ്യമില്ല, കൂടാതെ ഇത് നിങ്ങളുടെ ഏജന്റിന് ലേറ്റൻസി കൂട്ടുകയുമില്ല.

ഇത് ഉപയോഗിക്കേണ്ടത്:

  • പ്രതിമാസ ചിലവ് പരിധിയിൽ എത്തുമ്പോൾ (Monthly cost cap reached)
  • Bedrock throttling എററുകൾ
  • പൊതുവായ ഏജന്റ് പരാജയങ്ങൾ

𝟮. പെർഫോമൻസ് ഡാറ്റയ്ക്കായി EMF ഉപയോഗിക്കുക

ലേറ്റൻസി, ടോക്കൺ ഉപയോഗം, അല്ലെങ്കിൽ ഏജന്റിന് വേണ്ടിവരുന്ന ചിലവ് എന്നിവ ട്രാക്ക് ചെയ്യണമെന്നുണ്ടെങ്കിൽ Metric Filters മാത്രം മതിയാകില്ല. നിങ്ങൾക്ക് ഡൈമൻഷനുകൾ (dimensions) ആവശ്യമാണ്.

PutMetricData ഉപയോഗിക്കരുത്. ഇതൊരു സിൻക്രണസ് (synchronous) നെറ്റ്‌വർക്ക് കോളാണ്. ഇത് നിങ്ങളുടെ റിക്വസ്റ്റിൽ 30ms മുതൽ 80ms വരെ ലേറ്റൻസി കൂട്ടുന്നു. കൂടാതെ CloudWatch തന്നെ ലോഡിലായിരിക്കുമ്പോൾ ഇത് പരാജയപ്പെടാനും സാധ്യതയുണ്ട്.

പകരം, Embedded Metric Format (EMF) ഉപയോഗിക്കുക.

നിങ്ങൾ stdout-ലേക്ക് ഒരു വരി JSON എഴുതുന്നു. CloudWatch ഇത് ഡൈമൻഷനുകളോടു കൂടിയ മെട്രിക്സുകളായി സ്വയം വേർതിരിച്ചെടുക്കുന്നു.

ഒരു JSON വരിയിലൂടെ നിങ്ങൾക്ക് ഇവ ലഭിക്കും:

  • ആകെ ഇൻവോക്കേഷനുകൾ (Total invocations)
  • എറർ നിരക്കുകൾ (Error rates)
  • ലേറ്റൻസി (P95)
  • ഇൻപുട്ട്, ഔട്ട്പുട്ട് ടോക്കണുകൾ
  • മോഡലിനും ഏജന്റിനും വേണ്ടിവരുന്ന ചിലവ്

𝗧𝗵𝗲 𝗥𝘂𝗹𝗲𝘀 𝗼𝗳 𝗘𝗳𝗳𝗶𝗰𝗶𝗲𝗻𝘁 𝗢𝗯𝘀𝗲𝗿𝘃𝗮𝗯𝗶𝗹𝗶𝘁𝘆

  • ഒരു വരി ഔട്ട്പുട്ട് നൽകുക, ബാക്കി ജോലി CloudWatch ചെയ്യട്ടെ.
  • ടെലിമെട്രി (telemetry) നിങ്ങളുടെ ഏജന്റിനെ തകരാറിലാക്കാൻ അനുവദിക്കരുത്. നിങ്ങളുടെ മെട്രിക് കോളുകൾ try-except ബ്ലോക്കുകളിൽ ഉൾപ്പെടുത്തുക.
  • ഒറ്റപ്പെട്ട സംഭവങ്ങൾക്കല്ല, മറിച്ച് പെട്ടെന്നുണ്ടാകുന്ന വർദ്ധനവുകൾക്ക് (bursts) അലാറം സെറ്റ് ചെയ്യുക. ഒരു തവണ ത്രോട്ട്ലിംഗ് ഉണ്ടാകുന്നത് സാധാരണമാണ്. എന്നാൽ അഞ്ച് മിനിറ്റിനുള്ളിൽ പത്ത് തവണ ത്രോട്ട്ലിംഗ് ഉണ്ടാകുന്നത് ഒരു ഇൻസിഡന്റാണ്.
  • പ്രത്യേക ഏജന്റുകൾക്കായി ഡൈമൻഷനുകൾ ഉപയോഗിക്കുക, എന്നാൽ സിസ്റ്റം മുഴുവനുള്ള ലേറ്റൻസി അറിയാൻ അഗ്രഗേറ്റുകൾ (aggregates) ഉപയോഗിക്കുക.
  • എററുകൾ ടെക്സ്റ്റ് സ്ട്രിംഗുകൾ ഉപയോഗിച്ചല്ല, കോഡ് ഉപയോഗിച്ച് തിരിച്ചറിയുക.

ലോഗുകളും EMF-ഉം മാത്രം ഉപയോഗിച്ച് നിങ്ങൾക്ക് $0 ചിലവിൽ ഒരു പ്രൊഫഷണൽ മോണിറ്ററിംഗ് സ്റ്റാക്ക് നിർമ്മിക്കാം.

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

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