أهلاً بكم. يوجد أدناه فك التشفير .
- نظام لمراقبة الأنظمة والخدمات المختلفة ، يمكن من خلاله لمسؤولي النظام جمع معلومات حول المعلمات الحالية للأنظمة وإعداد التنبيهات لتلقي الإخطارات حول الانحرافات في تشغيل الأنظمة.
سيقارن التقرير и - مشاريع التخزين طويل الأمد لمقاييس بروميثيوس.



دعني أخبرك عن بروميثيوس أولاً. هذا نظام مراقبة يجمع المقاييس من أهداف معينة ويخزنها في التخزين المحلي. يمكن لـ Prometheus كتابة مقاييس للتخزين البعيد ، ويمكنه إنشاء تنبيهات وقواعد التسجيل.

حدود بروميثيوس:
- ليس لديها عرض استعلام عمومي. هذا عندما يكون لديك عدة حالات بروميثيوس مستقلة. يجمعون المقاييس. وتريد الاستعلام فوق كل هذه المقاييس التي تم جمعها من حالات بروميثيوس المختلفة. بروميثيوس لا يسمح بذلك.
- مع بروميثيوس ، يقتصر الأداء على خادم واحد فقط. لا يمكن لـ Prometheus التوسع تلقائيًا إلى خوادم متعددة. يمكنك فقط تقسيم أهدافك يدويًا بين عدة بروميثيوس.
- يقتصر نطاق المقاييس في Prometheus على خادم واحد فقط لنفس السبب الذي يجعله غير قادر على التوسع تلقائيًا إلى عدة خوادم تلقائيًا.
- في بروميثيوس ، ليس من السهل تنظيم أمان البيانات.

حلول لهذه المشاكل / المهام؟
الحلول هي:
كل هذه الحلول مخصصة للتخزين عن بعد للبيانات التي تجمعها شركة بروميثيوس. يقومون بحل مشكلة التخزين عن بعد من الشريحة السابقة بطرق مختلفة. في هذا العرض ، سأتحدث فقط عن أول حلين: и .
لأول مرة معلومات عن ظهرت على . تم وصف العمارة وكيف يعمل.

يأخذ ثانوس البيانات التي حفظها بروميثيوس إلى محرك الأقراص المحلي ونسخها إلى S3 ، أو تخزين كائن آخر.

وهكذا يوفر ثانوس طريقة عرض استعلام عالمية. يمكنك الاستعلام عن البيانات المخزنة في تخزين الكائنات من مثيلات بروميثيوس المتعددة.

يدعم ثانوس PromQL و .

يستخدم ثانوس كود بروميثيوس لتخزين البيانات.

تم تطوير Thanos بواسطة نفس مطوري Prometheus.
حول . هنا حيث تحدثنا لأول مرة .

VictoriaMetrics تتلقى البيانات من عدة بروميثيوس بروتوكول يدعمه بروميثيوس.

توفر VictoriaMetrics عرضًا عامًا للاستعلام ، حيث يمكن لمثيلات بروميثيوس المتعددة كتابة البيانات إلى VictoriaMetrics واحد. وفقًا لذلك ، يمكنك إجراء استفسارات حول جميع هذه البيانات.

تدعم VictoriaMetrics أيضًا ، مثل Thanos و PromQL و Prometheus querying API.

على عكس Thanos ، تمت كتابة شفرة مصدر VictoriaMetrics من البداية وتحسينها للسرعة واستهلاك الموارد.

VictoriaMetrics ، على عكس Thanos ، يتدرج رأسيًا وأفقيًا. يأكل ، والتي يتم قياسها عموديًا. يمكنك البدء بمعالج واحد وذاكرة 1 جيجا بايت وتنمو حتى مئات المعالجات و 1 تيرابايت من الذاكرة. تعرف VictoriaMetrics كيفية استخدام كل هذه الموارد. سيزداد أدائها بحوالي 100 مرة مقارنة بنظام 1 النواة.

