المراقبة في Spring Boot

يجب أن يفعل تطبيق الإنتاج أكثر من مجرد التشغيل؛ بل يجب أن يكون قابلاً للمراقبة وسهل الإصلاح عند حدوث فشل. أنت بحاجة إلى فحوصات الحالة (health checks)، والمقاييس (metrics)، والسجلات (logs)، وإجراءات واضحة للتعامل مع الحوادث.

يستخدم Spring Boot أداة Actuator لتوفير هذه الميزات. توفر لك Actuator نقاط نهاية (endpoints) مثل health و metrics و info. يمكنك عرض هذه البيانات عبر HTTP أو JMX.

المجالات الرئيسية للمراقبة:

• التوافر: تحقق من وقت التشغيل (uptime)، والجاهزية (readiness)، والحيوية (liveness). • الأداء: تتبع أوقات الاستجابة، وزمن التأخير (latency)، ومعدل الإنتاجية (throughput). • الأخطاء: راقب أخطاء HTTP 4xx/5xx والرسائل الفاشلة. • JVM: راقب الـ heap، والذاكرة، والمعالج (CPU)، والخيوط (threads). • قاعدة البيانات: تتبع مجموعات الاتصال (connection pools) والاستعلامات البطيئة. • Kafka: راقب تأخر المستهلك (consumer lag) ومعدلات إعادة المحاولة.

جمع المقاييس

يستخدم Spring Boot أداة Micrometer لجمع المقاييس. يمكنك استخدام سجل Prometheus لعرض هذه المقاييس. يتضمن الإعداد الشائع ما يلي:

Spring Boot App → Prometheus → Grafana

يتيح لك ذلك تصور بيانات التطبيق عبر لوحات التحكم (dashboards).

أفضل ممارسات تسجيل السجلات (Logging)

تساعدك السجلات في فهم ما حدث أثناء الفشل. استخدم تسجيل JSON المهيكل في بيئة الإنتاج لجعل السجلات قابلة للقراءة آلياً.

افعل:

لا تفعل:

الاستقرار التشغيلي

يعني الدعم التشغيلي الحفاظ على استقرار الخدمة بعد نشرها. يجب أن تركز على:

خدمة Spring Boot القوية هي خدمة سهلة المراقبة، وسهلة التصحيح (debug)، وسهلة الاسترداد.

المصدر: https://dev.to/antonio_casado_1fe39cd90e/monitoring-in-spring-boot-1220