اختيار مخزن بيانات لـ Prometheus: Thanos vs VictoriaMetrics

أهلاً بكم. يوجد أدناه فك التشفير تقرير من Big Monitoring Meetup 4.

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

سيقارن التقرير ثانوس и فيكتورياميتريكس - مشاريع التخزين طويل الأمد لمقاييس بروميثيوس.

اختيار مخزن بيانات لـ Prometheus: Thanos vs VictoriaMetrics

لعب الفيديو

اختيار مخزن بيانات لـ Prometheus: Thanos vs VictoriaMetrics

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

اختيار مخزن بيانات لـ Prometheus: Thanos vs VictoriaMetrics

حدود بروميثيوس:

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

اختيار مخزن بيانات لـ Prometheus: Thanos vs VictoriaMetrics

حلول لهذه المشاكل / المهام؟

الحلول هي:

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

لأول مرة معلومات عن ثانوس ظهرت على هذا الرابط. تم وصف العمارة ثانوس وكيف يعمل.

اختيار مخزن بيانات لـ Prometheus: Thanos vs VictoriaMetrics

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

اختيار مخزن بيانات لـ Prometheus: Thanos vs VictoriaMetrics

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

اختيار مخزن بيانات لـ Prometheus: Thanos vs VictoriaMetrics

يدعم ثانوس PromQL و بروميثيوس الاستعلام عن API.

اختيار مخزن بيانات لـ Prometheus: Thanos vs VictoriaMetrics

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

اختيار مخزن بيانات لـ Prometheus: Thanos vs VictoriaMetrics

تم تطوير Thanos بواسطة نفس مطوري Prometheus.

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

اختيار مخزن بيانات لـ Prometheus: Thanos vs VictoriaMetrics

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

اختيار مخزن بيانات لـ Prometheus: Thanos vs VictoriaMetrics

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

اختيار مخزن بيانات لـ Prometheus: Thanos vs VictoriaMetrics

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

اختيار مخزن بيانات لـ Prometheus: Thanos vs VictoriaMetrics

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

اختيار مخزن بيانات لـ Prometheus: Thanos vs VictoriaMetrics

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

اختيار مخزن بيانات لـ Prometheus: Thanos vs VictoriaMetrics

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

اختيار مخزن بيانات لـ Prometheus: Thanos vs VictoriaMetrics

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

اختيار مخزن بيانات لـ Prometheus: Thanos vs VictoriaMetrics

في نفس يونيو 2019 ، أرسلوا رقم الطلب 256 в مؤسسة الحوسبة السحابية الأصلية.

اختيار مخزن بيانات لـ Prometheus: Thanos vs VictoriaMetrics

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

اختيار مخزن بيانات لـ Prometheus: Thanos vs VictoriaMetrics

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

اختيار مخزن بيانات لـ Prometheus: Thanos vs VictoriaMetrics

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

اختيار مخزن بيانات لـ Prometheus: Thanos vs VictoriaMetrics

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

اختيار مخزن بيانات لـ Prometheus: Thanos vs VictoriaMetrics

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

اختيار مخزن بيانات لـ Prometheus: Thanos vs VictoriaMetrics

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

اختيار مخزن بيانات لـ Prometheus: Thanos vs VictoriaMetrics

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

اختيار مخزن بيانات لـ Prometheus: Thanos vs VictoriaMetrics

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

اختيار مخزن بيانات لـ Prometheus: Thanos vs 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.

اختيار مخزن بيانات لـ Prometheus: Thanos vs VictoriaMetrics

الآن دعنا نقارن مع مخطط VictoriaMetrics.

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

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

اختيار مخزن بيانات لـ Prometheus: Thanos vs VictoriaMetrics

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

اختيار مخزن بيانات لـ Prometheus: Thanos vs VictoriaMetrics

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

اختيار مخزن بيانات لـ Prometheus: Thanos vs VictoriaMetrics

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

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

اختيار مخزن بيانات لـ Prometheus: Thanos vs VictoriaMetrics

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

بعد تثبيت Thanos Sidecar ، يجب عليك تثبيت مكونين لكل مجموعة تخزين كائنات. هذه هي Thanos Compactor و Thanos Store Gateway.

اختيار مخزن بيانات لـ Prometheus: Thanos vs VictoriaMetrics

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

قد تكون هناك مشكلة صغيرة هنا.

اختيار مخزن بيانات لـ Prometheus: Thanos vs VictoriaMetrics

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

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

اختيار مخزن بيانات لـ Prometheus: Thanos vs VictoriaMetrics

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

اختيار مخزن بيانات لـ Prometheus: Thanos vs VictoriaMetrics

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

اختيار مخزن بيانات لـ Prometheus: Thanos vs VictoriaMetrics

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

اختيار مخزن بيانات لـ Prometheus: Thanos vs VictoriaMetrics

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

اختيار مخزن بيانات لـ Prometheus: Thanos vs VictoriaMetrics

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

اختيار مخزن بيانات لـ Prometheus: Thanos vs VictoriaMetrics

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

اختيار مخزن بيانات لـ Prometheus: Thanos vs VictoriaMetrics

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

اختيار مخزن بيانات لـ Prometheus: Thanos vs VictoriaMetrics

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