بدأ تاريخ ثانوس في نوفمبر 2017 ، عندما ظهر أول التزام علني. قبل ذلك ، تم تطوير Thanos داخليًا .

في يونيو 2019 ، كان هناك إصدار تاريخي 0.5.0 ، حيث بروتوكول. تمت إزالته من ثانوس لأنه لم يؤد بشكل جيد. في كثير من الأحيان لا تعمل مجموعة ثانوس بشكل صحيح ، والعقد المتصلة بها بشكل غير صحيح بسبب بروتوكول القيل والقال. لذلك قررنا إزالته من هناك. أعتقد أن هذا هو القرار الصحيح.

في نفس يونيو 2019 ، أرسلوا رقم الطلب в .

وبعد شهرين ، تم قبول ثانوس ، والتي تشمل Prometheus و Kubernetes وغيرها من المشاريع الشهيرة.

في يناير 2018 ، بدأ تطوير VictoriaMetrics.

في سبتمبر 2018 ، ذكرت VictoriaMetrics علنًا.

في ديسمبر 2018 ، تم نشر الإصدار أحادي العقدة.

في مايو 2019 مصادر كل من الإصدار أحادي العقدة والكتلة.

في يونيو 2019 ، تمامًا مثل Thanos ، قدمنا طلبًا إلى مؤسسة CNCF تحت الرقم . قدمنا طلبًا قبل يوم واحد من تطبيق Thanos.

لكن ، للأسف ، لم يتم قبولنا بعد هناك. الحاجة إلى مساعدة المجتمع.

ضع في اعتبارك أهم الشرائح التي تعرض بنية Thanos و VictoriaMetrics.

لنبدأ مع ثانوس. المكونات الصفراء هي مكونات بروميثيوس. كل شيء آخر هو مكونات ثانوس. لنبدأ بالمكون الأكثر أهمية. ثانوس Sidecar هو مكون يتم تثبيته بجانب كل بروميثيوس. وهي مسؤولة عن تحميل بيانات Prometheus من التخزين المحلي إلى S3 أو تخزين كائنات آخر.
يوجد أيضًا مكون مثل Thanos Store Gateway ، والذي يمكنه قراءة هذه البيانات من تخزين الكائنات عند الطلبات الواردة من Thanos Query. ثانوس Query تنفذ PromQL و Prometheus API. هذا هو ، من الخارج يبدو مثل بروميثيوس. يقبل طلبات PromQL ، ويرسلها إلى Thanos Store Gateway ، ويحصل Thanos Store Gateway على البيانات اللازمة من تخزين الكائنات ، ويرسلها مرة أخرى.
لكن لدينا بيانات مخزنة في تخزين الكائنات بدون آخر ساعتين بسبب تطبيق Thanos Sidecar ، والذي لا يمكنه تحميل آخر ساعتين إلى Object Storage S3 ، نظرًا لأن Prometheus لم يقم بعد بإنشاء ملفات في التخزين المحلي لهاتين الساعتين.
كيف قررت الالتفاف حول هذا؟ يرسل Thanos Query ، بالإضافة إلى الطلبات إلى Thanos Store Gateway ، طلبات موازية إلى كل Thanos Sidecar بجوار بروميثيوس.
و Thanos Sidecar ، بدوره ، يطلب الوكلاء المزيد من Prometheus ، ويحصلون على بيانات آخر ساعتين.
بالإضافة إلى هذه المكونات ، هناك أيضًا مكون اختياري ، بدونه سيشعر ثانوس بالسوء. هذا هو Thanos Compact ، الذي يدمج الملفات الصغيرة في تخزين الكائنات في ملفات أكبر تم تحميلها هنا بواسطة Thanos Sidecars. يقوم ثانوس Sidecar بتحميل ملفات البيانات هناك لمدة ساعتين. هذه الملفات ، إذا لم يتم دمجها في ملفات أكبر ، يمكن أن يزداد عددها بشكل كبير. كلما زاد عدد هذه الملفات ، زادت الحاجة إلى ذاكرة إضافية لـ Thanos Store Gateway ، وكلما زادت الموارد اللازمة لنقل البيانات عبر الشبكة ، والبيانات الوصفية. تصبح Thanos Store Gateway غير فعالة. لذلك ، من الضروري تشغيل Thanos Compact ، الذي يدمج الملفات الصغيرة في ملفات أكبر ، بحيث يكون هناك عدد أقل من هذه الملفات ولتقليل الحمل على Thanos Store Gateway.
هناك أيضًا مكون مثل Thanos Ruler. ينفذ قواعد تنبيه بروميثيوس ويمكنه حساب قواعد تسجيل بروميثيوس من أجل إعادة كتابة البيانات إلى تخزين الكائنات. لكن لا ينصح باستخدام هذا المكون ، لأن. هو .
هنا مخطط بسيط لـ Thanos.

