المكاسب:
- القدرة على فهم الركائز الثلاث لقابلية الملاحظة (القياس والسجل والتتبع) والإشارات الذهبية الأربع وجعل الذكاء الاصطناعي ينشئ استعلامات PromQL وقواعد الإنذار ولوحات المعلومات
- القدرة على منع إجهاد الإنذارات من خلال إبقاء الإنذارات موجهة نحو العمل وعلى درجة الاستعجال المناسبة واختبار الحدود مقابل البيانات التاريخية للنظام الخاص بك
- القدرة على منع تسرب الخصوصية والأسرار عن طريق إخفاء المناطق الحساسة قبل إعطاء السجلات للذكاء الاصطناعي
في حين أن النظام قد يبدو وكأنه يعمل، فإنه قد يموت من الداخل: الذاكرة تمتلئ ببطء، وتزداد أوقات الاستجابة، ويزحف معدل الخطأ. الطريقة الوحيدة لملاحظة ذلك هي مراقبة النظام باستمرار. المفهوم الأكثر تقدمًا هو إمكانية الملاحظة: القدرة على فهم ما يحدث داخل النظام من خلال النظر إلى إشاراته الخارجية. هناك ثلاث ركائز لقابلية المراقبة، ويستخدم محترف DevOps الثلاثة:
- القياس: القيم الرقمية التي يتم قياسها بمرور الوقت - استخدام وحدة المعالجة المركزية وعدد الطلبات ووقت الاستجابة ومعدل الخطأ. "كم ثمن؟" يجيب على السؤال.
- السجل: سجلات الأحداث النصية التي ينتجها النظام — "قام المستخدم بتسجيل الدخول"، "فقد الاتصال بقاعدة البيانات". "ماذا حدث بالضبط؟" يجيب على السؤال.
- التتبع: المسار الذي يتبعه الطلب أثناء المرور من خدمة إلى أخرى داخل النظام ومدة كل خطوة. "أين البطء؟" يجيب على السؤال.
الأدوات الأكثر شيوعًا: Prometheus للمقاييس، Grafana للتصور، Loki/ELK للسجل، Jaeger/OpenTelemetry للتتبع. يتمتع الذكاء الاصطناعي بمهارة كبيرة في كتابة لغات الاستعلام (خاصة PromQL الخاصة بشركة Prometheus)، وقواعد التنبيه، وتكوينات لوحة المعلومات لهذه الأدوات. إنه أيضًا المكان الذي يكون فيه الذكاء الاصطناعي في أقوى حالاته: تلخيص أجزاء كبيرة من السجلات والمقاييس والإبلاغ عن الحالات الشاذة.
دعونا نوضح الفرق بين المراقبة وقابلية المراقبة في جملة واحدة: المراقبة هي طرح أسئلة تعرفها بالفعل ("هل تجاوزت وحدة المعالجة المركزية 90٪؟")؛ القدرة على الملاحظة هي القدرة على طرح أسئلة لم تكن تعرفها بالفعل ("لماذا يحدث هذا البطء الغريب لعميل معين فقط في وقت معين؟"). إن الأنظمة الحديثة معقدة للغاية بحيث لا يمكنك التنبؤ بجميع أنماط الفشل؛ لذلك، تصبح القدرة على جمع المقاييس والسجلات والتتبعات الغنية ثم الاستعلام عنها بعمق - أي إمكانية الملاحظة - أمرًا بالغ الأهمية. هذا هو المكان الذي يلعب فيه الذكاء الاصطناعي دوره عند الإجابة على "السؤال غير المعروف سابقًا": فهو يقوم بسرعة بمسح البيانات الأولية التي لديك، ويقترح الأنماط والشذوذات، ويمكنك الوصول إلى السبب الجذري من خلال التحقق من هذه القرائن.
خطوة بخطوة: ماذا وكيف يتم مراقبتها؟
- اختر المقاييس الصحيحة. في الصناعة، يتم أخذ "أربع إشارات ذهبية" كأساس: زمن الوصول، وحركة المرور، والأخطاء، والتشبع - مدى امتلاء المورد. هذه تلخص صحة معظم الخدمات.
- جمع المقاييس. اسمح للتطبيق بتقديم نقطة نهاية يستطيع بروميثيوس قراءتها.
- إعداد لوحات المعلومات. تصور هذه المقاييس في Grafana.
- كتابة قواعد التنبيه. من سيتم تحذيره عند تجاوز الحد الأدنى وكيف؟
- مركزية السجلات. جعل كافة سجلات الخدمة قابلة للبحث في مكان واحد.
- تقليل الضوضاء. الكثير من الإنذارات تؤدي إلى "إرهاق التنبيه"؛ يختفي المنبه المهم.
نصيحة: يلبي الإنذار الجيد أمرين: أنه قابل للتنفيذ ويتمتع بالأهمية المناسبة. يجب أن يكون المنبه الذي يوقظ شخصًا ما في الساعة الثالثة صباحًا أمرًا يتطلب تدخلًا ليليًا بالفعل. لا توقظ أحدًا لشيء لا يتطلب إجراءً من تلقاء نفسه، مثل "وحدة المعالجة المركزية 70%"؛ عرضه على السبورة.
كيفية كتابة قاعدة التنبيه؟
يتكون التنبيه من ثلاثة مكونات: الحالة (أي مقياس يتجاوز أي حد وإلى متى)، والمدة ("لمدة 5 دقائق" لتجنب إثارة تقلبات مؤقتة)، والأهمية/الإجراء (لمن، ومن خلال أي قناة). ويحدد الذكاء الاصطناعي هذه العناصر الثلاثة ببراعة في السياق الصحيح. على سبيل المثال، تعد ترجمة قاعدة مثل "إنذار بالغ الأهمية إذا تجاوز معدل الخطأ 5% لمدة 5 دقائق" إلى PromQL مهمة لا تستغرق سوى جزء من الثانية بالنسبة للذكاء الاصطناعي - ولكنك تقرر ما إذا كان الحد مناسبًا لنظامك.
تحذير: حدود الإنذار التي يقترحها الذكاء الاصطناعي هي افتراضات عامة. يختلف الحمل الطبيعي لنظامك والتسامح وتأثير العمل. قبل أن تضع عتبة مباشرة في المنتج، عليك أن تنظر إلى بياناتك التاريخية وتسأل "كم مرة تم تفعيل هذه العتبة في الماضي، كم عدد تلك المشاكل التي كانت حقيقية؟" أجب عن السؤال.
خصوصية السجل: تحذير بالغ الأهمية
السجلات هي مصدر التسريبات الذي يتم التغاضي عنه بشكل متكرر. قد يحتوي سطر السجل بطريق الخطأ على كلمة مرور أو رقم بطاقة ائتمان أو بيانات شخصية (بموجب KVKK/GDPR). عند لصق السجلات في الذكاء الاصطناعي لتحليلها:
- قناع المناطق الحساسة. استبدل القيم مثل الرمز المميز وكلمة المرور والبريد الإلكتروني ورقم المعرف بـ <REDACTED>.
- أعط أمثلة وليس الكل. فبدلاً من مليون سطر، غالبًا ما تكون بضع مئات من الأسطر التمثيلية كافية.
- اختر سيارة معتمدة من المؤسسة. خاصة بالنسبة لسجلات الإنتاج، استخدم أداة لا تذهب بياناتها إلى التدريب.
أربع إشارات ذهبية وجداول إنذار
إشارة
تقاس ب
مثال عتبة التنبيه
إلحاح
الكمون
وقت الاستجابة
ص95 > 800 مللي ثانية، 5 دقائق
عالية
حركة المرور
طلب/ثانية
زيادة/نقصان مفاجئ بنسبة 300%
متوسطة
خطأ
معدل الطلب الفاشل
> 5%، 5 دقائق
حرجة
التشبع
إشغال الموارد
القرص > 85%
عالية
ثلاث حالات صغيرة
الحالة 1 - تلخيص 400 سطر من السجل في 30 ثانية. لقد تباطأت الخدمة. أعطى المهندس 400 سطرًا من السجل المقنع إلى الذكاء الاصطناعي وقال: "لخص أنماط الأخطاء المتكررة وكثافة الوقت". أظهر الذكاء الاصطناعي أن مهلة استدعاء واجهة برمجة التطبيقات الخارجية معينة تنتهي كل 30 ثانية. تم العثور على السبب الجذري خلال 30 ثانية؛ قد يستغرق مسح السجلات يدويًا نصف ساعة.
الحالة 2 - حل مشكلة إرهاق الإنذار. كان أحد الفرق يتلقى 200 إنذار يوميًا وكان يتجاهلها جميعًا، حتى تم التغاضي أيضًا عن إنذار انقطاع حقيقي. امنح الذكاء الاصطناعي جميع قواعد التنبيه واسأل "ما هي القواعد غير القابلة للتنفيذ وما هي القواعد التي يمكن دمجها؟" سألوا. انخفض عدد الإنذارات إلى 12 إنذارًا يوميًا؛ لقد تم الآن أخذ كل إنذار على محمل الجد.
الحالة 3 - تم اكتشاف عتبة خاطئة مبكرًا. اقترح YZ "تحذير عند امتلاء 95٪" للقرص. نظر المهندس إلى البيانات التاريخية: بمجرد وصول القرص إلى 95%، لم يكن هناك سوى وقت قليل للتدخل. فقد خفضت العتبة إلى 80% وأضافت إنذاراً ثانياً استناداً إلى "معدل النمو". منع التحقق انقطاعًا فعليًا في منتصف الليل.
أربعة قوالب قابلة للنسخ
1) تلخيص السجل (مقنع):
قم بتحليل مثال السجل أدناه (قمت بإخفاء القيم الحساسة باستخدام <REDACTED>). أعطني: (1) أنماط الأخطاء المتكررة، (2) التركيز بمرور الوقت، (3) السبب الجذري الأرجح، و (4) 3 مقاييس سأراجعها للتحقق. السجل: [خطوط]
2) توليد قاعدة التنبيه:
اكتب قاعدة إنذار لـ Prometheus/Alertmanager: قم بإنشاء إنذار [SEVERITY] إذا تجاوز [THRESHOLD] [METRIC] [DURATION]. يجب أن تكون القاعدة موجهة نحو العمل وتتضمن حقل رابط للتعليق التوضيحي ودليل التشغيل. اشرح PromQL واكتب لماذا يعتبر هذا الحد معقولًا.
3) كتابة/إعلان استعلام PromQL:
اكتب استعلام PromQL يقيس: [EX. 5xxنسبة الخطأ في آخر 5 دقائق]. اشرح الاستعلام خطوة بخطوة. ثم أخبرني ما هو النطاق الصحي لهذه القيمة.
4) تصميم لوحة القيادة:
صمم لوحة معلومات Grafana لـ [الخدمة]: ما هي اللوحات التي يجب أن أعرض بها الإشارات الذهبية الأربع (زمن الوصول، وحركة المرور، والخطأ، والتشبع)؟ اقترح مقياسًا ونوع التصور والعتبة المعقولة لكل لوحة. الغرض: معرفة الحالة الصحية للحارس خلال 10 ثواني.
موجه ضعيف / موجه قوي
ضعيف: "ماذا يوجد في هذا السجل؟" (متبوعًا بـ 5000 سطر من السجل الخام، مع الرموز المميزة فيه)
النتيجة: تقوم بتسريب الأسرار ويقدم الذكاء الاصطناعي ملخصًا سطحيًا غير مستهدف.
Strong: "ابحث عن أنماط الأخطاء المتكررة وكثافة الوقت في مثال السجل المقنع المكون من 300 سطر أدناه؛ أخبرني بالسبب الجذري الأكثر احتمالاً والمقاييس التي سأراجعها للتحقق. لقد قمت بإنشاء الرموز المميزة <REDACTED>."
الفرق: الموجه الثاني يعطي مثالاً مقنعًا ومركّزًا، ويطالب بمخرجات تحليل واضحة؛ أنها آمنة ومفيدة على حد سواء.
الأخطاء الشائعة
- لصق السجل في الذكاء الاصطناعي دون إخفائه. تسرب البيانات السرية/الشخصية الأكثر شيوعًا.
- ضبط المنبهات لكل شيء. تعب الإنذار يدفن الإنذار الحقيقي.
- إنذار غير قابل للتنفيذ. إنها ضجيج تحذيري لا يمكن لأحد أن يفعل أي شيء حياله.
- قبول عتبة الذكاء الاصطناعي دون سؤال. يجب تعيين العتبة وفقًا لسجل نظامك.
- مجرد النظر إلى المقياس. بدون السجل والتتبع، لا يمكن العثور على السبب الجذري في معظم الأوقات.
- عدم ضبط وقت التنبيه (ل). التقلبات اللحظية تنتج إنذارات كاذبة.
في ملخص
إمكانية الملاحظة؛ إنها القدرة على فهم داخل النظام من الخارج باستخدام المقاييس والسجلات والتتبعات. تلخص الإشارات الذهبية الأربع (زمن الوصول، وحركة المرور، والخطأ، والتشبع) صحة معظم الخدمات. يعتبر الذكاء الاصطناعي قويًا جدًا في كتابة استعلامات PromQL وقواعد الإنذار ولوحات المعلومات، وفي تلخيص أجزاء كبيرة من السجلات والعثور على الحالات الشاذة. ولكن تقع على عاتقك مسؤولية التحقق من حدود التنبيهات مقابل سجل النظام الخاص بك، والحفاظ على توجيه التنبيهات نحو العمل، وعدم مشاركة السجلات مطلقًا دون إخفاءها.
مهمة التطبيق
بالنسبة لخدمة (أو نموذج خدمة): (1) هل تم إنشاء قاعدة إنذار لمعدل الخطأ باستخدام قالب "إنشاء قاعدة الإنذار" وتعيين الحد المقترح على "كم عدد المرات التي تم تشغيلها في الماضي؟" اختبرها بالسؤال؛ (2) قم بإخفاء نموذج السجل الذي لديك وقم بتحليله باستخدام قالب "تلخيص السجل"؛ (3) لاحظ المقياس الذي ستنظر إليه لتأكيد السبب الجذري الأكثر احتمالاً.
قائمة مرجعية
- [ ] لقد اخترت المقاييس التي يجب تتبعها بناءً على أربع إشارات ذهبية.
- [ ] لقد قمت بإخفاء جميع السجلات التي قدمتها للذكاء الاصطناعي فيما يتعلق بالمناطق الحساسة.
- [ ] لقد تحققت من أن كل إنذار كان عملي المنحى وضروريًا بشكل صحيح.
- [ ] لقد قمت باختبار حدود الإنذار مقابل البيانات التاريخية لنظامي.
- [ ] لقد قمت بتصفية التقلبات اللحظية عن طريق إضافة (المدة) إلى الإنذارات.
- [ ] لقد استخدمت المقياس + السجل + التتبع معًا للسبب الجذري.