اختيار مخزن بيانات لـ Prometheus: Thanos vs VictoriaMetrics

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

اختيار مخزن بيانات لـ Prometheus: Thanos vs VictoriaMetrics

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

اختيار مخزن بيانات لـ Prometheus: Thanos vs VictoriaMetrics

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

اختيار مخزن بيانات لـ Prometheus: Thanos vs VictoriaMetrics

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

اختيار مخزن بيانات لـ Prometheus: Thanos vs VictoriaMetrics

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

اختيار مخزن بيانات لـ Prometheus: Thanos vs VictoriaMetrics

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

اختيار مخزن بيانات لـ Prometheus: Thanos vs VictoriaMetrics

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

اختيار مخزن بيانات لـ Prometheus: Thanos vs VictoriaMetrics

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

اختيار مخزن بيانات لـ Prometheus: Thanos vs VictoriaMetrics

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

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

اختيار مخزن بيانات لـ Prometheus: Thanos vs VictoriaMetrics

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

اختيار مخزن بيانات لـ Prometheus: Thanos vs VictoriaMetrics

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

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

اختيار مخزن بيانات لـ Prometheus: Thanos vs VictoriaMetrics

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

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

اختيار مخزن بيانات لـ Prometheus: Thanos vs VictoriaMetrics

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

اختيار مخزن بيانات لـ Prometheus: Thanos vs VictoriaMetrics

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

اختيار مخزن بيانات لـ Prometheus: Thanos vs VictoriaMetrics

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

اختيار مخزن بيانات لـ Prometheus: Thanos vs VictoriaMetrics

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

اختيار مخزن بيانات لـ Prometheus: Thanos vs VictoriaMetrics

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

اختيار مخزن بيانات لـ Prometheus: Thanos vs VictoriaMetrics

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

اختيار مخزن بيانات لـ Prometheus: Thanos vs VictoriaMetrics

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

اختيار مخزن بيانات لـ Prometheus: Thanos vs VictoriaMetrics

تشغل بيانات VictoriaMetrics مساحة أقل بكثير من Thanos و Prometheus.

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

اختيار مخزن بيانات لـ Prometheus: Thanos vs VictoriaMetrics

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

اختيار مخزن بيانات لـ Prometheus: Thanos vs VictoriaMetrics

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

اختيار مخزن بيانات لـ Prometheus: Thanos vs VictoriaMetrics

تتمثل إحدى مزايا Thanos في أنها تخزن البيانات في تخزين الكائنات ، وهي رخيصة نسبيًا.

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

اختيار مخزن بيانات لـ Prometheus: Thanos vs VictoriaMetrics

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

اختيار مخزن بيانات لـ Prometheus: Thanos vs VictoriaMetrics

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

اختيار مخزن بيانات لـ Prometheus: Thanos vs VictoriaMetrics

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

اختيار مخزن بيانات لـ Prometheus: Thanos vs VictoriaMetrics

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

اختيار مخزن بيانات لـ Prometheus: Thanos vs VictoriaMetrics

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

وبسبب هذا ، تزداد تكاليف حل هذه المشكلات.

التنفيذ الثاني ، الذي قد يكون أكثر نجاحًا ، غير محتمل ، الذي بدأ تطوير ثانوس. أطلقوا سراح مصدر ثانوس. غير محتمل هي شركة تطور محركات الألعاب.

اختيار مخزن بيانات لـ Prometheus: Thanos vs VictoriaMetrics

لدى VictoriaMetrics أمثلة عامة على التنفيذ وهي:

  • منشئ موقع wix
  • تطبق Adidas VictoriaMetrics وقدمت عرضًا تقديميًا في PromCon الأخير 2019
  • شبكة إعلانات TrafficStars
  • Seznam.cz هو محرك بحث تشيكي شهير.

وبعد ذلك ، كانت هناك شركات ليس لها اسم لا يمكنني تسميتها الآن. لم يوافقوا.

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

اختيار مخزن بيانات لـ Prometheus: Thanos vs VictoriaMetricsالاستنتاجات.

تحل VictoriaMetrics و Thanos مشاكل مماثلة ، ولكن بطرق مختلفة:

  • عرض الاستعلام العام
  • التحجيم الأفقي
  • الاحتفاظ التعسفي

اختيار مخزن بيانات لـ Prometheus: Thanos vs VictoriaMetrics

شكرا لك.

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

اختيار مخزن بيانات لـ Prometheus: Thanos vs VictoriaMetrics

يمكن للمستخدمين المسجلين فقط المشاركة في الاستطلاع. تسجيل الدخول، من فضلك.

ما الذي تستخدمه كمخزن طويل الأجل لبروميثيوس؟

  • 35,3%ثانوس 6

  • 0,0%اللحاء0

  • 0,0%M3DB0

  • 41,2%فيكتوريا ميتريكس7

  • 23,5%أخرى 4

صوت 17 مستخدمين. امتنع 16 مستخدما عن التصويت.

المصدر: www.habr.com

شراء استضافة موثوقة للمواقع مع حماية DDoS وخوادم VPS VDS 🔥 اشترِ استضافة مواقع ويب موثوقة مع حماية من هجمات DDoS، وخوادم VPS وVDS | ProHoster