مقابلات
دزمترى لازيركا، المؤسس المشارك لـ VictoriaMetrics – سلسلة المقابلات

Dzmitry Lazerka، المؤسس المشارك لـ VictoriaMetrics هو مهندس برمجيات مخضرم وقائد تقني يتمتع بخبرة عميقة في التعلم الآلي، وأنظمة البيانات الضخمة، والرصد، والبنية التحتية. قبل تأسيس VictoriaMetrics في عام 2018، عمل كمهندس تعلم آلي في قسم المركبات الذاتية القيادة Level 5 التابع لـ Lyft، حيث ساهم في تطوير أنظمة للتعرف على وتحليل سيناريوهات القيادة الواقعية. في السابق، قاد مشاريع التعلم الآلي وبنية البيانات في Spire Global، وشغل منصب المؤسس المشارك الهندسي في Bellgram، وعمل على أنظمة البيانات والتحليلات في Duetto Research وGoogle عبر EPAM Systems. على مدار مسيرته، بنى لازيركا وأدار مشاريع تشمل القيادة الذاتية، والتنبؤ البحري، والبحث، والتحليلات، ومعالجة البيانات الموزعة، وأنظمة الخلفية عالية القابلية للتوسع.
VictoriaMetrics هي شركة رصد مفتوحة المصدر تبني أدوات لجمع وتخزين واستعلام وتحليل كميات كبيرة من البيانات التشغيلية. بدأت تقنيتها بـ VictoriaMetrics، قاعدة بيانات سلسلة زمنية عالية الأداء وحل مراقبة صُممت للقدرة على التوسع، والاستعلامات السريعة، والتخزين الفعال، وانخفاض العبء التشغيلي، ومنذ ذلك الحين توسعت لتصبح مجموعة رصد أوسع تغطي المقاييس والسجلات والتتبع الموزع عبر VictoriaMetrics وVictoriaLogs وVictoriaTraces. تقدم الشركة أيضًا نشرات سحابية مؤسسية ومُدارة بالكامل، إلى جانب قدرات اكتشاف الشذوذ التي تطبق التعلم الآلي على بيانات السلاسل الزمنية. تدعم منصتها تقنيات تشمل OpenTelemetry، وسير عمل متوافق مع Prometheus، وGrafana، وKubernetes، مما يمنح المؤسسات مرونة دمج VictoriaMetrics في بيئات الرصد القائمة.
قبل تأسيس VictoriaMetrics، عملت على أنظمة البيانات الضخمة والتحليلات والتعلم الآلي عبر Google وSpire Global وقسم المركبات الذاتية القيادة التابع لـ Lyft وشركات ناشئة أخرى. ما الذي دفعك في النهاية لتأسيس VictoriaMetrics، وأي مشكلات من تلك الأدوار السابقة أقنعتك بأن الرصد والرصدية تحتاج إلى نهج مختلف جذريًا؟
قضيت مسيرتي المهنية أعمل مع كميات هائلة من البيانات. في Google وSpire وLyft وشركات أخرى، تتعلم سريعًا أن ما يعمل جيدًا على مقياس واحد يمكن أن يصبح مكلفًا أو صعب التشغيل على مقياس آخر. الرصد يواجه هذه المشكلة بالضبط.
مع نمو البنية التحتية، تنشئ المزيد من المقاييس. تضيف المزيد من الخدمات، والمزيد من النسخ، والمزيد من العلامات حتى يصبح نظام الرصد نفسه فجأة بحاجة إلى كمية كبيرة من البنية التحتية، وهو ما لم يكن منطقيًا بالنسبة لنا. يجب ألا يصبح النظام المصمم لمراقبة بيئة الإنتاج أكثر تعقيدًا وتكلفةً في التشغيل.
هذا ما رآه مؤسساي المشاركان Aliaksandr Valialkin وRoman Khavronenko مباشرة. كان لديهما خبرة في تشغيل Prometheus ومواجهة قيود الذاكرة. إضافة أنظمة مثل Thanos حلّ بعض مشكلات التوسع، لكنه أيضًا أدخل المزيد من المكونات وتعقيدًا تشغيليًا أكبر. ومع InfluxDB، رأينا كيف يمكن لتغيير الترخيص أن يؤثر على قرارات الهندسة بعد أن استثمرت الفرق بالفعل في التقنية.
لذا كانت الفكرة وراء VictoriaMetrics عملية: هل يمكننا بناء قاعدة بيانات سلسلة زمنية تقوم بنفس المهمة باستخدام موارد أقل بشكل كبير وتكون أبسط في التشغيل؟
لم نبدأ بخطة لإنشاء شركة رصد كبيرة. بدأنا بحل مشكلة هندسية.
جعلها مفتوحة المصدر كان جزءًا من ذلك. يمكن للمهندسين تنزيل VictoriaMetrics، وتشغيل أحمال عمل إنتاجية حقيقية عليها ومقارنة النتائج بأنفسهم. لم نكن بحاجة إلى إخبارهم بأنها أسرع أو أكثر كفاءة. يمكنهم قياس ذلك.
هذه هي أفضل طريقة لبناء برمجيات البنية التحتية. إذا كانت التقنية جيدة، يجب أن يتمكن المهندسون من إثبات ذلك بأنفسهم.
يمكن لتكاليف الرصد أن تصبح بهدوء جزءًا كبيرًا من فاتورة السحابة للشركة. أين عادةً ما تتصاعد هذه التكاليف خارج السيطرة، وما هي القرارات المعمارية أو الشرائية التي ترتكبها فرق الهندسة في كثير من الأحيان بشكل خاطئ؟
سأفحص عددية القيم أولاً.
لنفترض أنك تبدأ بمقياس معقول، ثم تضيف علامة ذات قيم محتملة. فجأة، يتحول المقياس الواحد إلى آلاف أو ملايين من السلاسل الزمنية الفريدة. يصبح لدى النظام الآن المزيد من البيانات لاستيعابها وفهرستها وتخزينها واستعلامها، مما ينتج عنه استهلاك أكبر للمعالج والذاكرة والتخزين.
الجزء الصعب هو أن هذا لا يحدث بسبب قرار سيء واحد. إنه يحدث تدريجيًا. أضف المزيد من الخدمات، وحاويات K8s، والعملاء، والعلامات، وتضاعف التكلفة.
المشكلة الثانية هي تخزين كل شيء بنفس الدقة ولمدة زمنية متساوية. ليست كل بيانات الرصد ذات قيمة متساوية. المقاييس التي تحتاجها للتنبيه أو مستوى الخدمة (SLO) تختلف عن بيانات التشخيص عالية الحجم التي قد تنظر إليها مرة واحدة أثناء حادث.
إذا عالجت كل تلك البيانات بنفس الطريقة، ستنتهي بك الأمور إلى دفع أسعار بنية تحتية أو SaaS متميزة لبيانات لا تستدعي ذلك.
لهذا السبب تتعامل بعض الشركات مع الرصد كمشكلة شرائية، متسائلةً أي منصة هي الأسهل للنشر اليوم. أطرح أسئلة مثل: “ماذا يحدث عندما يزداد حجم بيانات التشخيص بمقدار 10 أضعاف؟ ماذا يحدث للعددية؟ ما الذي نخزنه؟ وإلى متى؟ وماذا يحدث للتكلفة؟”
هناك حلول هندسية لهذه المشكلات. على سبيل المثال، باستخدام التجميع المتدفق، يمكنك تجميع المقاييس قبل وصولها إلى التخزين بدلاً من تخزين كل سلسلة زمنية خام وتجميعها لاحقًا. يمكنك فصل أحمال العمل ذات العددية العالية عن الرصد الحاسم للأعمال. يمكنك أيضًا استخدام سياسات احتفاظ ودقة مختلفة حسب قيمة البيانات.
الهدف ليس جمع أقل قدر ممكن من بيانات التشخيص. تحتاج إلى ما يكفي من المعلومات لفهم ما تفعله أنظمتك.
الهدف هو تجنب إنفاق الموارد على جمع ومعالجة وتخزين البيانات بطريقة لا تضيف لك قيمة إضافية.
الرصد هو نظام هندسي. يجب أيضًا هندسة تكلفته.
ذكرت Grammarly أن إثبات المفهوم الخاص بها مع VictoriaMetrics أدى إلى تقليل فاتورة AWS بمقدار 10 أضعاف. عندما تحقق الشركات وفورات على هذا النطاق، ما الذي يتغير فعليًا تحت الغطاء: ضغط البيانات، متطلبات الحوسبة، بنية التخزين، التعقيد التشغيلي، أم مزيج من هذه العوامل؟
إنه مزيج، لكن الضغط وبصمة الموارد هما ما يقومان بمعظم العمل. تستخدم VictoriaMetrics ضغطًا مصممًا خصيصًا لبيانات السلاسل الزمنية، لذا فإن نفس المقاييس تشغل جزءًا صغيرًا من مساحة القرص مقارنة بقاعدة بيانات عامة. بالإضافة إلى ذلك، نعمل بأربعة إلى خمس مرات أقل استهلاكًا للذاكرة RAM مقارنةً بـ Prometheus عند معدلات الإدخال المماثلة، وحتى عشرة أضعاف أقل استهلاكًا للقرص. عندما نفذت Grammarly إثبات المفهوم، ظهر ذلك مباشرة في فاتورة AWS الخاصة بها، لأنهم لم يكونوا فقط يخزنون بيانات أقل؛ بل كانوا يشغلون عددًا أقل من الحالات وأصغر حجمًا للقيام بذلك.
جزء التعقيد التشغيلي مهم أيضًا، لكنه أكثر غير مباشر. كثير من الفرق التي تحسب تكاليف الرصد تنظر فقط إلى بنود التخزين والحوسبة وتغفل عن ساعات الهندسة المستهلكة في تشغيل مجموعة Thanos المكوّنة من خمسة مكونات مقارنةً بملف ثنائي واحد. هذا مال حقيقي؛ لكنه أصعب في تقديره رقمياً.
أصبح Prometheus أساسًا للمراقبة السحابية الأصلية، ومع ذلك تواجه بعض المؤسسات في النهاية قيودًا في التوسع أو التشغيل. ما الذي يدفع عادةً الشركة للبحث عن بدائل تتجاوز نشر Prometheus التقليدي، ومتى تصبح VictoriaMetrics بديلًا منطقيًا؟
يُعد Prometheus ممتازًا في ما صُنع من أجله: محرك جمع وتنبيه على عقدة واحدة. عادةً ما تواجه الفرق جدارًا بطريقتين: إما أن تزداد عددياتها لتتجاوز ما يمكن أن تحتفظ به نسخة واحدة من Prometheus في الذاكرة، أو أنهم يحتاجون إلى الاحتفاظ طويل الأمد والاستعلام العالمي عبر عدة مجموعات، وهو ما لم يُصمم Prometheus للقيام به بمفرده. عندها يضيف الناس Thanos أو Cortex، وغالبًا ما يبدأ الألم التشغيلي عند ذلك. تنتقل من تشغيل ملف تنفيذي واحد إلى تشغيل نظام موزع يحتوي على مُضغط، ومُستعلم، وبوابة تخزين، والعديد من المكونات الأخرى التي قد تتعطل في الساعة الثالثة صباحًا.
تُصبح VictoriaMetrics الخطوة المنطقية التالية لأنها بديلة جاهزة للاستخدام، ليست إعادة هندسة. تُوجه الفرق تكوين جمع Prometheus الحالي إلى VictoriaMetrics وتحتفظ بكل لوحة تحكم Grafana، وكل تنبيه وقاعدة تسجيل أنشأتها مسبقًا. الهجرة هي مجرد تغيير في التكوين، ليست مشروعًا، ويحصلون على القدرة على التوسع دون إضافة خمسة مكونات جديدة لتشغيلها.
نحن نلاحظ أن فرق الهندسة تعيد التفكير فيما إذا كانت تحتاج إلى منصات مراقبة كبيرة ومُدارة بالكامل أم يمكنها بناء مجموعات أكثر كفاءة من مكونات مفتوحة المصدر. هل ترى ذلك كتحول هيكلي أوسع في سوق المراقبة، وإلى أي مدى يفرض المصدر المفتوح ضغطًا على نماذج التسعير التقليدية؟
إنه هيكلي؛ ليس رد فعل مؤقت لسنة ميزانية سيئة. تاريخيًا، كان بائعو المراقبة يحددون الأسعار إما حسب حجم الإدخال أو عدد المضيفين، وهذا النموذج يعمل ضد العميل مع نمو أعماله. كلما نجحت الشركة أكثر، كلما دفعت أكثر، ولا توجد علاقة حقيقية بين السعر والقيمة المقدمة. بدأت فرق الهندسة تحسب الأمر بأنفسها، مدركةً أن مجموعة مفتوحة المصدر مُستضافة ذاتيًا وفعّالة تغير هذه المعادلة تمامًا. ذلك لأن التكلفة تتدرج مع البنية التحتية التي تُشغل فعليًا بدلاً من صيغة القياس التي يتحكم فيها البائع.
هذا يضع ضغطًا حقيقيًا على تسعير الشركات القائمة. عندما تستطيع فريق توجيه تكوين الجمع الحالي إلى بديل مفتوح المصدر وتخفيض الفاتورة بنسبة 60 إلى 80٪ دون فقدان الوظائف، فإن ذلك ليس نقاشًا صعبًا داخليًا. سيستمر البائعون الذين لا يزالون يفرضون رسومًا لكل مضيف أو مقياس مخصص في إلحاق الخسارة بالعملاء الذين لا يجريون هذه الحسابات.
تُضيف بنية تحتية الذكاء الاصطناعي موردًا جديدًا مكلفًا بشكل غير عادي إلى المعادلة: وحدات معالجة الرسومات (GPU). ما الذي يجب على الشركات التي تُجري تدريبًا أو استدلالًا للذكاء الاصطناعي مراقبته إلى جانب استهلاك GPU الأساسي، وأين يمكن للمراقبة الأفضل أن تُترجم مباشرةً إلى خفض تكاليف بنية تحتية الذكاء الاصطناعي؟
استخدام GPU وحده لا يُخبرك بما يكفي.
يمكنك رؤية استهلاك بنسبة 90٪ على لوحة التحكم وتفترض أن كل شيء على ما يرام. لكن ما تريد معرفته حقًا هو: ماذا تفعل وحدة معالجة الرسومات؟
تحتاج إلى النظر بعمق أكبر. ما هي نوى CUDA التي تعمل؟ كيف يتم تخصيص ذاكرة GPU؟ كم من الوقت يُقضى في نقل الذاكرة بدلاً من إجراء الحسابات؟ هل يستخدم عبء العمل نوى Tensor عندما ينبغي ذلك؟ هل GPU هو عنق الزجاجة فعليًا، أم أنه ينتظر البيانات من مكان آخر؟
هذه أسئلة مهمة لأن وحدات معالجة الرسومات مكلفة. عدم الكفاءة الصغيرة المتكررة عبر مئات أو آلاف من وحدات GPU يتحول إلى مبلغ كبير من المال.
على سبيل المثال، إذا كانت وحدات GPU تنتظر لأن خط أنابيب البيانات لا يستطيع إمدادها بسرعة كافية، فإن شراء المزيد من وحدات GPU لن يحل المشكلة. عليك العثور على عنق الزجاجة. الأمر نفسه ينطبق على الذاكرة. إذا خصصت أحمال العمل الذاكرة بشكل غير فعال، فإن الرؤية الأفضل يمكن أن تساعد المهندسين على تعديل حجم الدفعات أو تشغيل المزيد من الأحمال على نفس العتاد.
هنا يصبح المراقبة مثيرة للاهتمام بالنسبة لبنية تحتية الذكاء الاصطناعي. ليس الأمر فقط اكتشاف أن هناك شيء معطلاً. بل يمكن أن يخبرك أين تهدر الحوسبة.
هناك أيضًا مشكلة مراقبة تنشأ عن كل هذا الجمع. يمكن لوحدات GPU توليد الكثير من بيانات التتبع التفصيلية ذات الكثافة العالية. إذا جمعت كل شيء وأرسلته مباشرةً إلى منصة SaaS مكلفة، يمكنك تقليل تكاليف GPU ثم إنفاق جزء من المدخرات على تخزين بيانات المراقبة. لكن ذلك ليس تحسينًا جيدًا.
مع OpenTelemetry ومشاريع مثل OpenLIT، يمكننا الحصول على رؤية أعمق بكثير في أحمال عمل GPU. ثم، باستخدام VictoriaMetrics، يمكننا تجميع البيانات، وإزالة الأبعاد غير المفيدة، والاحتفاظ بالمعلومات التي يحتاجها المهندسون بفعالية.
السؤال المفيد ليس، “ما مدى استخدام وحدات GPU الخاصة بي؟”
إنه، “ما هو العمل المفيد الذي أحصل عليه من وحدات GPU التي أدفع ثمنها؟”
بمجرد أن تتمكن من الإجابة على ذلك، يمكنك البدء في اتخاذ قرارات هندسية وتكلفة أفضل.
تُنشئ وكلاء الذكاء الاصطناعي تحديات مراقبة مختلفة تمامًا عن البرمجيات التقليدية لأن طلبًا واحدًا يمكن أن يُطلق استدعاءات نماذج، واستخدام أدوات، واستعلامات قاعدة بيانات متجهة، وتسليمات، وربما سلاسل طويلة من الإجراءات الذاتية. كيف يجب أن تتطور المراقبة مع تزايد تطبيقات المؤسسات التي تصبح أكثر اعتمادًا على الوكلاء؟
تفترض المراقبة التقليدية أن الطلب يتبع مسارًا متوقعًا إلى حد ما عبر بنيتك التحتية. لا تعمل أحمال العمل الوكيلة بهذه الطريقة. قد يستدعي وكيل واحد نموذجًا، ثم أداة، ثم نموذجًا آخر ويعيد المحاولة ثلاث مرات قبل أن يُعيد أي شيء. كل خطوة من هذه الخطوات تحتاج إلى رؤيتها الخاصة.
أنماط الفشل مختلفة أيضًا. إما أن تستجيب الخدمة التقليدية بشكل صحيح أو لا تستجيب. يمكن للوكيل أن يستجيب بنجاح ومع ذلك يكون خاطئًا أو بطيئًا أو مكلفًا، ولا يظهر أي من ذلك كخطأ نمطي في لوحة تحكم مُصممة للوقت التشغيلي.
الجزء الذي يفاجئ الفرق هو الكاردينالية. يمكن لتدفق عمل وكيل واحد أن يولد مقاييس مرتبطة بمستخدم محدد، أو طلب، أو استدعاء أداة، ويتراكم هذا الحجم بسرعة، خاصةً مع حلقات الاستدعاء المتكرر حيث يواصل المخطط استدعاء نفس الأداة. أي نظام يهدف إلى مراقبة أحمال العمل الوكيلة يجب أن يتعامل مع هذا الحجم دون أن يصبح منحنى التكلفة عموديًا، وهذا هو بالضبط المشكلة التي نحلها. لا تزال المقاييس والسجلات والتتبع هي اللبنات الأساسية الصحيحة. ما يجب تغييره هو الحجم ونموذج التكلفة تحتها.
لقد قامت VictoriaMetrics أيضًا بتطبيق التعلم الآلي وتدفقات العمل المدعومة بالذكاء الاصطناعي على اكتشاف الشذوذ. أين تعتقد أن الذكاء الاصطناعي يمكنه تحسين المراقبة والاستجابة للحوادث اليوم بشكل فعلي، وأين لا يزال الحكم البشري صعب الاستبدال؟
من المهم إبقاء شخص في الحلقة لتوليد الأفكار، وتوجيه التنفيذ، والتحقق من النتائج. بعبارة أخرى، لم يتغير شيء فعليًا مقارنةً بسير العمل التقليدي. ما تغير هو أن قدرات توليد الحلول قد تضاعفت. يمكن لأي شخص الآن إنشاء برمجيات، لكن ذلك لا ينبغي أن يخفض معايير القبول. بل يجب أن يرفعها بشكل كبير.
المساعدة الحقيقية التي يقدمها الذكاء الاصطناعي هي إظهار ما قد يغفله الشخص في الضوضاء، مثل القيم المتطرفة والاتجاهات التي لا تتجاوز عتبة يدوية. في VictoriaMetrics، لدينا سياسة ذكاء اصطناعي داخلية بسيطة: يُسمح للموظفين بأتمتة سير عملهم كما يشاؤون، لكنهم يظلون مسؤولين عن النتيجة النهائية. هذا تقريبًا هو نفس المعيار الذي نطبقه على اكتشاف الشذوذ في بيئة الإنتاج للعميل. يمكن للنموذج الإشارة إلى ذلك، لكن لا يزال على الشخص أن يقرر ما يعنيه وما يجب فعله حيال ذلك.
ظلت VictoriaMetrics مفتوحة المصدر وتتبنى نهجًا ممولًا ذاتيًا وممولًا من العملاء بدلاً من اتباع نموذج الشركة الناشئة التقليدي المدعوم من رأس المال المخاطر. كيف أثر ذلك على طريقة بناء المنتج، وتحديد سعره، واختيار التقنيات التي تظل مفتوحة المصدر؟
إن كوننا ممولين ذاتيًا يغيّر هيكل الحوافز أكثر مما يتوقع الناس. مع عدم وجود مجلس يطلب منا تحقيق رقم ARR في ربع معين، لم نضطر إلى اتخاذ التنازلات التي عادةً ما تصاحب هذا الضغط، مثل إضعاف نسخة المصدر المفتوح لإجبار الأشخاص على الانتقال إلى طبقة مدفوعة، أو تغيير الترخيص كما فعلت InfluxDB أو HashiCorp عندما احتاجوا لحماية إيراداتهم من مزودي السحابة. نسخة VictoriaMetrics OSS هي Apache 2.0 اليوم، ولا نخطط لتغيير ذلك.
الطريقة التي نقرر بها ما يبقى مفتوح المصدر بسيطة: يبقى المحرك الأساسي، وهو ما يحتاجه المهندسون للثقة ببيانات الإنتاج الخاصة بهم، مفتوحًا. نحن نفرض رسومًا على ما تحتاجه الشركة بمجرد أن تعمل على نطاق واسع وتحتاج إلى شخص مسؤول: تعدد المستأجرين، مصادقة المؤسسات، دعم الامتثال، اتفاقية مستوى خدمة CVE، والوصول المباشر إلى المهندسين الذين كتبوا الشيفرة بدلاً من طابور الدعم. التمويل من العملاء يعني أيضًا أن خارطة الطريق تُحدد بناءً على ما يواجهه الناس فعليًا في الإنتاج، وليس بناءً على ما يمكن تمويله في عرض تقديمي.
مع تزايد تقارب المقاييس والسجلات والتتبع، وتليمترية تطبيقات الذكاء الاصطناعي، ومراقبة وحدات معالجة الرسوميات، واكتشاف الشذوذ الآلي، ما هو تصورك لكيفية شكل مجموعة أدوات المراقبة خلال السنوات القليلة القادمة، وماذا سيتوقع فرق الهندسة من المنصات التي ترغب في البقاء ذات صلة؟
تتقارب المجموعة تشغيلياً قبل أن تتقارب كمنتج واحد، وهذا التمييز مهم. معظم الفرق لا تريد منصة موحدة monolithic بواجهة مستخدم واحدة تقفل كل شيء معًا. ما يريدونه هو المقاييس والسجلات والتتبع تعمل على نموذج تشغيلي واحد، ومورد واحد، وقصة ترخيص واحدة، دون الحاجة للتخلي عن القدرة على تشغيل كل إشارة بشكل مستقل إذا كان ذلك ما تحتاجه فريق معين. هذا هو الاتجاه الذي تبنيه VictoriaMetrics. نحن لا نحاول دمج كل شيء في ملف ثنائي واحد. نحن نسعى لضمان أن الإشارات الثلاثة تشترك في نفس المحرك ونفس خصائص الكفاءة، بحيث لا يعني إضافة إشارة ثانية أو ثالثة تبني عبء تشغيلي ثانٍ أو ثالث.
المنصات التي تظل ذات صلة هي تلك التي يمكنها استيعاب تليمترية الذكاء الاصطناعي ومراقبة وحدات معالجة الرسوميات ضمن نفس النموذج دون أن يتعطل منحنى التكلفة. تولد أحمال الذكاء الاصطناعي تليمترية بحجم لم تُصمم له أسعار الترخيص التقليدية لكل مقياس أو لكل مضيف. إما أن تتوقف الفرق عن جمع البيانات التي تحتاجها أو ينمو فاتورة المراقبة أسرع من استثمار الذكاء الاصطناعي الذي من المفترض أن تراقبه. سيتوقع فرق الهندسة أن تتعامل المنصات مع هذا الحجم بنفس الطريقة التي يتوقعون بها أن أي بنية تحتية أخرى تتوسع، دون أن يُطلب منهم إعادة الهندسة أو إعادة التفاوض في كل مرة ينمو فيها الحمل.
شكرًا على المقابلة الرائعة، القراء الذين يرغبون في معرفة المزيد يجب أن يزوروا VictoriaMetrics.












