প্রকল্প সম্পর্কে

এই প্রকল্প Prometheus Alertmanager থেকে সক্রিয় অ্যালার্টগুলি পর্যবেক্ষণ করার জন্য একটি সহজ, স্ব-হোস্ট করা সমাধান প্রদান করে। এটি দুটি স্বাধীন Go বাইনারি নিয়ে গঠিত, প্রতিটি একটি পৃথক কন্টেইনার ইমেজ হিসাবে প্যাকেজ করা, যা নমনীয় স্থাপনার জন্য অনুমতি দেয়। **উপাদানগুলি:** 1. **রিসিভার:** এই বাইনারিটি Alertmanager-এর জন্য একটি webhook এন্ডপয়েন্ট হিসাবে কাজ করে। এটি `/webhook`-এ POST অনুরোধগুলির জন্য শোনে, ইনকামিং অ্যালার্ট ডেটা প্রক্রিয়া করে, এবং বর্তমান অবস্থা একটি Valkey (Redis-compatible) ডাটাবেসে সংরক্ষণ করে। এটি বিশেষভাবে `Watchdog` অ্যালার্টগুলিকে পরিচালনা করে, একটি শেষ-দেখা টাইমস্ট্যাম্প আপডেট করে কিন্তু সেগুলিকে সক্রিয় সমস্যা হিসাবে বিবেচনা করে না। 2. **ড্যাশবোর্ড:** এই বাইনারিটি Valkey থেকে অবস্থা পড়ে এবং একটি ওয়েব-ভিত্তিক HTML ড্যাশবোর্ড পরিবেশন করে। এটি বর্তমান অ্যালার্ট স্ট্যাটাসের প্রোগ্রাম্যাটিক অ্যাক্সেসের জন্য একটি `GET /api/state` এন্ডপয়েন্টও প্রকাশ করে। ড্যাশবোর্ডটি কনফিগার করা যেতে পারে যাতে যদি নির্দিষ্ট একটি থ্রেশহোল্ডের মধ্যে কোনো নতুন webhook না পাওয়া যায় তবে তা পুরানো আপডেটগুলিকে হাইলাইট করে। **অবস্থা ব্যবস্থাপনা:** সক্রিয় অ্যালার্টগুলি তাদের অনন্য ফিঙ্গারপ্রিন্ট দ্বারা কী করা একটি Valkey হ্যাশে সংরক্ষণ করা হয়। সমাধান করা অ্যালার্টগুলি স্বয়ংক্রিয়ভাবে মুছে ফেলা হয়। যদি কোনো ফিঙ্গারপ্রিন্ট অনুপস্থিত থাকে, তবে তা সামঞ্জস্যতা নিশ্চিত করতে সাজানো লেবেল থেকে প্রাপ্ত করা হয়। **কনফিগারেশন:** উভয় বাইনারিই পরিবেশন ভেরিয়েবল দ্বারা কনফিগার করা হয়, যার মধ্যে রয়েছে: - `LISTEN_ADDR`: HTTP শোনার ঠিকানা (ডিফল্ট `:8080`)। - `VALKEY_ADDR`: Valkey/Redis ইনস্ট্যান্সের ঠিকানা। - `VALKEY_USERNAME` / `VALKEY_PASSWORD`: প্রমাণীকরণ শংসাপত্র। - `STALE_AFTER`: আপডেটগুলিকে পুরানো হিসাবে চিহ্নিত করার জন্য থ্রেশহোল্ড (ডিফল্ট `90m`)। **স্থাপনা:** প্রকল্পটি স্থানীয় উন্নয়ন এবং পরীক্ষার জন্য Docker Compose সমর্থন করে। প্রকাশিত কন্টেইনার ইমেজগুলি GitHub Container Registry (`ghcr.io`) এ উপলব্ধ। চূড়ান্ত ইমেজগুলি নিরাপত্তা এবং আকারের জন্য অপ্টিমাইজ করা হয়েছে, `scratch` কে বেস হিসাবে ব্যবহার করে, নন-রুট (UID/GID 1000) হিসাবে চলছে, এবং বাইনারি-সমর্থিত স্বাস্থ্য চেক অন্তর্ভুক্ত করে।