الآن دعنا نقارن مع مخطط VictoriaMetrics.
تحتوي VictoriaMetrics على نسختين: إصدار أحادي العقدة ومجموعة. عقدة واحدة تعمل على كمبيوتر واحد. عقدة واحدة لا تحتوي على هذه المكونات ، فقط ثنائي واحد. يبدو هذا الثنائي على الشريحة مثل هذا المربع. كل شيء داخل المربع هو محتويات الملف الثنائي للإصدار أحادي العقدة. لا تحتاج إلى معرفة ذلك. فقط قم بتشغيل النظام الثنائي - وكل شيء يعمل لصالحنا.
النسخة العنقودية أكثر صعوبة. يوجد بداخله ثلاثة مكونات مختلفة: vmselect و vminsert و vmstorage. يجب أن يكون واضحًا من أسمائهم ما يفعله كل منهم. يقبل مكون الإدراج البيانات بتنسيقات مختلفة: من Prometheus Remote write API ، وبروتوكول خط Influx ، وبروتوكول الجرافيت ، وبروتوكول OpenTSDB. يقبلها المكون "الإدراج" ويوزعها ويوزعها على مكونات التخزين الموجودة حيث يتم تخزين البيانات بالفعل. يقبل المكون المحدد بدوره طلبات PromQL. تنفذ ، بالإضافة إلى واجهة برمجة تطبيقات Prometheus للاستعلام ، ويمكن استخدامها كبديل لـ Prometheus في Grafana أو عملاء Prometheus API الآخرين. Select يأخذ طلب promql ، ويحلله ، ويقرأ البيانات اللازمة لتنفيذ هذا الطلب من عقد التخزين ، ويعالج هذه البيانات ويرجع الرد.

دعنا نقارن تعقيد تثبيت Thanos و VictoriaMetrics.

لنبدأ مع ثانوس. قبل أن تبدأ العمل مع Thanos ، تحتاج إلى إنشاء حاوية في تخزين الكائنات ، مثل S3 أو GCS ، حتى يتمكن Thanos Sidecar من كتابة البيانات هناك.

ثم لكل Prometheus تحتاج إلى تثبيت Thanos Sidecar. قبل ذلك ، عليك أن تتذكر تعطيل ضغط البيانات في بروميثيوس. يقوم ضغط البيانات بضغط البيانات بشكل دوري في تخزين بروميثيوس المحلي لتقليل استهلاك الموارد.
عند تثبيت Thanos Sidecar على جهاز Prometheus ، يجب عليك تعطيل ضغط البيانات هذا لأن Thanos Sidecar لا يعمل بشكل صحيح مع تمكين ضغط البيانات. هذا يعني أن بروميثيوس الخاص بك يبدأ في حفظ البيانات في كتل من ساعتين ويتوقف عن دمج هذه الكتل في كتل أكبر. وفقًا لذلك ، إذا قمت بتقديم طلبات تتجاوز مدة الساعتين الأخيرتين ، فلن تعمل بكفاءة كما يمكنها العمل إذا تم تمكين ضغط البيانات.

