AI Root Cause Analysis؛ تحلیل علت خطا با Quarkus و LLM

چرا مهم است

اگر پیدا کردن علت خطا بین چند سرویس برایت وقت‌گیر است، این ابزار را کنار هم می‌گذارد و با تحلیل می‌کند. خروجی آن علت اصلی را از نشانه‌ها جدا می‌کند و پیشنهادهایی برای رفع مشکل می‌دهد.

قبل از خواندن، این‌ها را بدان۵ مفهوم
telemetry

داده‌هایی که از اجرای نرم‌افزار جمع‌آوری می‌شوند تا وضعیت و رفتار آن بررسی شود؛ مانند log،؜ trace و metrics.

بیشتر: telemetry

LLM

مدل زبانی بزرگی که با حجم زیادی از داده آموزش دیده و می‌تواند متن را پردازش و تولید کند.

بیشتر: LLM

Context Window

حداکثر مقدار اطلاعاتی که مدل زبانی می‌تواند در یک نوبت پردازش در نظر بگیرد.

بیشتر: Context Window

MCP

یک Protocol برای اتصال برنامه‌های مبتنی بر مدل هوش مصنوعی به ابزارها و منابع دادهٔ بیرونی.

در حال نگارش: MCP

trace

داده‌ای که مسیر اجرای یک درخواست و زمان صرف‌شده در بخش‌های مختلف آن را، از جمله میان چند سرویس، نشان می‌دهد.

در حال نگارش: trace

AI Root Cause Analysis یک برنامهٔ مستقل و open-source مبتنی بر Quarkus است که برای بررسی مشکل‌های سیستم‌های توزیع‌شده ساخته شده است. این ابزار از طریق MCP به مجموعهٔ Grafana LGTM متصل می‌شود و telemetry را به LLM می‌دهد تا علت اصلی را از نشانه‌های مشکل جدا کند. مخاطب آن توسعه‌دهندگانی هستند که با این سیستم‌ها کار می‌کنند، اما نمی‌خواهند برای تحلیل داده‌های سرویس‌ها متخصص شوند.

فرایند تحلیل با دریافت trace‌های اخیر از Tempo شروع می‌شود. ابزار مواردی مانند خطا، تأخیر زیاد و الگوهای غیرعادی را پیدا می‌کند، سپس log‌های مرتبط را از Loki می‌گیرد و آن‌ها را به بخش‌های مشخص هر trace پیوند می‌دهد. در ادامه، metrics مربوط به همان بازهٔ زمانی را از Prometheus دریافت می‌کند. LLM این داده‌ها را کنار هم بررسی می‌کند و گزارشی شامل علت اصلی، شدت مشکل، خرابی‌های زنجیره‌ای و پیشنهاد گام‌های بعدی می‌سازد.

بخش مهم طراحی، آماده‌سازی داده‌ها پیش از ارسال به مدل است. telemetry خام می‌تواند پر از اطلاعات اضافی باشد و Context Window را اشغال کند. بخش StripMcpClient برای هر ابزار، اطلاعات غیرضروری را حذف می‌کند؛ از جمله اطلاعات SDK،؜ فیلدهای تکراری و جزئیات داخلی Netty. در نمونهٔ metrics ذکرشده در مطلب، تعداد ورودی‌ها از ۵۸۶ به حدود ۳۵ رسیده است؛ یعنی کاهش ۹۴ درصدی.

بررسی کد برنامه و ساخت dashboard در Grafana نیز به‌صورت اختیاری در دسترس است. برای این قابلیت‌ها، برنامه‌های هدف باید در حالت توسعهٔ Quarkus اجرا شوند و تنظیم quarkus.dev-mcp.enabled=true داشته باشند. با معرفی port‌های برنامه‌ها، ابزار از Quarkus Dev MCP برای بررسی کد و نوشتن dashboard در فایل‌های برنامه استفاده می‌کند. بدون این اتصال هم تحلیل اصلی داده‌ها انجام می‌شود.

برای شروع با یک مجموعهٔ LGTM فعال، می‌توان فایل uber-jar را از Maven Central گرفت و اجرا کرد؛ نیازی به clone کردن repository نیست. در مسیر توسعه، Quarkus Dev Services مجموعهٔ LGTM را خودکار راه‌اندازی می‌کند. گزینه‌های ارائه‌دهندهٔ مدل شامل OpenAI،؜ Grok،؜ Gemini و WatsonX هستند. در رابط وب می‌توان بین ۱ تا ۲۰ trace را برای تحلیل انتخاب کرد و خروجی را با قالب‌هایی مانند HTML،؜ Markdown،؜ Plain Text یا AsciiDoc گرفت.

نکته کلیدی

برای شروع، لازم نیست بررسی کد برنامه را فعال کنی؛ تحلیل داده‌های سرویس‌ها مستقل انجام می‌شود. اگر بررسی کد هم می‌خواهی، برنامه‌های هدف را در حالت توسعهٔ Quarkus اجرا کن و اتصال مربوط به آن را فعال کن.

خواندن مقاله اصلی (در زبانه‌ی جدید باز می‌شود)
برچسب‌ها (۴)