خوانده شده 6 دقیقه ارسال شده در
Prometheus در ابتدا در Soundcloud توسعه داده شد اما اکنون یک پروژه اجتماعی است که توسط بنیاد محاسبات بومی Cloud (CNCF) پشتیبانی میشود.
به سرعت رشد کرد. در دهه گذشته به دلیل ترکیبی از عملکرد جستجو و معماری ابری آن را به یک پشته نظارت ایده آل برای برنامه های مدرن تبدیل کرده است. جایی که مسئولیت پرومتئوس به پایان می رسد.
بخشی از محبوبیت آن به دلیل سازگاری آن با سایر پلتفرم ها است. آنها می توانند داده ها را در قالب های راحت تری ارائه دهند.
پرومتئوس چه کاری انجام می دهد؟ این رویدادها میتوانند هر چیزی مربوط به برنامه شما باشد، مانند مصرف حافظه، استفاده از شبکه، یا درخواستهای دریافتی فردی
واحد اصلی داده «متریک» است. به هر معیار یک نام اختصاص داده می شود که می تواند به آن ارجاع داده شود و همچنین مجموعه ای از برچسب ها. برچسب ها جفت داده های کلید-مقدار دلخواه هستند که می توانند برای فیلتر کردن معیارها در پایگاه داده شما استفاده شوند.
معیارها همیشه بر اساس یکی از چهار نوع ابزار اصلی هستند:
- شمارنده – مقداری که دائماً در حال افزایش است. هرگز کاهش نمی یابد یا پاک نمی شود.
- گیج مقداری است که می تواند در هر جهت در هر زمان تغییر کند.
- هیستوگرام نمونه ای از چندین مقدار است که مجموع همه مقادیر ذخیره شده را ارائه می دهد رویدادهای ثبت شده را شمارش می کند
- خلاصه – یک توابع خلاصه شبیه به یک هیستوگرام است، اما از چندک های سفارشی برای نظارت بر کل در دوره های زمانی متحرک پشتیبانی می کند.
به صورت دورهای از منبع دادهای که هر معیار را حفظ میکند نظرسنجی میکند و سپس نتیجه را بهعنوان جدید ذخیره میکند. عبور از پایگاه داده سری زمانی
برنامه نظارت شده مسئول اجرای نقطه پایانی مورد استفاده به عنوان منبع داده است. این ارائه دهندگان داده معمولاً به عنوان صادرکننده نامیده می شوند.
☸️ نحوه نصب Prometheus و Grafana در Kubernetes با استفاده از Helm 3
یک مدل مبتنی بر کشش، ادغام Prometheus را در برنامه های شما آسان می کند.
همه آنچه شما نیاز دارید do ارائه یک نقطه پایانی سازگار نقطه ای است که مقدار فعلی متریک را برای جمع آوری نشان می دهد. تغییر می کند – به این معنی است که کد شما نیازی به حمل و نقل معیارها ندارد.
اطلاعات بیشتر در مورد صادرکنندگان
صادرکنندگان مسئول نمایش معیارهای برنامه شما هستند که آماده جمع آوری Prometheus هستند
بسیاری از کاربران با استقرار ساده Node Exporter شروع به کار می کنند که معیارهای اساسی سیستم را از میزبان لینوکس که روی آن نصب شده است جمع آوری می کند. 19659006] طیف گسترده ای از صادرکنندگان در دسترس هستند، که بسیاری از آنها توسط خود Prometheus یا ارائه دهندگان رسمی انجمن ارائه شده است. موتور ورود یا گذرگاه پیام رسانی، احتمال اینکه صادرکننده از قبل وجود داشته باشد وجود دارد. ] با این رویکرد، هیچ محدودیتی وجود ندارد – می توانید زمان صرف شده در صفحه فرود، حجم فروش، ثبت نام را ردیابی کنید. یک صفحه کاربری یا هر چیز دیگری که برای سیستم شما مهم است.
صادرکنندگان نقاط پایانی HTTP API ساده هستند، بنابراین می توان آنها را به هر زبان برنامه نویسی نوشت
Prometheus کتابخانه های مشتری رسمی را برای Go، Java / Scala، Python و Ruby فراهم می کند که ابزارسازی کد خود را تسهیل کنید.
طرحهای انجمن کتابخانههای غیررسمی را برای اکثر زبانهای رایج دیگر فراهم کرده است. تجزیه و تحلیل، و قالب بندی معیارها با عملگرها و توابع مختلف.
از آنجایی که Prometheus از ذخیره سازی سری های زمانی استفاده می کند، انتخاب محدوده زمان و مدت پشتیبانی می شود و یافتن داده های اضافه شده در یک دوره زمانی خاص را آسان می کند.
در اینجا یک مثال آورده شده است. که تمام رویدادهای memory_consumption را برای ساعت گذشته نمایش می دهد:
memory_con sumption [1h]این مثال فقط رویدادهای مصرف حافظه ثبت شده در ساعت گذشته را نمایش می دهد. توابع داخلی قابلیت تجزیه و تحلیل دقیق تری را ارائه می دهند.
در اینجا مثالی وجود دارد که از تابع نرخ () برای محاسبه نرخ افزایش متریک حافظه_مصرف در یک دوره زمانی انتخاب شده استفاده می کند:
نرخ (مصرف_حافظه [1h])دسترسی به دادههای Prometheus را میتوان با استفاده از رابط وب داخلی، که معمولاً روی پورت 9090 یا HTTP API باز میشود، دسترسی داشت.
🗽 ادغام Prometheus و Grafana برای نظارت بر گزارشها
Alerts
Prometheus با یک مؤلفه Alertmanager ارائه میشود که میتواند هنگام تغییر معیارها برای شما اعلانها ارسال کند.
پشتیبانی میکند. خطمشیهای مبتنی بر قانون Lives که زمان ارسال هشدارها را تعیین میکند.
میتوانید هشدارهای ایمیل، وبکقلکهای HTTP دلخواه، و پلتفرمهای پیامرسان محبوب مانند Slack را دریافت کنید.
Alertmanager شامل پشتیبانی داخلی برای تجمع و غیرفعال کردن هشدارهای تکراری است. وقتی چندین رویداد در مدت زمان کوتاهی اتفاق میافتند غرق نشوید
Alertmanager مستقل از سیستم Prometheus زیربنایی قابل تنظیم است
شما قوانین هشدار را در Prometheus با تعریف شرایطی تنظیم میکنید که یک متریک باید هشداری را به Alertmanager ارسال کند.
آخرین مؤلفه سپس تصمیم می گیرد که آیا هشدار را به هر پلت فرم پیکربندی شده ارائه کند یا خیر.
پرومتئوس چه کاری را نمی تواند انجام دهد؟
اگرچه پرومته یک راه حل نظارتی جامع است، اما برخی از ویژگی ها برای آن مناسب نیست.
پرومته با قابلیت اطمینان و عملکرد به عنوان یک اصل راهنما طراحی شده است. این منجر به معاوضه در دقت متریک می شود.
پرومتئوس تضمین نمی کند که داده های جمع آوری شده 100% دقیق باشد. شما در حال پیگیری داده های آماری مهمی هستید که باید دقیق باشند، باید از پلتفرم دیگری برای این معیارها استفاده کنید. میتوانید از Prometheus برای مقادیر کمتر مهم در سیستم خود استفاده کنید.
همچنین، Prometheus ممکن است تنها مؤلفهای نباشد که در پشته نظارت خود به آن نیاز دارید.
روی ذخیرهسازی و پرسوجو از رویدادهای شما تمرکز میکند، بیشتر با استفاده از HTTP API.
رابط وب داخلی قابلیتهای نموداری اولیه را فراهم میکند، اما نمیتواند از داشبوردهای سفارشی پیشرفته پشتیبانی کند. با پرومتئوس
نتیجه
در ابتدایی ترین حالت، Prometheus یک انبار داده سری زمانی است که می تواند برای مدیریت هر داده متوالی مبتنی بر زمان استفاده شود.
اگرچه پرومتئوس است بهعنوان یک سیستم کارآمد برای ذخیرهسازی و جستجوی معیارها، معمولاً با راهحلهای دیگر برای ایجاد پنلهای گرافیکی و تجسمهای پیشرفته ادغام میشود. اکوسیستم ابر.