لذلك ، يوصي ثانوس بتقليل وقت الاحتفاظ بالبيانات في التخزين المحلي إلى 6-8 ساعات من أجل تقليل هذا الحمل لعدد كبير من الكتل الصغيرة.
بعد تثبيت Thanos Sidecar ، يجب عليك تثبيت مكونين لكل مجموعة تخزين كائنات. هذه هي Thanos Compactor و Thanos Store Gateway.

بعد ذلك ، تحتاج إلى تثبيت Thanos Query وتهيئته بحيث يمكنه الاتصال بجميع بوابات متجر Thanos التي لديك ، بالإضافة إلى القدرة على الاتصال بجميع Thanos Sidecars.
قد تكون هناك مشكلة صغيرة هنا.

تحتاج إلى إعداد اتصال موثوق وآمن من Thanos Query إلى هذه المكونات. وإذا كان لديك Prometheus'y موجود في مراكز بيانات مختلفة ، أو في VPCs مختلفة ، فسيتم حظر الاتصال بها من الخارج. ولكن لكي يعمل Thanos Query ، فأنت بحاجة إلى تكوين الاتصال بطريقة ما هناك ، ويجب عليك التوصل إلى طريقة.
إذا كان لديك الكثير من مراكز البيانات هذه ، فإن موثوقية النظام بأكمله تنخفض وفقًا لذلك. نظرًا لأن Thanos Query يجب أن يحتفظ باستمرار بالاتصالات بجميع Thanos Sidecars الموجودة في مراكز البيانات المختلفة. مع كل طلب وارد ، سترسل الطلبات إلى جميع سيارات Thanos Sidecars. إذا انقطع الاتصال ، فستتلقى مجموعة بيانات غير كاملة ، أو ستتلقى ردًا "الكتلة لا تعمل".

في VictoriaMetrics ، الأمور أبسط قليلاً. بالنسبة للإصدار أحادي العقدة ، ما عليك سوى تشغيل ثنائي واحد ويعمل كل شيء.

في الإصدار العنقودي ، يكفي تشغيل جميع الأنواع الثلاثة المذكورة أعلاه من المكونات بأي كمية تحتاجها أو تستخدمها لأتمتة إطلاق المكونات في Kubernetes. نحن نخطط أيضًا لإنشاء مشغل Kubernetes. لا يغطي مخطط الدفة بعض الحالات ويسمح لك بإطلاق النار على قدمك. على سبيل المثال ، يسمح لك بتقليل عدد عقد التخزين ، مما سيؤدي إلى فقدان البيانات.

بعد أن تقوم بتشغيل إصدار ثنائي أو مجمع ، تحتاج فقط إلى الإضافة إلى تهيئة Prometheus بحيث يبدأ في كتابة البيانات بالتوازي مع التخزين المحلي والتخزين البعيد. كما ترى ، يجب أن يعمل هذا التكوين بشكل أكثر موثوقية من تكوين Thanos. لا نحتاج إلى الاحتفاظ باتصال من VictoriaMetrics لجميع بروميثيوس ، لأن بروميثيوس أنفسهم يتصلون بـ VictoriaMetrics وينقلون البيانات.

ضع في اعتبارك دعم Thanos و VictoriaMetrics.

يحتاج ثانوس إلى مراقبة Sidecar حتى لا يتوقفوا عن تحميل البيانات إلى تخزين الكائنات. قد يوقفون تنزيل البيانات هذا بسبب أخطاء التنزيل ، على سبيل المثال ، فُقد اتصال الشبكة بتخزين الكائنات مؤقتًا ، أو أن تخزين الكائنات غير متاح مؤقتًا. سوف يلاحظ Thanos Sidecar هذا في هذه المرحلة ، ويبلغ عن خطأ ، وقد يتعطل ثم يتوقف عن العمل. إذا لم تقم بمراقبتها ، فلن يتم نقل بياناتك بعد ذلك إلى تخزين الكائنات. إذا مر وقت الاستبقاء (يوصى بـ 6-8 ساعات) ، فستفقد البيانات التي لم تدخل في تخزين الكائنات.

