ما هو Spring Boot Actuator؟
هو مكون (module) من Spring Boot يوفر مجموعة من الأدوات الجاهزة لمراقبة (Monitoring) وإدارة (Management) تطبيقات Spring Boot أثناء عملها في بيئة الإنتاج أو التطوير.
يضيف نقاط نهاية (Endpoints) تعرض معلومات مفصلة عن حالة التطبيق، مثل الصحة (Health)، المقاييس (Metrics)، سجلات الأحداث (Logs)، إلخ.
المزايا الأساسية
1.متابعة الحالة (Health Checks)
- يظهر ما إذا كان التطبيق يعمل بشكل سليم.
- يمكن دمجه مع أنظمة مثل Kubernetes, Docker, أو أدوات المراقبة مثل Prometheus.
2.المقاييس (Metrics)
- يوفر إحصائيات عن استخدام الذاكرة، عدد الطلبات HTTP، زمن الاستجابة، حجم الـ threads… إلخ.
- يمكن تصديرها إلى أدوات مراقبة مثل Micrometer و Prometheus/Grafana.
3.التتبع (Tracing & Auditing)
- يدعم تتبع الطلبات (request traces).
- إمكانية تتبع الأخطاء والأحداث المهمة.
4.إدارة الإعدادات (Configuration)
- عرض الـ properties المستخدمة في التطبيق.
- التحكم في مستوى الـ logging أثناء التشغيل.
5.تكامل سهل مع أدوات المراقبة
- مثل: Prometheus, Grafana, New Relic, ELK Stack.
كيفية الاستخدام
- إضافة التابع (Dependency) في
pom.xml
:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
بعد إضافة الاعتماد، يتم تفعيل بعض نقاط النهاية بشكل افتراضي مثل:
- /actuator/health → لمعرفة صحة التطبيق.
/actuator/info
→ لعرض معلومات عامة (يمكن تخصيصها).
3.تخصيص الإعدادات في
application.properties
أو application.yml
:management.endpoints.web.exposure.include=health,info
management.info.env.enabled=true
info.app.name=My Spring project
info.app.description= Description for spring project
info.app.version=1.0.0
- /actuator/health → صحة التطبيق.
/actuator/metrics
→ المقاييس المختلفة./actuator/loggers
→ إدارة مستوى الـ Logging./actuator/env
→ خصائص البيئة./actuator/beans
→ جميع الـ Beans في الـ Context.
الاستخدام في بيئة الإنتاج
- الأمان: يجب حجب بعض الـ endpoints أو حمايتها بـ Spring Security.
- التكامل: يتم عادةً دمجها مع أدوات مراقبة مركزية.
التخصيص: يمكن كتابة HealthIndicator مخصص لمراقبة قاعدة بيانات أو خدمة خارجية.
الخلاصة
Spring Boot Actuator يوفر:
- مراقبة شاملة للتطبيق.
- إدارة سهلة عبر الـ endpoints.
- تكامل مع أدوات DevOps وMonitoring.
- مرونة للتخصيص حسب احتياجاتك.
تعليقات
إرسال تعليق