الملفات
ghaymah-exam-OmarHussein-SRE/q5-mithal-monitor

مراقبة mithal.space ولوحة متابعة مباشرة

حل مستقل لمراقبة موقع mithal.space بدون أي مكتبات خارجية. يشغّل السكربت فحوصات دورية، يخزّن النتائج محليًا بصيغة JSON Lines، ويقدّم لوحة متابعة عبر HTTP.

محتويات المشروع

.
├── Dockerfile
├── .ghaymah.json
├── monitor.py        # فحوصات Latency/Uptime/DNS/SSL/Search + خادم HTTP
├── dashboard.html    # لوحة متابعة مباشرة
└── demo/             # لقطات توضيحية للتشغيل واللوحة

الفحوصات المنفذة

  • Latency/Uptime: فحص الصفحة الرئيسية وقياس زمن الاستجابة.
  • DNS: قياس زمن تحليل اسم النطاق.
  • SSL: التحقق من صلاحية الشهادة وعدد الأيام المتبقية.
  • Search: إرسال طلب بحث فعلي إلى مسار البحث وقياس الاستجابة.

التشغيل المحلي

cd q5-mithal-monitor
python monitor.py --interval 60 --port 8080

ثم افتح:

http://localhost:8080

المسارات المتاحة:

  • / أو /dashboard.html: لوحة المتابعة.
  • /api/metrics: آخر المقاييس مجمّعة بصيغة JSON.
  • /health: فحص صحة للخدمة نفسها.

لتنفيذ فحص واحد فقط بدون تشغيل الخادم:

python monitor.py --once

التخصيص

يمكن تعديل الهدف وسلوك البحث عبر متغيرات البيئة:

المتغير الافتراضي الغرض
TARGET_URL https://mithal.space الموقع المراد مراقبته
SEARCH_PATH /search مسار البحث
SEARCH_QUERY_PARAM q اسم باراميتر البحث
SEARCH_QUERY_VALUE test قيمة البحث التجريبية
REQUEST_TIMEOUT 10 مهلة الطلب بالثواني
DATA_FILE data.jsonl ملف تخزين النتائج
MAX_RECORDS 3000 أقصى عدد سجلات محفوظة
PORT 8080 منفذ لوحة المتابعة

النشر على غيمة

الصورة جاهزة للبناء مباشرة من Dockerfile:

docker build -t mithal-monitor:latest .
docker run --rm -p 8080:8080 mithal-monitor:latest

عند إنشاء الخدمة على Ghaymah Containers:

  • اضبط المنفذ على 8080.
  • اضبط Health Check Path على /health.
  • مرّر متغير TARGET_URL إذا أردت مراقبة نطاق مختلف.
  • افتح الرابط العام للخدمة لعرض dashboard.html.