عن المشروع

يوفر هذا المشروع حلاً بسيطًا ومستضافًا ذاتيًا لمراقبة التنبيهات النشطة من Prometheus Alertmanager. وهو يتألف من اثنين من البرامج الثنائية المستقلة بلغة Go، وكل منها معبأ كصورة حاوية منفصلة، مما يسمح بنشر مرن. **المكونات:** 1. **المستقبل (Receiver):** يعمل هذا البرنامج الثنائي كنقطة نهاية webhook لـ Alertmanager. وهو يستمع إلى طلبات POST عند `/webhook`، ويعالج بيانات التنبيه الواردة، ويخزن الحالة الحالية في قاعدة بيانات Valkey (متوافقة مع Redis). وهو يتعامل تحديدًا مع تنبيهات `Watchdog` من خلال تحديث طابع زمني للأخير رؤية دون اعتبارها مشكلات نشطة. 2. **لوحة المعلومات (Dashboard):** يقرأ هذا البرنامج الثنائي الحالة من Valkey ويقدم لوحة معلومات HTML قائمة على الويب. كما أنه يعرض نقطة نهاية `GET /api/state` للوصول البرمجي إلى حالة التنبيه الحالية. يمكن ضبط لوحة المعلومات لتسليط الضوء على التحديثات القديمة إذا لم يتم استلام webhooks جديدة ضمن عتبة محددة. **إدارة الحالة:** يتم تخزين التنبيهات النشطة في مخطط تجزئة Valkey مفهرس بواسطة بصمته الفريدة. يتم إزالة التنبيهات المحلولة تلقائيًا. إذا كانت البصمة مفقودة، يتم اشتقاقها من الملصقات المرتبة لضمان الاتساق. **التكوين:** يتم تكوين كلا البرنامجين الثنائيين عبر متغيرات البيئة، بما في ذلك: - `LISTEN_ADDR`: عنوان الاستماع HTTP (الافتراضي `:8080`). - `VALKEY_ADDR`: عنوان مثيل Valkey/Redis. - `VALKEY_USERNAME` / `VALKEY_PASSWORD`: بيانات اعتماد المصادقة. - `STALE_AFTER`: عتبة لتحديد التحديثات على أنها قديمة (الافتراضي `90m`). **النشر:** يدعم المشروع Docker Compose للتطوير المحلي والاختبار. تتوفر صور الحاويات المنشورة على GitHub Container Registry (`ghcr.io`). تم تحسين الصور النهائية للأمان والحجم، باستخدام `scratch` كقاعدة، وتشغيلها كـ non-root (UID/GID 1000)، وتضمين فحوصات صحة مدعومة بالبرنامج الثنائي.