سب کو سلام. ذیل میں نقل ہے۔
رپورٹ میں ایک موازنہ شامل ہوگا۔
سب سے پہلے، میں آپ کو پرومیتھیس کے بارے میں بتاؤں گا۔ یہ ایک مانیٹرنگ سسٹم ہے جو مخصوص اہداف سے میٹرکس اکٹھا کرتا ہے اور انہیں مقامی اسٹوریج میں محفوظ کرتا ہے۔ Prometheus ریموٹ سٹوریج میں میٹرکس کو ریکارڈ کر سکتا ہے اور انتباہات اور ریکارڈنگ کے اصول بنا سکتا ہے۔
Prometheus حدود:
- اس میں عالمی استفسار کا نظریہ نہیں ہے۔ یہ تب ہوتا ہے جب آپ کے پاس پرومیٹیس کے متعدد آزاد واقعات ہوتے ہیں۔ وہ میٹرکس جمع کرتے ہیں۔ اور آپ ان تمام میٹرکس کے اوپر استفسار کرنا چاہتے ہیں جو مختلف پرومیتھیس مثالوں سے جمع کیے گئے ہیں۔ پرومیتھیس اس کی اجازت نہیں دیتا۔
- prometheus کے ساتھ، کارکردگی صرف ایک سرور تک محدود ہے۔ Prometheus خود بخود متعدد سرورز میں پیمانہ نہیں ہوتا ہے۔ آپ اپنے اہداف کو صرف ایک سے زیادہ Prometheus کے درمیان دستی طور پر تقسیم کر سکتے ہیں۔
- Prometheus میں میٹرکس کا دائرہ صرف ایک سرور تک محدود ہے اسی وجہ سے یہ متعدد سرورز میں خود بخود پیمانے نہیں کر سکتا۔
- Prometheus میں ڈیٹا کی حفاظت کو منظم کرنا اتنا آسان نہیں ہے۔
ان مسائل/چیلنجز کا حل؟
حل یہ ہیں:
یہ تمام حل Prometheus کے ذریعے جمع کیے گئے ڈیٹا کے ریموٹ اسٹوریج کے لیے ہیں۔ وہ پچھلی سلائیڈ سے ریموٹ اسٹوریج کے مسئلے کو مختلف طریقوں سے حل کرتے ہیں۔ اس پریزنٹیشن میں میں صرف پہلے دو حلوں کے بارے میں بات کروں گا:
کے بارے میں پہلی بار معلومات
تھانوس اس ڈیٹا کو لیتا ہے جسے پرومیتھیس نے مقامی ڈسک میں محفوظ کیا تھا اور اسے S3 پر کاپی کرتا ہے۔
اس طرح تھانوس ایک عالمی سوال کا منظر پیش کرتا ہے۔ آپ متعدد Prometheus مثالوں سے آبجیکٹ اسٹوریج میں ذخیرہ شدہ ڈیٹا سے استفسار کرسکتے ہیں۔
Thanos PromQL کی حمایت کرتا ہے اور
Thanos ڈیٹا کو ذخیرہ کرنے کے لیے Prometheus کوڈ کا استعمال کرتا ہے۔
تھانوس کو انہی ڈویلپرز نے تیار کیا ہے جو پرومیتھیس ہے۔
کے بارے میں
VictoriaMetrics کئی پرومیٹیس سے ڈیٹا حاصل کرتا ہے۔
VictoriaMetrics ایک عالمی استفسار کا منظر فراہم کرتا ہے، کیونکہ متعدد Prometheus مثالیں ایک VictoriaMetrics کو ڈیٹا لکھ سکتی ہیں۔ اس کے مطابق، آپ اس تمام ڈیٹا پر سوالات کر سکتے ہیں۔
VictoriaMetrics بھی سپورٹ کرتا ہے، جیسے Thanos، PromQL اور Prometheus querying API۔
Thanos کے برعکس، VictoriaMetrics سورس کوڈ شروع سے لکھا گیا ہے اور رفتار اور وسائل کے استعمال کے لیے موزوں ہے۔
VictoriaMetrics، Thanos کے برعکس، عمودی اور افقی طور پر پیمانہ بناتا ہے۔ کھاؤ
تھانوس کی تاریخ نومبر 2017 میں شروع ہوئی، جب پہلی عوامی کمٹ نمودار ہوئی۔ اس سے پہلے تھانوس کو اندرونی طور پر تیار کیا گیا تھا۔
جون 2019 میں ایک تاریخی ریلیز 0.5.0 تھی، جس میں
اسی جون 2019 میں، انہوں نے درخواست نمبر بھیجا۔
اور چند مہینوں کے بعد تھانوس کو قبول کر لیا گیا۔
جنوری 2018 میں، وکٹوریہ میٹرکس کی ترقی شروع ہوئی۔
ستمبر 2018 میں، میں نے پہلی بار عوامی طور پر وکٹوریہ میٹرکس کا ذکر کیا۔
دسمبر 2018 میں، ایک سنگل نوڈ ورژن شائع ہوا تھا۔
مئی 2019 میں
جون 2019 میں، تھانوس کی طرح، ہم نے نمبر کے تحت CNCF فاؤنڈیشن کو ایک درخواست جمع کرائی
لیکن، بدقسمتی سے، ہمیں ابھی تک وہاں قبول نہیں کیا گیا ہے۔ کمیونٹی کی مدد کی ضرورت ہے۔
آئیے تھانوس اور وکٹوریہ میٹرکس کے فن تعمیر کو دکھانے والی اہم ترین سلائیڈوں کو دیکھتے ہیں۔
آئیے تھانوس کے ساتھ شروع کریں۔ پیلے رنگ کے اجزاء پرومیتھیس کے اجزاء ہیں۔ باقی سب کچھ تھانوس کے اجزاء ہیں۔ آئیے سب سے اہم جزو کے ساتھ شروع کریں۔ Thanos Sidecar ایک جزو ہے جو ہر Prometheus کے ساتھ نصب ہوتا ہے۔ یہ پرومیتھیس ڈیٹا کو مقامی اسٹوریج سے S3 یا کسی اور آبجیکٹ اسٹوریج میں لوڈ کرتا ہے۔
Thanos Store Gateway نامی ایک جزو بھی ہے، جو Thanos Query سے آنے والی درخواستوں پر آبجیکٹ اسٹوریج سے اس ڈیٹا کو پڑھ سکتا ہے۔ Thanos Query PromQL اور Prometheus API کو نافذ کرتا ہے۔ یعنی باہر سے یہ Prometheus جیسا لگتا ہے۔ پروم کیو ایل کے سوالات وصول کرتا ہے، انہیں تھانوس اسٹور گیٹ وے پر بھیجتا ہے، تھانوس اسٹور گیٹ وے آبجیکٹ اسٹوریج سے ضروری ڈیٹا بازیافت کرتا ہے، اسے واپس بھیجتا ہے۔
لیکن ہم Thanos Sidecar کے نفاذ کی ایک خصوصیت کی وجہ سے آخری دو گھنٹوں کے بغیر آبجیکٹ اسٹوریج میں ڈیٹا اسٹور کرتے ہیں، جو آبجیکٹ اسٹوریج S3 پر آخری دو گھنٹے اپ لوڈ نہیں کر سکتا، کیونکہ Prometheus نے ابھی تک مقامی اسٹوریج میں ان دو گھنٹوں کے لیے فائلیں نہیں بنائی ہیں۔
آپ نے اس کے ارد گرد حاصل کرنے کا فیصلہ کیسے کیا؟ Thanos Query، Thanos Store Gateway کی درخواستوں کے علاوہ، ہر Thanos Sidecar کو متوازی درخواستیں بھیجتا ہے، جو Prometheus کے ساتھ واقع ہے۔
اور Thanos Sidecar، بدلے میں، پراکسیوں نے Prometheus سے مزید درخواستیں کیں، اور پچھلے دو گھنٹوں کا ڈیٹا بازیافت کیا۔
ان اجزاء کے علاوہ، ایک اختیاری جزو بھی ہے جس کے بغیر Thanos اچھی کارکردگی کا مظاہرہ نہیں کرے گا۔ یہ Thanos Compact ہے، جو آبجیکٹ اسٹوریج پر موجود چھوٹی فائلوں کو بڑی فائلوں میں ضم کرنے کے لیے ذمہ دار ہے جنہیں Thanos Sidecars نے یہاں اپ لوڈ کیا تھا۔ Thanos Sidecar وہاں دو گھنٹے میں ڈیٹا فائلیں اپ لوڈ کرتا ہے۔ یہ فائلیں، اگر ان کو بڑی فائلوں میں ضم نہ کیا جائے، تو ان کی تعداد بہت زیادہ بڑھ سکتی ہے۔ اس طرح کی فائلیں جتنی زیادہ ہوں گی، تھانوس اسٹور گیٹ وے کے لیے اتنی ہی زیادہ میموری کی ضرورت ہوگی، نیٹ ورک اور میٹا ڈیٹا پر ڈیٹا کی منتقلی کے لیے اتنے ہی زیادہ وسائل کی ضرورت ہوگی۔ تھانوس سٹور گیٹ وے غیر موثر ہو گیا۔ لہذا، Thanos Compact کو چلانا ضروری ہے، جو چھوٹی فائلوں کو بڑی فائلوں میں ضم کرتا ہے، تاکہ ایسی فائلیں کم ہوں اور Thanos اسٹور گیٹ وے پر اوور ہیڈ کو کم کیا جاسکے۔
Thanos حکمران کے طور پر اس طرح کا ایک جزو بھی ہے. یہ پرومیتھیس الرٹ کرنے کے قواعد پر عملدرآمد کرتا ہے اور ڈیٹا کو آبجیکٹ اسٹوریج پر واپس لکھنے کے لیے پرومیٹیس ریکارڈنگ کے قواعد کا جائزہ لے سکتا ہے۔ لیکن اس جزو کو استعمال کرنے کی سفارش نہیں کی جاتی ہے، کیونکہ... وہ
یہ تھانوس کی سادہ اسکیم ہے۔
اب آئیے اس کا موازنہ وکٹوریہ میٹرکس اسکیم سے کرتے ہیں۔
وکٹوریہ میٹرکس کے 2 ورژن ہیں: سنگل نوڈ اور کلسٹر ورژن۔ سنگل نوڈ ایک کمپیوٹر پر چلتا ہے۔ سنگل نوڈ میں یہ اجزاء نہیں ہوتے، صرف ایک بائنری۔ سلائیڈ پر یہ بائنری اس مربع کی طرح نظر آتی ہے۔ ہر وہ چیز جو مربع کے اندر ہے سنگل نوڈ ورژن کے لیے بائنری فائل کا مواد ہے۔ آپ کو اس کے بارے میں جاننے کی ضرورت نہیں ہے۔ آپ صرف بائنری چلاتے ہیں اور سب کچھ ہمارے لیے کام کرتا ہے۔
کلسٹر ورژن زیادہ پیچیدہ ہے۔ اس کے اندر تین مختلف اجزاء ہیں: vmselect، vminsert اور vmstorage۔ ان کے نام سے یہ واضح ہونا چاہئے کہ ان میں سے ہر ایک کیا کرتا ہے۔ Insert جزو مختلف فارمیٹس میں ڈیٹا کو قبول کرتا ہے: Prometheus remote write API، Influx لائن پروٹوکول، Graphite پروٹوکول اور OpenTSDB پروٹوکول سے۔ Insert جزو ان کو قبول کرتا ہے، ان کی تجزیہ کرتا ہے اور انہیں موجودہ سٹوریج کے اجزاء کے درمیان تقسیم کرتا ہے، جہاں ڈیٹا پہلے سے محفوظ ہے۔ سلیکٹ جزو، بدلے میں، PromQL سوالات کو قبول کرتا ہے۔ وہ نافذ کرتا ہے۔
آئیے Thanos اور VictoriaMetrics کو انسٹال کرنے کی پیچیدگی کا موازنہ کریں۔
آئیے تھانوس کے ساتھ شروع کریں۔ Thanos کے ساتھ کام شروع کرنے سے پہلے، آپ کو آبجیکٹ اسٹوریج، جیسے S3 یا GCS میں ایک بالٹی بنانے کی ضرورت ہے، تاکہ Thanos Sidecar اس پر ڈیٹا لکھ سکے۔
پھر ہر Prometheus کے لیے آپ کو Thanos Sidecar انسٹال کرنے کی ضرورت ہے۔ اس سے پہلے، آپ کو Prometheus میں ڈیٹا کمپیکشن کو غیر فعال کرنا یاد رکھنا ہوگا۔ ڈیٹا کمپیکشن وقتاً فوقتاً وسائل کی کھپت کو کم کرنے کے لیے مقامی پرومیتھیس اسٹوریج میں ڈیٹا کو کمپریس کرتا ہے۔
جب آپ اپنے Prometheus پر Thanos Sidecar انسٹال کرتے ہیں، تو آپ کو اس ڈیٹا کمپیکشن کو غیر فعال کرنا چاہیے، کیونکہ Thanos Sidecar ڈیٹا کمپیکشن فعال ہونے کے ساتھ ٹھیک سے کام نہیں کرتا ہے۔ اس کا مطلب ہے کہ آپ کا Prometheus دو گھنٹے کے بلاکس میں ڈیٹا محفوظ کرنا شروع کر دیتا ہے اور ان بلاکس کو بڑے بلاکس میں ضم کرنا بند کر دیتا ہے۔ اس کے مطابق، اگر آپ استفسارات کرتے ہیں جو کہ پچھلے دو گھنٹوں کے دورانیے سے زیادہ ہیں، تو وہ اتنی مؤثر طریقے سے کام نہیں کریں گے جتنا کہ ڈیٹا کمپیکشن فعال ہونے کی صورت میں وہ کام کر سکتے تھے۔
لہذا، Thanos مقامی اسٹوریج میں ڈیٹا کو برقرار رکھنے کے وقت کو 6-8 گھنٹے تک کم کرنے کی سفارش کرتا ہے تاکہ بڑی تعداد میں چھوٹے بلاکس کے اوور ہیڈ کو کم کیا جا سکے۔
Thanos Sidecar انسٹال کرنے کے بعد، آپ کو ہر آبجیکٹ اسٹوریج بالٹی کے لیے دو اجزاء انسٹال کرنے چاہئیں۔ یہ تھانوس کمپیکٹر اور تھانوس اسٹور گیٹ وے ہیں۔
اس کے بعد، آپ کو Thanos Query کو انسٹال کرنے اور اسے کنفیگر کرنے کی ضرورت ہے تاکہ یہ آپ کے پاس موجود تمام Thanos اسٹور گیٹ ویز سے جڑ سکے، اور تمام Thanos Sidecars سے بھی جڑ سکے۔
یہاں کوئی معمولی مسئلہ ہو سکتا ہے۔
آپ کو ان اجزاء سے Thanos Query سے ایک قابل اعتماد اور محفوظ کنکشن ترتیب دینے کی ضرورت ہے۔ اور اگر آپ کا Prometheus مختلف ڈیٹا سینٹرز، یا مختلف VPCs میں واقع ہے، تو باہر سے ان سے رابطہ ممنوع ہے۔ لیکن Thanos Query کے کام کرنے کے لیے، آپ کو کسی نہ کسی طرح وہاں کنکشن کنفیگر کرنے کی ضرورت ہے، اور آپ کو ایک طریقہ نکالنا ہوگا۔
اگر آپ کے پاس اس طرح کے بہت سے ڈیٹا سینٹرز ہیں، تو، اس کے مطابق، پورے نظام کی وشوسنییتا کم ہوتی ہے. چونکہ Thanos Query کو مختلف ڈیٹا سینٹرز میں واقع تمام Thanos Sidecars سے مسلسل رابطے برقرار رکھنے چاہئیں۔ ہر آنے والی درخواست کے لیے، یہ تمام Thanos Sidecars کو درخواستیں بھیجے گا۔ اگر کنکشن میں خلل پڑتا ہے، تو آپ کو یا تو ڈیٹا کا ایک نامکمل سیٹ موصول ہوگا، یا آپ کو "کلسٹر ڈاؤن ہے" جواب موصول ہوگا۔
وکٹوریہ میٹرکس میں سب کچھ تھوڑا آسان ہے۔ سنگل نوڈ ورژن کے لیے، آپ کو صرف ایک بائنری چلانے کی ضرورت ہے اور سب کچھ کام کرتا ہے۔
کلسٹر ورژن میں، مندرجہ بالا تینوں قسم کے اجزاء کو کسی بھی مقدار میں آپ کی ضرورت کے مطابق چلانا، یا استعمال کرنا کافی ہے۔
ایک بائنری یا کلسٹرڈ ورژن لانچ کرنے کے بعد، آپ کو صرف پرومیتھیس کو تشکیل میں شامل کرنے کی ضرورت ہے۔
آئیے Thanos اور VictoriaMetrics کی حمایت پر غور کریں۔
Thanos کو یہ یقینی بنانے کے لیے Sidecar کی نگرانی کرنے کی ضرورت ہے کہ وہ آبجیکٹ اسٹوریج میں ڈیٹا لوڈ کرنا بند نہ کریں۔ وہ ڈاؤن لوڈ کی خرابیوں کی وجہ سے اس ڈیٹا کو ڈاؤن لوڈ روک سکتے ہیں، مثال کے طور پر آبجیکٹ اسٹوریج سے آپ کا نیٹ ورک کنکشن عارضی طور پر منقطع ہے، یا آبجیکٹ اسٹوریج عارضی طور پر دستیاب نہیں ہے۔ Thanos Sidecar اس لمحے اسے محسوس کرے گا، غلطی کی اطلاع دے گا، کریش ہو سکتا ہے اور پھر کام کرنا بند کر دے گا۔ اگر آپ اس کی نگرانی نہیں کرتے ہیں، تو آپ آبجیکٹ اسٹوریج میں ڈیٹا کی منتقلی بند کر دیں گے۔ اگر برقرار رکھنے کا وقت گزر جاتا ہے (6-8 گھنٹے تجویز کیا جاتا ہے)، تو آپ وہ ڈیٹا کھو دیں گے جو آبجیکٹ اسٹوریج میں ختم نہیں ہوا تھا۔
تھانوس کمپیکٹر کی وجہ سے کام کرنا بند ہو سکتا ہے۔
Compactor اور Sidecars کے درمیان ریس کی وجہ سے اسٹور گیٹ وے متضاد ڈیٹا واپس کر سکتا ہے۔ یہاں بھی ایسا ہی ہوتا ہے، کیونکہ اسٹور گیٹ وے کسی بھی طرح سے کمپیکٹرز اور سائیڈ کارس کے ساتھ ہم آہنگ نہیں ہوتا ہے۔ اس کے مطابق، ریس کے حالات اس وقت پیدا ہوسکتے ہیں جب اسٹور گیٹ وے ڈیٹا کا کچھ حصہ نہیں دیکھتا یا غیر ضروری ڈیٹا دیکھتا ہے۔
Thanos میں Query جزو بطور ڈیفالٹ جزوی نتیجہ لوٹاتا ہے اگر اس وقت کچھ سائیڈ کارس یا اسٹور گیٹ ویز دستیاب نہیں ہیں۔ آپ کو ڈیٹا کا کچھ حصہ مل جائے گا، اور آپ کو یہ بھی معلوم نہیں ہوگا کہ آپ کو تمام ڈیٹا موصول نہیں ہوا۔ اس طرح یہ بطور ڈیفالٹ کام کرتا ہے۔ اسی طرح کی صورتحال میں، VictoriaMetrics نشان زد ڈیٹا کو جزوی کے طور پر واپس کرتا ہے۔
Thanos کے برعکس، VictoriaMetrics شاذ و نادر ہی ڈیٹا کھو دیتا ہے۔ یہاں تک کہ اگر Prometheus سے VictoriaMetrics کے کنکشن میں خلل پڑتا ہے، یہ کوئی مسئلہ نہیں ہے، کیونکہ Prometheus آنے والے نئے ڈیٹا کو Write Ahead Log میں ریکارڈ کرتا رہتا ہے، جس کا سائز 2 گھنٹے ہے۔ اگر آپ VictoriaMetrics سے اپنا کنکشن دو گھنٹے کے اندر بحال کرتے ہیں، تو آپ کا ڈیٹا ضائع نہیں ہوگا۔ پرومیتھیس
Thanos کے برعکس، جو صرف دو گھنٹے کے بعد آبجیکٹ سٹوریج پر ڈیٹا لکھتا ہے، Prometheus خود بخود ریموٹ رائٹ پروٹوکول کا استعمال کرتے ہوئے ڈیٹا کو ریموٹ سٹوریج، جیسے VictoriaMetrics میں نقل کرتا ہے۔ آپ Prometheus میں مقامی اسٹوریج کو کھونے سے خوفزدہ نہیں ہیں۔ اگر وہ اچانک مقامی اسٹوریج کھو دیتا ہے، تو بدترین صورت میں آپ آخری سیکنڈ کے ڈیٹا سے محروم ہو جائیں گے جنہیں دور دراز کے اسٹوریج میں ریکارڈ کرنے کا وقت نہیں تھا۔
Thanos کے برعکس Kubernetes خود بخود کلسٹر کا انتظام کرتا ہے۔ تمام Thanos اجزاء کو ایک Kubernetes کلسٹر میں رکھنا مشکل ہے، VictoriaMetrics کلسٹر اجزاء کے برعکس۔
VictoriaMetrics کے پاس نئے ورژن میں ایک بہت ہی آسان اپ ڈیٹ ہے۔ بس VictoriaMetrics کو روکیں، بائنریز کو اپ ڈیٹ کریں اور اسے لانچ کریں۔ SIGINT سگنل کے ذریعے روکے جانے پر، تمام VictoriaMetrics بائنریز ایک شاندار شٹ ڈاؤن انجام دیتی ہیں۔ وہ ضروری ڈیٹا کو صحیح طریقے سے محفوظ کرتے ہیں، آنے والے کنکشنز کو صحیح طریقے سے بند کرتے ہیں تاکہ کچھ بھی ضائع نہ ہو۔ لہذا اپ گریڈ کرتے وقت آپ کو کچھ نہیں کھونا پڑے گا۔
VictoriaMetrics ایک کلسٹر کو بڑھانا بہت آسان بناتا ہے۔ بس ضروری اجزاء شامل کریں اور کام جاری رکھیں۔
Thanos اور VictoriaMetrics میں خرابیوں کے بارے میں۔
تھانوس کو درج ذیل نقصانات ہیں۔ Prometheus کو آخری دو گھنٹے کا ڈیٹا ذخیرہ کرنا چاہیے۔ اگر وہ کھو جاتے ہیں، تو آپ انہیں مکمل طور پر کھو دیں گے، کیونکہ ان کے پاس ابھی تک آبجیکٹ اسٹوریج، جیسے S3 پر لکھنے کا وقت نہیں ہے۔
سٹور گیٹ وے کے جزو اور کمپیکٹر جزو کو ایک بڑے آبجیکٹ اسٹوریج کے ساتھ کام کرنے کے لیے بہت زیادہ میموری کی ضرورت پڑ سکتی ہے اگر وہاں بہت سی چھوٹی فائلیں محفوظ ہوں۔ فائلوں کی تعداد اور سائز جتنی زیادہ ہوگی، میٹینفارمیشن کو اسٹور کرنے کے لیے اسٹور گیٹ وے اور کمپیکٹر ریم کی ضرورت ہوگی۔ تھانوس کے پاس اس حقیقت سے متعلق بہت سارے مسائل ہیں۔
تھانوس کی تشہیر کی جاتی ہے کہ آپ کے پاس موجود پرومیتھیس کی مقدار سے غیر معینہ مدت تک پیمانہ کریں۔ یہ دراصل سچ نہیں ہے۔ چونکہ تمام درخواستیں استفسار کے جزو سے گزرتی ہیں، جس کے لیے بیک وقت تمام سٹور گیٹ وے کے اجزاء اور تمام سائیڈ کار اجزاء کو پول کرنا ضروری ہے، اس لیے وہاں سے ڈیٹا کھینچیں اور پھر اسے پہلے سے پروسیس کریں۔ ظاہر ہے، درخواست کی رفتار سب سے سست کمزور لنک، سب سے سست سٹور گیٹ وے یا سست ترین سائڈ کار کے ذریعے محدود ہے۔
یہ اجزاء غیر مساوی طور پر لوڈ ہوسکتے ہیں۔ مثال کے طور پر، آپ کے پاس Prometheus ہے، جو فی سیکنڈ لاکھوں میٹرکس اکٹھا کرتا ہے۔ اور پرومیتھیس ہے، جو فی سیکنڈ ہزاروں میٹرکس اکٹھا کرتا ہے۔ پرومیتھیس، جو فی سیکنڈ لاکھوں میٹرکس اکٹھا کرتا ہے، جس سرور پر چلتا ہے اس پر بہت زیادہ بوجھ ڈالتا ہے۔ اس کے مطابق، Sidecar وہاں سست کام کرتا ہے. اور عام طور پر وہاں سب کچھ آہستہ آہستہ کام کرتا ہے۔ اور Query جزو وہاں سے ڈیٹا کو بہت آہستہ سے کھینچ لے گا۔ اس کے مطابق، آپ کے پورے کلسٹر کی کارکردگی اس سست سائیڈ کار سے محدود ہو جائے گی۔
پہلے سے طے شدہ طور پر، Thanos جزوی ڈیٹا دیتا ہے اگر کچھ سائیڈ کارز اور یا تو اسٹور گیٹ وے دستیاب نہ ہوں۔ مثال کے طور پر، اگر آپ کے سائڈ کارز دنیا بھر میں مختلف ڈیٹا سینٹرز میں بکھرے ہوئے ہیں، تو کنکشن کی ناکامی اور اجزاء کی عدم دستیابی کا امکان بہت بڑھ جاتا ہے۔ اس کے مطابق، زیادہ تر معاملات میں آپ کو جزوی ڈیٹا حاصل ہو جائے گا یہاں تک کہ اسے جانے بغیر۔
وکٹوریہ میٹرکس میں بھی نقصانات ہیں۔ پہلا نقصان وہ اختیار ہے جو VictoriaMetrics کیشے کے لیے استعمال ہونے والی RAM کی مقدار کو محدود کرتا ہے۔ پہلے سے طے شدہ طور پر، یہ اس مشین کی RAM کے 60% کے برابر ہے جہاں VictoriaMetrics چل رہی ہے یا Kubernetes میں VictoriaMetrics پوڈ کی RAM کے 60% کے برابر ہے۔
اگر آپ اس قدر کو غلط طریقے سے تبدیل کرتے ہیں، تو آپ VictoriaMetrics کی کارکردگی کو خراب کر سکتے ہیں۔ مثال کے طور پر، اگر آپ قدر کو بہت کم سیٹ کرتے ہیں تو، ڈیٹا VictoriaMetrics کیش میں مزید فٹ نہیں ہو سکتا۔ اس کی وجہ سے، اسے اضافی کام کرنا پڑے گا اور پروسیسر اور ڈسک لوڈ کرنا پڑے گا. اگر آپ اس آپشن کو بہت بڑا بناتے ہیں، تو یہ بڑھ جاتا ہے، سب سے پہلے، وکٹوریہ میٹرکس کے میموری کی خرابی کے ساتھ کریش ہونے کا امکان بڑھ جاتا ہے، اور، دوم، یہ اس حقیقت کا باعث بنے گا کہ آپریٹنگ سسٹم کی میموری میں بہت کم RAM باقی رہ جائے گی۔ فائل کیشے. اور VictoriaMetrics کارکردگی کے لیے فائل کیشے پر انحصار کرتا ہے۔ اگر یہ کافی نہیں ہے تو، ڈسک پر بوجھ بہت بڑھ سکتا ہے. لہذا، مشورہ: پیرامیٹر کو تبدیل نہ کریں جب تک کہ بالکل ضروری نہ ہو۔
دوسرا آپشن۔ یہ برقراری کی مدت ہے - ایک مدت جو پہلے سے طے شدہ طور پر 1 ماہ پر سیٹ ہوتی ہے۔ یہ VictoriaMetrics ڈیٹا کو ذخیرہ کرنے کے وقت کی لمبائی ہے۔ اس مدت کے بعد، VictoriaMetrics ڈیٹا کو حذف کر دیتا ہے۔
بہت سے لوگ VictoriaMetrics کو بغیر اس پیرامیٹر کے چلاتے ہیں اور ایک ماہ تک ڈیٹا ریکارڈ کرتے ہیں۔ اور پھر وہ پوچھتے ہیں: پچھلے مہینے کا ڈیٹا کیوں غائب ہوا؟ کیونکہ پہلے سے طے شدہ برقراری کی مدت 1 مہینہ ہے۔ لہذا، آپ کو صحیح برقرار رکھنے کی مدت کو جاننے اور سیٹ کرنے کی ضرورت ہے۔
آئیے منفرد خصوصیات پر ایک نظر ڈالتے ہیں۔
تھانوس میں ایک خصوصیت ہے جسے ڈاؤن سیمپلنگ کہتے ہیں: 5 منٹ اور گھنٹے کے وقفے، جو اکثر
Thanos کے پاس Prometheus HA جوڑوں کے لیے ڈیٹا ڈیپلیکیشن ہے۔ جب دو Prometheus ایک ہی اہداف سے ایک ہی میٹرکس اکٹھا کرتے ہیں اور Thanos انہیں آبجیکٹ اسٹوریج میں اسٹور کرتا ہے۔ Thanos VictoriaMetrics کے برعکس اس ڈیٹا کو صحیح طریقے سے ڈپلیکیٹ کر سکتا ہے۔
Thanos میں ایک الرٹ جزو ہے جو Thanos اسکیمیٹک میں تھا۔ لیکن وہ
تھانوس کو یہ فائدہ ہے کہ تھانوس اور پرومیتھیس ایک ہی کوڈ کا اشتراک کرتے ہیں۔ Thanos اور Prometheus کو ایک ہی ڈویلپرز نے تیار کیا ہے۔ Thanos یا Prometheus میں بہتری کے ساتھ، دوسری طرف جیت جاتی ہے۔
وکٹوریہ میٹرکس کی اہم خصوصیت MetricsQL ہے۔ یہ PromQL کے لیے VictoriaMetrics ایکسٹینشنز ہیں، جن کے بارے میں میں نے پچھلے بڑے مانیٹرنگ میٹ اپ میں بات کی تھی۔
VictoriaMetrics بہت سے مختلف پروٹوکولز کا استعمال کرتے ہوئے ڈیٹا لوڈنگ کی حمایت کرتا ہے۔ VictoriaMetrics نہ صرف Prometheus سے ڈیٹا کو قبول کر سکتا ہے بلکہ Influx, OpenTSDB اور Graphite پروٹوکول کے ذریعے بھی۔
VictoriaMetrics ڈیٹا Thanos اور Prometheus کے مقابلے میں بہت کم جگہ لیتا ہے۔
اگر آپ حقیقی ڈیٹا ریکارڈ کرتے ہیں، تو صارفین پرومیتھیس اور تھانوس کے مقابلے ڈسک پر ڈیٹا کے سائز میں 2-5 گنا کمی کے بارے میں بات کرتے ہیں۔
VictoriaMetrics کا ایک اور فائدہ یہ ہے کہ یہ رفتار کے لیے موزوں ہے۔
آئیے انفراسٹرکچر کی لاگت کو دیکھتے ہیں۔
Thanos کا ایک فائدہ یہ ہے کہ یہ ڈیٹا کو آبجیکٹ اسٹوریج میں محفوظ کرتا ہے جو کہ نسبتاً سستا ہے۔
آبجیکٹ اسٹوریج میں ڈیٹا اسٹور کرتے وقت، آپ کو ڈیٹا لکھنے اور پڑھنے کے آپریشنز ($10 فی ملین آپریشنز) کے لیے ادائیگی کرنی ہوگی۔ جب آپ آبجیکٹ اسٹوریج میں ڈیٹا لکھتے ہیں، تو آپ انٹرنیٹ پر ڈیٹا اپ لوڈ کرنے کے لیے اپنے ہوسٹنگ کے اخراجات ادا کرتے ہیں؛ اگر آپ کا کلسٹر AWS میں نہیں ہے، تو یہ وہاں مفت ہے۔ جب آپ ڈیٹا پڑھتے ہیں، تو آپ $10 اور $230 فی 1TB کے درمیان ادائیگی کرتے ہیں۔ اگر آپ Thanos کلسٹر سے تاریخی ڈیٹا کے بارے میں اکثر استفسار کرتے ہیں تو یہ اہم ہو سکتا ہے۔
تھانوس کلسٹر کے لیے، آپ کو کومپیکٹ، اسٹور گیٹ وے، استفسار کے اجزاء کے لیے سرورز کے لیے ادائیگی کرنے کی ضرورت ہے جن کے لیے بہت زیادہ میموری کی ضرورت ہوتی ہے، اور بڑی مقدار میں ڈیٹا کے لیے CPU۔
VictoriaMetrics کے درج ذیل اخراجات ہیں۔ اگر آپ GCE HDD ڈرائیوز پر ڈیٹا اسٹور کرتے ہیں، تو یہ 40TB کے لیے $1 میں آتا ہے۔ VictoriaMetrics کے لیے، عام HDD ڈرائیوز کافی ہیں؛ کوئی SSDs، جن کی قیمت پانچ گنا زیادہ ہے، کی ضرورت نہیں ہے۔ VictoriaMetrics HDD کے لیے موزوں ہے۔
VictoriaMetrics کو اجزاء کے لیے سرورز کی ضرورت ہوتی ہے: یا تو سنگل نوڈ یا کلسٹرڈ اجزاء، جو کہ Thanos اجزاء کے برعکس، بہت کم CPU اور RAM کی ضرورت ہوتی ہے - اور اس کے مطابق سستی ہوگی۔
نفاذ کی مثالیں۔
تھانوس کی گٹلاب میں عمل درآمد کی مثال موجود ہے۔ گٹلاب مکمل طور پر تھانوس پر چلتا ہے۔ لیکن وہاں سب کچھ اتنا ہموار نہیں ہے۔ اگر آپ ان کو دیکھیں
جس کی وجہ سے ان مسائل کے حل کے اخراجات بڑھ جاتے ہیں۔
دوسرا عمل، جو زیادہ کامیاب ہو سکتا ہے، ناممکن کمپنی ہے، جس نے تھانوس کو تیار کرنا شروع کیا۔ انہوں نے Thanos سورس کوڈ شائع کیا۔ Improbable ایک کمپنی ہے جو گیم انجن تیار کرتی ہے۔
وکٹوریہ میٹرکس کے پاس عوامی نفاذ کی مثالیں ہیں:
- wix.com ویب سائٹ بلڈر
- Adidas VictoriaMetrics کو نافذ کر رہا ہے اور یہاں تک کہ آخری PromCon 2019 میں ایک پریزنٹیشن بھی دی
- ٹریفک اسٹارز - اشتہاری نیٹ ورک
- Seznam.cz ایک مشہور چیک سرچ انجن ہے۔
اور پھر ایسی کمپنیاں تھیں جن کا نام نہیں لے سکتا۔ انہوں نے رضامندی نہیں دی۔
- ایک بڑا گیم ڈویلپر۔ Im Improbable سے بڑا۔
- بڑے گرافکس سافٹ ویئر ڈویلپر۔
- بڑا روسی بینک۔
- یورپی ونڈ ٹربائن بنانے والی کمپنی جس نے وکٹوریہ میٹرکس کا کامیاب تجربہ کیا ہے۔ یہ کارخانہ دار VictoriaMetrics کو لاگو کر رہا ہے تاکہ ونڈ ٹربائنز سے جمع کیے گئے ڈیٹا کو 50 نمونے فی سیکنڈ فی سینسر کی شرح سے مانیٹر کیا جا سکے۔ ہر ونڈ ٹربائن میں کئی سو سینسر ہوتے ہیں۔ ان کے پاس کئی سو ونڈ ٹربائن ہیں۔
- روسی ایئر لائنز جو VictoriaMetrics کو نافذ کرنا چاہتی ہیں، لیکن پھر بھی نہیں کر سکتیں۔ ہم ان کے ساتھ معاہدے کے مرحلے پر ہیں۔
نتیجہ.
VictoriaMetrics اور Thanos اسی طرح کے مسائل حل کرتے ہیں، لیکن مختلف طریقوں سے:
- عالمی استفسار کا منظر
- افقی پیمانے
- من مانی برقراری
آپ کا شکریہ.
ہم اپنے پر آپ کا انتظار کر رہے ہیں۔
سروے میں صرف رجسٹرڈ صارفین ہی حصہ لے سکتے ہیں۔
آپ Prometheus کے لیے طویل مدتی اسٹوریج کے طور پر کیا استعمال کرتے ہیں؟
-
35,3٪تھانوس6
-
0,0٪Cortex0
-
0,0٪M3DB0
-
41,2٪وکٹوریہ میٹرکس 7
-
23,5٪دیگر4
17 صارفین نے ووٹ دیا۔ 16 صارفین غیر حاضر رہے۔
ماخذ: www.habr.com