قد تتوقف ضواغط Thanos عن العمل بسبب . يأخذ الضاغطون البيانات من تخزين الكائنات ويدمجونها في أجزاء أكبر من البيانات. نظرًا لأن الضاغطات غير متزامنة مع Sidecars ، فقد يحدث ما يلي: لم يتح لـ Sidecar الوقت لإضافة الكتلة حتى الآن ، قررت شركة Compactor أن هذه الكتلة قد تمت كتابتها بالكامل. يبدأ المطحنة بقراءته. يقرأ الكتلة بشكل غير كامل ويتوقف عن العمل. انظر التفاصيل .

قد تعرض Store Gateway بيانات غير متسقة بسبب السباقات بين Compactor و Sidecars. إنه نفس الشيء هنا ، لأن Store Gateway غير متزامنة مع Compactors و Sidecars بأي شكل من الأشكال. وفقًا لذلك ، قد تحدث ظروف السباق عندما لا ترى Store Gateway جزءًا من البيانات ، أو ترى بيانات إضافية.

يُرجع مكون الاستعلام في ثانوس نتيجة جزئية بشكل افتراضي إذا كانت بعض Sidecars أو بوابات المتجر غير متوفرة في الوقت الحالي. سوف تتلقى بعض البيانات ، ولن تعرف حتى أنك لم تتلقى جميع البيانات. هذه هي الطريقة التي يعمل بها بشكل افتراضي. في حالة مماثلة ، تقوم VictoriaMetrics بإرجاع البيانات المصنفة على أنها جزئية.

على عكس ثانوس ، نادرًا ما تفقد VictoriaMetrics البيانات. حتى إذا تم قطع الاتصال من Prometheus إلى VictoriaMetrics ، فهذه ليست مشكلة ، حيث يستمر Prometheus في كتابة البيانات الجديدة الواردة إلى Write Ahead Log ، والتي تستغرق ساعتين. إذا قمت باستعادة الاتصال بـ VictoriaMetrics في غضون ساعتين ، فلن تضيع البيانات. بروميثيوس .

على عكس Thanos ، الذي يكتب البيانات إلى تخزين الكائنات بعد ساعتين فقط ، يقوم Prometheus تلقائيًا بنسخ البيانات عبر بروتوكول الكتابة عن بُعد إلى التخزين البعيد ، مثل VictoriaMetrics. أنت لا تخشى فقدان التخزين المحلي في بروميثيوس. إذا فقد التخزين المحلي فجأة ، فستفقد الثواني الأخيرة من البيانات التي لم يكن لديك وقت للكتابة إلى التخزين البعيد في أسوأ الحالات.

يدير Kubernetes المجموعة تلقائيًا بخلاف ثانوس. من الصعب وضع جميع مكونات Thanos في مجموعة Kubernetes واحدة ، على عكس مكونات مجموعة VictoriaMetrics.

VictoriaMetrics لديها ترقية سهلة للغاية للإصدار الجديد. فقط أوقف VictoriaMetrics ، وقم بتحديث الثنائيات وابدأ. عند التوقف عن طريق إشارة SIGINT ، تقوم جميع ثنائيات VictoriaMetrics بإيقاف التشغيل بشكل رائع. يقومون بتخزين البيانات الضرورية بشكل صحيح ، وإغلاق الاتصالات الواردة بشكل صحيح حتى لا تفقد أي شيء. لذلك لن تفقد أي شيء عند الترقية.

من السهل جدًا على VictoriaMetrics توسيع الكتلة. فقط أضف المكونات الضرورية واستمر في العمل.

حول المزالق في Thanos و VictoriaMetrics.

يواجه ثانوس المزالق التالية. يجب أن يقوم بروميثيوس بتخزين البيانات لآخر ساعتين. إذا ضاعوا ، فستفقدهم تمامًا ، حيث لم يكن لديهم الوقت للكتابة إلى Object Storage ، مثل S3.

