پرومتئوس چیه؟
پرومتئوس (Prometheus) یه سیستم مانیتورینگ و هشداردهی متنباز برای نظارت بر سیستمهای توزیعشده و جمعآوری دادههای متریک است. پرومتئوس جزو پروژههای Cloud Native Computing Foundation (CNCF) است و به عنوان یکی از اصلیترین ابزارهای مانیتورینگ در دنیای Cloud Native به شمار میره. پرومتئوس به توسعهدهندهها و تیمهای عملیات اجازه میده تا بهراحتی دادههای متریک رو جمعآوری، ذخیره و تجزیه و تحلیل کنن.
* منظورم از دادههای متریک، هر داده قابل اندازهگیری است، مثل زمان اتصال به دیتابیس، مدت زمان فراخوانی یک سرویس یا…
روشهای سنتی مانیتورینگ
قبل از معرفی نسل جدید ابزارهای مانیتورینگ مثل پرومتئوس، روشهای سنتی برای مانیتورینگ سیستمها مثل ابزارهایی مثل Nagios و Zabbix محبوبیت داشتند. این ابزارها تمرکزشون روی نظارت بر وضعیت سرورها، لاگها و رخدادهای سیستمی محدود میشد. ابزارهای سنتی اغلب به Polling (پول کردن دادهها) و جمعآوری لاگها متکی بودن و توانایی کمتری در ارائه دادههای متریک دقیق و لحظهای داشتن. در محیطهای مدرن توزیعشده و مبتنی بر کانتینر (و طبیعتاً cloud)، این ابزارها به چالش کشیده شدن؛ دلیل اصلی هم چون انعطافپذیری و مقیاسپذیری بالایی نداشتن و طراحی و معماریشون به دوران ماقبل cloud برمیگرده.
پیدایش پرومتئوس
سال ۲۰۱۲ مهندسهای SoundCloud پرومتئوس رو به عنوان یک راهکار از بیخ سازگار با cloud، برای مشکلات موجود در مانیتورینگ سیستمهای توزیعشده و Cloud Native خلق کردن. این محصول جدید، به سرعت مورد توجه قرار گرفت و به یکی از پروژههای مهم CNCF تبدیل شد. پرومتئوس با رویکرد Pull-based و استفاده از Time-Series Database (TSDB)، تونست تبدیل به یک راهکار کارآمد و منعطف برای جمعآوری و تجزیه و تحلیل دادههای متریک بشه.
پرومتئوس برای کوئریزدن دادههای متریک از پروتکل PromQL استفاده میکنه که کاربر میتونه تجزیه و تحلیلهای پیچیده روی دادهها رو انجام بده. در ضمن پرومتئوس با زیرساختهایی مثل Kubernetes یکپارچه میشه و قابلیت جمعآوری متریک از میکروسرویسها و اپلیکیشنهای Cloud Native رو به راحتی فراهم میکنه.
نسخه پرومتئوس ۳
حالا ۱۴ نوامبر، تیم پرومتئوس بزرگترین تغییرات رو بعد از ۷ سال با انتشار نسخه Prometheus 3.0 رو توی کنفرانس PromCon برلین منتشر کرد. نسخه جدید با ویژگیها و بهبودهای چشمگیری همراه شده. نسخه بتا تا نسخه نهایی حدود ۲ هفته طول کشید و نسخه نهایی Prometheus 3.0 ارائه شد.
ویژگیهای جدید نسخه ۳.۰
۱. رابط کاربری جدید:
- رابط کاربری پرومتئوس بهطور کامل بازطراحی شده و حالا یک ظاهر مدرنتر و سادهتر داره. ویژگیهایی مثل PromLens-style tree view هم بهش اضافه شد.
۲. Remote Write 2.0:
- این نسخه جدید پروتکل Remote Write با پشتیبانی از متادیتا، هیستوگرامهای بومی و بهبود عملکرد در فشردهسازی دادهها همراه شده.
- پشتیبانی از UTF-8:
- نسخه ۳.۰، نامهای متریک و لیبلها به صورت پیشفرض از کاراکترهای UTF-8 پشتیبانی میکنن. دیگه میتونیم با خیال راحت «سامانهی فلان» بنویسیم 😂
۴. پشتیبانی از OTLP:
- پرومتئوس حالا به عنوان یک گیرنده بومی برای پروتکل OpenTelemetry (OTLP) قابل تنظیمه و متریکهای OTLP رو به طور مستقیم دریافت میکنه.
۵. هیستوگرامهای بومی:
- Native Histograms نوع جدیدی از متریکها هستن که کارایی بالاتر و هزینه کمتری نسبت به Classic Histograms دارن.
تغییرات مهم و ناسازگاریها (breaking changes)
با وجود تلاش community پرومتئوس برای حفظ پایداری، نسخه ۳.۰ تعدادی تغییرات ناسازگار هم داره. این تغییرات شامل بهروزرسانی تنظیمات فایل کانفیگ، تغییرات در PromQL و پروتکلهای Scrape میشه. قبل از آپگرید حتما این مستند رو بخونید.
بهبود عملکرد
نسخه ۳.۰ بهبود قابل توجهی در مصرف CPU و Memory نسبت به نسخههای قبلی پرومتئوس داره.
قدم بعدی چیه؟
تیم پرومتئوس همچنان در حال توسعه ویژگیهای جدید و بهبود سازگاری با OpenTelemetry هستند. برنامههایی مثل انتشار OpenMetrics 2.0 و بهبود هیستوگرامهای بومی در دست کارشونه. مستند رسمی نقشه راهشون!
خیلی خوب بود ممنون