معرفی
«ویکتوریا متریکس» (VictoriaMetrics) پایگاه داده سری زمانی برای ذخیرهسازی و پرسوجوی متریکها است. این ابزار با اکوسیستم «Prometheus» سازگاری دارد و میتواند متریکهایی را دریافت کند که Prometheus یا «vmagent» پس از پویش نقاط پایانی اکسپورتورها، از طریق «ارسال راه دور» (Remote_Write) روانه میکنند.
اکسپورتور به طور معمول متریک را در یک نقطه پایانی در دسترس قرار میدهد و خودش داده را به VictoriaMetrics نمیفرستد. در یک معماری رایج، پرومتئوس یا vmagent هدفها را پویش میکند، داده را با ارسال راه دور به ویکتوریا متریکس میفرستد و گرافانا برای نمایش دادهها از واسط برنامهنویسی سازگار با پرومتئوس استفاده میکند.
چه زمانی VictoriaMetrics انتخاب مناسبی است؟
نسخه تکسرور برای تیمهایی مناسب است که به نقطه ذخیرهسازی نیاز دارند، تعداد هدفها و نرخ ورود دادههایشان قابل مدیریت است و به دسترسپذیری چندگرهی نیاز ندارند. این گزینه برای جایگزینی ذخیرهسازی محلی و کوتاهمدت Prometheus یا نگهداری طولانیمدت متریکها، در مقایسه با معماری خوشهای هزینه عملیاتی کمتری دارد.
معماری خوشهای زمانی مطرح میشود که رشد مداوم حجم دادهها، نرخ بالای دریافت متریکها، تعداد زیاد پرسوجوهای همزمان یا نیاز به تفکیک اجزای دریافت، ذخیرهسازی و پرسوجو، نسخه تکسرور را به گلوگاه تبدیل کند. خوشهای کردن هزینهها را حذف نمیکند، بلکه موارد زیر را پیچیدهتر میکند:
استقرار و ظرفیتسنجی
مسیریابی درخواستها
پایش اجزای بیشتر
رسیدگی به خرابیها
اگر به نگهداری کوتاهمدت دادهها، محیطی کوچک و قواعد هشدار ساده نیاز دارید، استفاده مستقل از Prometheus میتواند انتخابی سادهتر و کمهزینهتر باشد. اگر به سامانهای یکپارچه برای پایش با روش جمعآوری داده و مدل عملیاتی متفاوت نیاز دارید، راهکارهای دیگر را با نیازهای تیم مقایسه کنید. VictoriaMetrics بهطور مشخص برای ذخیرهسازی و پرسوجوی متریکها در معماری سازگار با Prometheus طراحی شده است.
VictoriaMetrics داشبورد نیست، بلکه دادههای متریک را ذخیره و پردازش میکند. این ابزار در کنار ابزارهای دیگری به کار میرود، از جمله:
Grafana برای نمایش نمودارها
Alertmanager یا vmalert برای مدیریت هشدارها
سازگاری با PromQL به معنای یکسان بودن تمام رفتارها نیست. بنابراین، پیش از مهاجرت، موارد زیر را در محیطی آزمایشی بررسی کنید:
کوئریها
قوانین ثبت
قوانین هشدار
داشبوردهای موجود
MetricsQL نیز قابلیتهای بیشتری دارد که ممکن است نتوان آنها را مستقیما به PromQL منتقل کرد.
ویژگیهای کلیدی
برای آشنایی بهتر با این ابزار، توجه به موارد زیر میتواند مفید باشد.
-
سازگاری با API-های Prometheus
میتواند دادههای ارسالشده با remote_write از Prometheus یا vmagent را دریافت کند و پرسوجوهای سازگار با PromQL را پاسخ دهد. پیش از مهاجرت، پرسوجوها، قوانین ثبت و هشدارهای موجود را آزمایش کنید.
-
پرسوجوی MetricsQL
زبان کوئری پیشرفتهتری را برای تحلیل دادههای سری زمانی با انعطافپذیری بالا ارایه میدهد.
-
استقرار تکسرور و خوشهای
نسخه تکسرور برای شروع کار و مدیریت بارهای قابلکنترل مناسب است. با افزایش پایدار نرخ ورود دادهها، بار پرسوجوها یا نیاز به دسترسپذیری، میتوانید معماری خوشهای را بررسی کنید. البته این معماری اجزای بیشتری دارد و هزینه عملیاتی آن بالاتر است.
-
فشردهسازی و نگهداری بلندمدت متریک
برای نگهداری حجم زیاد دادههای سری زمانی طراحی شده است و به تیمها کمک میکند تاریخچه متریکها را برای تحلیل رخدادها، روند ظرفیت و بررسی افت عملکرد حفظ کنند.
-
اجزای مکمل برای جمعآوری و هشدار
اکوسیستم آن شامل ابزارهایی مانند vmagent برای scrape و ارسال متریک و vmalert برای ارزیابی قوانین و هشدارها است. این اجزا میتوانند در معماریهای چندکلاستری یا چندمنبعی مفید باشند.
-
یکپارچگی با Grafana
میتوان ویکتوریا متریکس را بهعنوان منبع داده Prometheus در Grafana متصل کرد و داشبوردهای موجود را پس از بررسی سازگاری کوئریها، ادامه داد.
کاربردها
در ادامه، مهمترین موارد این بخش به تفکیک معرفی شدهاند.
-
نگهداری بلندمدت متریکهای Prometheus
وقتی تیم میخواهد متریکهای چند ماه یا چند سال را برای تحلیل روند، ظرفیتسنجی و بررسی رخدادهای گذشته نگه دارد، VictoriaMetrics میتواند مخزن مرکزی داده باشد.
-
پایش چند کلاستر Kubernetes
در سازمانی که چند کلاستر Kubernetes دارد، هر کلاستر میتواند با کمک Prometheus یا vmagent دادههای مربوط به وضعیت سامانه را جمعآوری کند و برای ذخیرهسازی به یک یا چند مقصد VictoriaMetrics بفرستد.
-
مقیاسدهی لایه ذخیرهسازی متریک
اگر نگهداری طولانیمدت دادهها، دریافت حجم زیاد متریک یا اجرای پرسوجوهای متعدد برای Prometheus به مشکل تبدیل شده است، تیم میتواند VictoriaMetrics را برای دریافت و ذخیره دادهها بررسی کند. پیش از راهاندازی نسخه خوشهای، نسخه تکسرور را با حجم کاری واقعی آزمایش کنید.
-
داشبوردهای عملیاتی در Grafana
تیمهای دواپس میتوانند دادههای متریک سرویسها، میزبانها، کانتینرها و پایگاههای داده را در VictoriaMetrics نگه دارند و نمودارهای عملیاتی را در Grafana نمایش دهند.
ابزارهای جایگزین
پرسشهای رایج درباره ویکتوریا متریکس
اگر درباره این ابزار پرسشی دارید، ممکن است پاسخ آن را در میان موارد زیر پیدا کنید.
آیا ویکتوریا متریکس جایگزین کامل Prometheus است؟
خیر، ویکتوریا متریکس پایگاه دادهای برای ذخیره و پرسوجوست، اما پرومتئوس قابلیت جمعآوری داده را نیز دارد و این دو ابزار به عنوان مکمل یکدیگر عمل میکنند. انتخاب معماری به حجم داده، روش جمعآوری و نیاز هشداردهی شما بستگی دارد.
آیا برای استفاده از ویکتوریا متریکس باید PromQL بلد باشم؟
آشنایی با PromQL بسیار مفید است، چون بسیاری از داشبوردها و هشدارهای اکوسیستم Prometheus بر آن تکیه دارند. ویکتوریا متریکس همچنین از MetricsQL پشتیبانی میکند که قابلیتهای اضافهای دارد.
ویکتوریا متریکس با Grafana کار میکند؟
بله. میتوانید آن را بهعنوان منبع داده سازگار با Prometheus در Grafana تنظیم کنید و برای ساخت داشبورد و نمودار از آن استفاده کنید.
نسخه متنباز ویکتوریا متریکس برای چه کاری مناسب است؟
نسخه متنباز برای بسیاری از نیازهای ذخیرهسازی و پرسوجوی متریک، از محیط آزمایشی تا استقرارهای عملیاتی، قابل استفاده است. برخی قابلیتها و خدمات تجاری در نسخه Enterprise ارائه میشوند.