يمكن أن يستغرق مكون Store Gateway ومكون الضاغط الكثير من الذاكرة للتعامل مع تخزين الكائنات الكبير إذا كان هناك العديد من الملفات الصغيرة المخزنة هناك. كلما زاد عدد الملفات وحجمها ، زادت ذاكرة الوصول العشوائي التي تتطلبها بوابة المتجر والضاغط لتخزين معلومات التعريف. لدى ثانوس الكثير من المشكلات حول ماذا .

يتم الإعلان عن Thanos على أنه قادر على التوسع إلى أجل غير مسمى من خلال عدد بروميثيوس لديك. في الواقع، هذا ليس صحيحا. نظرًا لأن جميع الطلبات تمر عبر مكون الاستعلام ، والذي يجب أن يستقصي جميع مكونات بوابة المتجر وجميع مكونات Sidecar بالتوازي ، فاستخرج البيانات من هناك ثم معالجتها مسبقًا. من الواضح أن معدل الطلبات محدود بسبب أبطأ رابط ضعيف أو أبطأ بوابة تخزين أو أبطأ Sidecar.
قد يتم تحميل هذه المكونات بشكل غير متساو. على سبيل المثال ، لديك بروميثيوس ، الذي يجمع ملايين المقاييس في الثانية. وهناك بروميثيوس الذي يجمع آلاف المقاييس في الثانية. يقوم Prometheus ، الذي يجمع ملايين المقاييس في الثانية ، بتحميل الخادم الذي يعمل عليه أكثر من ذلك بكثير. وفقًا لذلك ، يكون Sidecar أبطأ هناك. وبشكل عام ، كل شيء هناك بطيء. وسيسحب مكون الاستعلام البيانات ببطء شديد من هناك. وفقًا لذلك ، سيكون أداء مجموعتك بالكامل مقيدًا بواسطة Sidecar البطيء.

بشكل افتراضي ، تُرجع Thanos بيانات جزئية إذا كانت بعض Sidecars وإما بوابات المتجر غير متوفرة. على سبيل المثال ، إذا كان لديك Sidecars منتشرة حول العالم في مراكز بيانات مختلفة ، فإن احتمال انقطاع المكونات وعدم توفرها يزداد بشكل كبير. وفقًا لذلك ، في معظم الحالات ، ستتلقى بيانات جزئية دون معرفة ذلك.

VictoriaMetrics لديها أيضا مزالق. الخطأ الأول هو خيار يحد من مقدار ذاكرة الوصول العشوائي المستخدمة لذاكرة التخزين المؤقت الخاصة بـ VictoriaMetrics. يتم تعيينه افتراضيًا على 60٪ من ذاكرة الوصول العشوائي على الجهاز حيث تعمل VictoriaMetrics ، أو 60٪ من ذاكرة الوصول العشوائي على جهاز VictoriaMetrics في Kubernetes.
إذا قمت بتغيير هذه القيمة بشكل غير صحيح ، فيمكنك تدمير أداء VictoriaMetrics. على سبيل المثال ، إذا تم تعيين القيمة على قيمة منخفضة جدًا ، فقد لا تتناسب البيانات مع ذاكرة التخزين المؤقت VictoriaMetrics. لهذا السبب ، سيتعين عليها القيام بعمل إضافي وتحميل المعالج بالقرص. إذا جعلت هذا الخيار كبيرًا جدًا ، فإنه يزيد ، أولاً ، احتمالية تعطل VictoriaMetrics بسبب نفاد الذاكرة ، وثانيًا ، سيؤدي ذلك إلى حقيقة أن نظام التشغيل سيحتوي على ذاكرة وصول عشوائي (RAM) قليلة جدًا. ذاكرة للملف مخبأ. وتعتمد VictoriaMetrics على ذاكرة التخزين المؤقت للملفات للأداء. إذا لم يكن ذلك كافيًا ، فيمكن أن يزداد الحمل على القرص بشكل كبير. لذلك ، نصيحة: لا تقم بتغيير المعلمة إلا في حالة الضرورة القصوى.

الخيار الثاني. فترة الاستبقاء هذه هي فترة يتم تعيينها على شهر واحد بشكل افتراضي. هذا هو الوقت الذي تحتفظ فيه VictoriaMetrics بالبيانات. بعد هذه الفترة ، تحذف VictoriaMetrics البيانات.
يقوم العديد من الأشخاص بتشغيل VictoriaMetrics بدون هذا الخيار ويسجلون البيانات لمدة شهر. ثم يتساءلون: لماذا اختفت البيانات عن الشهر السابق؟ لأن فترة الاستبقاء الافتراضية هي شهر واحد. لذلك ، تحتاج إلى معرفة فترة الاستبقاء الصحيحة وتعيينها.

لنستعرض الميزات الفريدة.

لدى ثانوس ميزة تسمى الاختزال: فواصل زمنية مدتها 5 دقائق وكل ساعة ، وهي غالبًا . إذا بحثت في google ونظرت إلى مشكلتهم على github ، فهناك الكثير من المشكلات المتعلقة بالاختزال ، والتي لا تعمل في بعض الأحيان بشكل صحيح ، أو لا تعمل كما يتوقع المستخدمون.

ثانوس لديه خاصية إلغاء البيانات المكررة لأزواج بروميثيوس إتش إيه. عندما يجمع اثنان من بروميثيوس نفس المقاييس من نفس الأهداف ويضيفها ثانوس إلى تخزين الكائنات. يمكن لـ Thanos استنتاج هذه البيانات بشكل صحيح ، على عكس VictoriaMetrics.

يحتوي ثانوس على مكون تنبيه كان موجودًا في مخطط ثانوس. لكن هو .

يتمتع Thanos بميزة أن Thanos و Prometheus يشتركان في نفس الرمز. تم تطوير Thanos و Prometheus بواسطة نفس المطورين. مع التحسينات في Thanos أو Prometheus ، يفوز الجانب الآخر.

الميزة الرئيسية لـ VictoriaMetrics هي MetricsQL. هذه هي امتدادات VictoriaMetrics لـ PromQL ، والتي تحدثت عنها في اجتماع المراقبة الكبير السابق.

تدعم VictoriaMetrics تحميل البيانات باستخدام العديد من البروتوكولات المختلفة. لا يمكن لـ VictoriaMetrics تلقي البيانات من بروميثيوس فحسب ، بل أيضًا عبر بروتوكولات Influx و OpenTSDB والجرافيت.

تشغل بيانات VictoriaMetrics مساحة أقل بكثير من Thanos و Prometheus.
عند كتابة بيانات حقيقية ، يتحدث المستخدمون عن تقليل حجم البيانات على القرص بمقدار 2-5 أضعاف مقارنةً ببروميثيوس وثانوس.

ميزة أخرى لـ VictoriaMetrics هي أنها محسّنة للسرعة.

دعنا نتطرق إلى تكلفة البنية التحتية.

تتمثل إحدى مزايا Thanos في أنها تخزن البيانات في تخزين الكائنات ، وهي رخيصة نسبيًا.
عند تخزين البيانات في تخزين الكائنات ، يجب أن تدفع مقابل عمليات كتابة البيانات وقراءتها (10 دولارات لكل مليون عملية). عندما تكتب البيانات إلى وحدة تخزين الكائنات ، فإنك تدفع تكاليف الاستضافة الخاصة بك لتحميل البيانات على الإنترنت ، إذا لم تكن مجموعتك موجودة في AWS - فهي مجانية هناك. عندما تقرأ البيانات ، فإنك تدفع ما بين 10 دولارات و 230 دولارًا مقابل 1 تيرابايت. يمكن أن يكون هذا مهمًا إذا طلبت بشكل متكرر بيانات تاريخية من مجموعة ثانوس.

بالنسبة إلى مجموعة Thanos ، تحتاج إلى الدفع مقابل الخوادم المدمجة ، وبوابة المتجر ، ومكونات الاستعلام التي تتطلب قدرًا كبيرًا من الذاكرة ، ووحدة المعالجة المركزية لكميات كبيرة من البيانات.

VictoriaMetrics لها التكاليف التالية. إذا قمت بتخزين البيانات على محركات الأقراص الثابتة GCE ، فسيظهر 40 دولارًا مقابل 1 تيرابايت. بالنسبة لـ VictoriaMetrics ، تعد محركات الأقراص الثابتة العادية كافية ، ولا توجد حاجة إلى محركات أقراص صلبة ، والتي تكلف خمسة أضعاف. تم تحسين VictoriaMetrics للأقراص الصلبة.

تحتاج VictoriaMetrics إلى خوادم للمكونات: إما أحادية العقدة أو للمكونات المجمعة ، والتي ، على عكس مكونات Thanos ، تتطلب قدرًا أقل من وحدة المعالجة المركزية وذاكرة الوصول العشوائي - على التوالي ، سيكون أرخص.

أمثلة على التنفيذ.

بالنسبة إلى Thanos ، مثال التنفيذ هو Gitlab. يعمل Gitlab بالكامل على Thanos. لكن ليس كل شيء على ما يرام هناك. إذا نظرت إليهم ، ثم يمكنك أن ترى أن لديهم باستمرار بعض : لا توجد ذاكرة كافية لبوابة المتجر أو مكونات الاستعلام. عليهم باستمرار زيادة حجم الذاكرة.
وبسبب هذا ، تزداد تكاليف حل هذه المشكلات.
التنفيذ الثاني ، الذي قد يكون أكثر نجاحًا ، غير محتمل ، الذي بدأ تطوير ثانوس. أطلقوا سراح مصدر ثانوس. غير محتمل هي شركة تطور محركات الألعاب.

لدى VictoriaMetrics أمثلة عامة على التنفيذ وهي:
- منشئ موقع wix
- تطبق Adidas VictoriaMetrics وقدمت عرضًا تقديميًا في PromCon الأخير 2019
- شبكة إعلانات TrafficStars
- Seznam.cz هو محرك بحث تشيكي شهير.
وبعد ذلك ، كانت هناك شركات ليس لها اسم لا يمكنني تسميتها الآن. لم يوافقوا.
- مطور ألعاب رئيسي واحد. أكبر مما هو غير محتمل.
- مطور كبير لبرامج الرسومات.
- بنك روسي كبير.
- الشركة الأوروبية المصنعة لتوربينات الرياح التي اختبرت VictoriaMetrics بنجاح. تقوم هذه الشركة المصنعة بتطبيق VictoriaMetrics لمراقبة بيانات توربينات الرياح بمعدل 50 عينة في الثانية لكل مستشعر. كل توربين هوائي له عدة مئات من أجهزة الاستشعار. لديهم عدة مئات من توربينات الرياح.
- شركات الطيران الروسية التي تريد تطبيق VictoriaMetrics ، لكنها لا تزال غير قادرة على ذلك. نحن في مرحلة التعاقد معهم.
الاستنتاجات.
تحل VictoriaMetrics و Thanos مشاكل مماثلة ، ولكن بطرق مختلفة:
- عرض الاستعلام العام
- التحجيم الأفقي
- الاحتفاظ التعسفي

شكرا لك.
نحن في انتظارك على موقعنا .

يمكن للمستخدمين المسجلين فقط المشاركة في الاستطلاع. ، من فضلك.
ما الذي تستخدمه كمخزن طويل الأجل لبروميثيوس؟
35,3%ثانوس 6
0,0%اللحاء0
0,0%M3DB0
41,2%فيكتوريا ميتريكس7
23,5%أخرى 4
صوت 17 مستخدمين. امتنع 16 مستخدما عن التصويت.
المصدر: www.habr.com
