إدارة → العمليات والإنذار حسب قدرة النظام
تنبيهات سعة النظام
1) لماذا تحتاجه
تحذر التنبيهات السعية من اقتراب الحدود الفنية قبل وقت طويل من الحادث: "نحن 80٪ من السقف - حان الوقت للتوسع. "بالنسبة لشركات البقالة، يتعلق الأمر مباشرة بالمال: الرهانات/الودائع الفائتة، وقطرات الجلسة، وتأخيرات الألعاب الحية، وفشل المزود = الإيرادات المفقودة، والسمعة، والغرامات والعمولات.
الأهداف:- تحمل بشكل متوقع أحمال الذروة (الأحداث والبطولات والجداول والحملات الكبيرة).
- قم بتشغيل التحجيم التلقائي في الوقت المحدد وتخطيط رفع السعة.
- تقليل الضوضاء والاستيقاظ «على الأعمال» عندما يكون SLO/money في خطر.
- أعط المهندسين توصيات دقيقة من خلال دفتر التشغيل.
2) المفاهيم الأساسية
السعة: أقصى إنتاجية مستقرة (RPS/TPS، الوصلات، IOPS، الإنتاجية).
الرأس: هامش بين الحمل الحالي والحدود.
وجيش تحرير السودان/جيش تحرير السودان: المستويات المستهدفة لوقت التوافر/الاستجابة ؛ يجب أن تكون التنبيهات «مدركة لـ SLO».
معدل الحرق: سرعة «حرق» ميزانية SLO للأخطاء/زمن الانتقال.
العلامة المائية العالية/المنخفضة: المستويات العليا/الدنيا للتشغيلات والاسترداد التلقائي.
3) بنية الإشارات ومصادر البيانات
القياس عن بعد: مقاييس (Prometheus/OTel)، سجلات (ELK/ClickHouse)، آثار (OTel/Jaeger).
نهج الطبقة: تنبيهات حسب الطبقات (Edge → API → خدمات الأعمال → قوائم الانتظار/التدفقات → قواعد البيانات/المخابئ → مخازن الملفات/الكائنات → مقدمي الخدمات الخارجيين).
السياق: أعلام وإصدارات وحملات تسويقية وبطولات ومواءمة جغرافية.
إطار الحادث: Alertmanager/PagerDuty/Opsgenie/Slack ؛ ربط الدليل ومصفوفة التصعيد.
4) المقاييس الرئيسية حسب الطبقة (ما يجب رصده ولماذا)
الحافة/L7
RPS، 95-/99-centenle latency، معدل الخطأ (5xx/4xx)، اتصالات مفتوحة.
حدود الأسعار/الحصص، تنخفض на CDN/WAF/Firewall.
API- шлюз/Backend-for-Frontend
التشبع حسب العامل/تجمع العمل، طلب قائمة الانتظار، المهلة إلى المصب.
كسر التحلل (خلفيات، قواطع دائرة).
قوائم الانتظار/البث (كافكا/أرنب/بولسار)
تأخير/تأخير المستهلك، معدل نمو الأعمال المتراكمة، الإنتاجية (msg/s، MB/s).
انحراف التقسيم، إعادة التوازن، ISR (لكافكا)، إعادة/جد لاحقًا.
العمال غير المتزامنين
مهلة المهمة، طول قائمة الانتظار، النسبة المئوية لمهام جيش تحرير السودان المنتهية الصلاحية.
وحدة المعالجة المركزية/الذاكرة/FD التشبع في البرك.
المخابئ (Redis/Memcached)
نسبة الإصابة، زمن الانتظار، عمليات الإخلاء، الذاكرة المستخدمة، العملاء/العمليات/العمليات المتصلة.
المجموعات: فتحات/نسخ طبق الأصل، أحداث فاشلة.
БД (PostgreSQL/MySQL/ClickHouse)
اتصالات نشطة مقابل الحد الأقصى، انتظار القفل، تأخر النسخ المتماثل، مخبأ/مخبأ.
IOPS، وقت القراءة/الكتابة، نقطة التفتيش/التدفق، الانتفاخ/التجزئة.
تخزين الكائن/الملف
PUT/GET latency، 4xx/5xx، ext، الطلبات/ثانية، حدود المزود.
مقدمو الخدمات الخارجيون (المدفوعات/LCC/مزودي الألعاب)
حدود TPS، نوافذ QPS، معدل الخطأ/المهلة، طابور إعادة الدرس، «التكلفة لكل مكالمة».
البنية التحتية
وحدة المعالجة المركزية/الذاكرة/FD/IOPS/تشبع الشبكة على العقد/القرون/ASG.
أحداث HPA/VPA، القرون المعلقة، الحاوية OOM/Chottling.
5) أنواع التنبيهات السعية
1. عتبات ثابتة
بسيطة ومباشرة: «db _ connections> 80٪ كحد أقصى». جيد كإشارة منارة.
2. عتبات التكيف (الديناميكية)
استنادًا إلى الموسمية والاتجاه (النوافذ المتدحرجة، تحلل STL). اسمح بالصيد «مرتفعًا بشكل غير عادي لهذه الساعة/اليوم من الأسبوع».
3. توجه SLO (معدل الحرق)
يتم تشغيلها عندما يؤدي معدل الأكل بميزانية الخطأ إلى تعريض SLO للخطر في أفق X ساعة.
4. التوقعات (تنبيهات التنبؤ)
«بعد 20 دقيقة في الاتجاه الحالي، ستصل قائمة الانتظار إلى 90٪». يتم استخدام التنبؤ الخطي/القوي/الشبيه بالنبي على النوافذ القصيرة.
5. إشارات متعددة
التشغيل مع الجمع: «قائمة الانتظار _ lag ↑» + «المستهلك _ cpu 85٪» + «القياس التلقائي عند الحد الأقصى» → «التدخل اليدوي مطلوب».
6) سياسات العتبة ومكافحة الضوضاء
علامة مائية عالية/منخفضة:- أعلى: تحذير 70-75٪، كريت 85-90٪. Down: hysteresis 5-10 pp من أجل عدم «الرؤية على العتبة».
- «لـ: 5 ملايين» لمعايير «لـ: 10-15 مليونًا» للتحذيرات. الوضع الليلي: مسار غير حاسم للدردشة دون استدعاء.
- المجموعة حسب الخدمة/المجموعة/الجغرافية حتى لا تنتج بطاقات الحوادث.
- إذا خرج مزود KYC وكانت أخطاء واجهة برمجة التطبيقات بسبب استدعاء مالك التكامل، وليس جميع المستهلكين.
- خلال فترة السهم، ارفع عتبات الضوضاء لـ «النمو المتوقع»، ولكن اترك تنبيهات SLO سليمة.
7) أمثلة القاعدة (Prometheus الزائف)
اتصالات DB:
ALERT PostgresConnectionsHigh
IF (pg_stat_activity_active / pg_max_connections) > 0. 85
FOR 5m
LABELS {severity="critical", team="core-db"}
ANNOTATIONS {summary="Postgres connections >85%"}
كافكا lag + القياس التلقائي عند الحد الأقصى:
ALERT StreamBacklogAtRisk
IF (kafka_consumer_lag > 5_000_000 AND rate(kafka_consumer_lag[5m]) > 50_000)
AND (hpa_desired_replicas == hpa_max_replicas)
FOR 10m
LABELS {severity="critical", team="streaming"}
معدل الحرق SLO (زمن انتقال API):
ALERT ApiLatencySLOBurn
IF slo_latency_budget_burnrate{le="300ms"} > 4
FOR 15m
LABELS {severity="page", team="api"}
ANNOTATIONS {runbook="wiki://runbooks/api-latency"}
Redis memory and evikshens:
ALERT RedisEvictions
IF rate(redis_evicted_keys_total[5m]) > 0
AND (redis_used_memory / redis_maxmemory) > 0. 8
FOR 5m
LABELS {severity="warning", team="caching"}
مزود الدفع - الحدود:
ALERT PSPThroughputLimitNear
IF increase(psp_calls_total[10m]) > 0. 9 psp_rate_limit_window
FOR 5m
LABELS {severity="warning", team="payments", provider="PSP-X"}
8) نهج SLO وأولوية الأعمال
من الإشارة إلى تأثير الأعمال: يجب أن تشير تنبيهات السعة إلى المخاطر إلى SLO (مقاييس ألعاب/geo/GGR محددة، تحويل الودائع).
المستوى المتعدد: الإنذارات للخدمة تحت الطلب ؛ Crete - صفحة مالك النطاق ؛ SLO-drop - قناة «ملخص» الحوادث الكبرى والفريق.
ميزات التحلل: تقليل الحمل التلقائي (قراءة جزئية فقط، تقليل الميزات الثقيلة، تقليل تكرار بث الجائزة الكبرى، إيقاف الرسوم المتحركة «الثقيلة» في الألعاب الحية).
9) المشغلات التلقائية و «الصحيحة»
HPA/VPA: الهدف ليس فقط عن طريق وحدة المعالجة المركزية/الذاكرة، ولكن أيضًا عن طريق مقاييس الأعمال (RPS، loue lag، p99 latency).
مواعيد الإحماء: ضع في اعتبارك حدود البداية الباردة والمزود (ASG spin-up، وبناة الحاويات، ومخابئ الإحماء).
حواجز الحماية: توقف الظروف في نمو الأخطاء الذي يشبه الانهيارات الجليدية ؛ الحماية من «مشكلة القشرة».
كتب تشغيل القدرات: أين وكيف يمكن إضافة قطعة/حفلة/نسخة طبق الأصل، كيفية إعادة توزيع حركة المرور حسب المنطقة.
10) العملية: من التصميم إلى التشغيل
1. رسم خرائط الحد: جمع حدود عنق الزجاجة «الحقيقية» لكل طبقة (الحد الأقصى للكونات، IOPS، TPS، موفري الحصص).
2. اختيار مقاييس التنبؤ: تشير الإشارات إلى «الراحة في دقائق N» أولاً.
3. تصميم العتبة: مرتفع/منخفض + SLO-burn + مركب.
4. Runbook for every crete: diagnostic steps («what to open», «what commands», «where to sequance»), three options for action: fast traversal, scalling, deasadation.
5. الاختبار: محاكاة التحميل (الفوضى/أيام اللعبة)، البدايات الجافة للتنبيهات، التحقق من مكافحة الضوضاء.
6. المراجعة والتبني: مالك الإشارة = مالك الخدمة. لا مالك - لا صفحة.
7. المناظير والضبط: التحليل الأسبوعي للخطأ/الفائت ؛ metric «MTTA (ack), MTTD, MTTR, Noise/Signal rato».
11) الأنماط المضادة
وحدة المعالجة المركزية> 90٪ ⇒ الذعر: بدون ارتباط مع زمن الانتظار/قوائم الانتظار، قد يكون هذا طبيعيًا.
«عتبة واحدة للجميع»: مناطق/مناطق زمنية مختلفة - ملامح مرور مختلفة.
تنبيه بدون دفتر تشغيل: صفحة بدون استنزاف واضح للعمل عند الطلب.
العمى لمقدمي الخدمة: غالبًا ما تكون الحصص/الحدود الخارجية أول من «يكسر» النصوص (PSP، KYC، مكافحة الاحتيال، مزودي الألعاب).
لا هستيريا: «نشر» عند حدود 80 ٪/79٪.
12) ميزات iGaming/المنصات المالية
ذروة الجدول: وقت الذروة، نهائيات البطولة، المباريات الكبرى ؛ ترويج النسخ المقلدة المستهدفة وملء المخابئ مسبقًا.
البث المباشر والجوائز الكبرى: دفعات من أحداث البث → حدود للوسطاء/مواقع الويب.
المدفوعات وشركة KYC: نوافذ مقدمي الخدمات، وتسجيل درجات مكافحة الاحتيال ؛ الاحتفاظ بطرق احتياطية ورواسب «وضع النعمة».
التوازن الجغرافي: فشل المزود المحلي - لتحويل حركة المرور إلى منطقة مجاورة حيث يوجد فراغ.
المسؤولية: معرض لخطر فقدان الرهانات/الجوائز الكبرى - صفحة فورية لفريق المجال + تنبيه العمل.
13) لوحات القيادة (المجموعة الدنيا)
نظرة عامة على السعة: مساحة متقدمة حسب الطبقة، أعلى 3 مناطق محفوفة بالمخاطر، SLO بمعدل الحرق.
Stream & Queues: تأخر، نمو متراكم، تشبع المستهلك، حالة HPA.
DB & Cache: الاتصالات، repl-lag، p95/p99 زمن الوصول، نسبة الإصابة، عمليات الإخلاء.
مقدمو الخدمة: TPS/النوافذ/الحصص، المهلة/الأخطاء، تكلفة المكالمة.
الإصدار/سياق الميزة: الإصدارات/phicheflags بجوار المنحنيات.
14) قائمة التنفيذ المرجعية
- قائمة الحدود «الحقيقية» والمالكين.
- خريطة مقاييس التنبؤ + الارتباطات بين الطبقات.
- العتبات الثابتة + الهستيريا.
- تنبيهات SLO-burn-على المسارات الحرجة (الإيداع، الرهان، إطلاق اللعبة الحية).
- تنبيهات تنبؤية حول قائمة الانتظار/التدفقات/الاتصالات.
- قمع/صيانة النافذة ؛ السياسات المناهضة للضوضاء.
- Runbook 'ومع الأوامر والرسوم البيانية ومرشحات التحلل.
- تحليل أسبوعي للإيجابيات الخاطئة والضبط.
- حساب الحملات التسويقية والجدول الزمني للأحداث.
15) نمط دليل الأمثلة (مختصر)
الإشارة: «StreamBacklogAtRisk»
الهدف: منع نمو التأخر> 10 ملايين وتأخير العلاج> 5 دقائق.
التشخيص (3-5 دقائق):1. تحقق من «hpa _ wired/max»، دواسة الوقود/oom في الحفر.
2. عرض «التصنيف (التأخر)»، التقسيم (الانحراف).
3. تحقق من الوسيط (ISR، غير مكرر، شبكة).
الإجراءات:- قم بزيادة النسخ المقلدة للمستهلك بمقدار + N، ورفع الحد الأقصى للطيران.
- تمكين مجموعة الأولويات حول «الموضوعات الحاسمة».
- تقليل تواتر العلاجات الثانوية/الإثراء مؤقتًا.
- إذا «ASG at max» - اطلب رفع مؤقت من السحابة ؛ بالتوازي - تمكين تدهور الوظائف الثقيلة.
- التراجع: العودة إلى الملف الشخصي العادي لحركة المرور بعد «تأخر <مليون» 15 دقيقة.
- التصعيد: مالك عنقود كافكا، ثم منصة SRE.
16) KPI وجودة الإشارة
التغطية:٪ من المسارات الحرجة مغلقة بواسطة تنبيهات السعة.
الضوضاء/الإشارة: لا أكثر من 1 صفحة خاطئة لكل مكالمة/أسبوع.
MTTD/MTTR: يتم اكتشاف حوادث السعة ≤5 دقيقة قبل ضربات SLO.
عمليات الإنقاذ الاستباقية: عدد الحوادث التي تم منعها (عن طريق تشريح الجثة).
17) البداية السريعة (التخلف عن السداد المحافظ)
DB: تحذير 75٪ من الوصلات/IOPS/lat ؛ crete 85٪، hysteresis 8-10 pp
المخابئ: 'ضرب <0. 9 'و' عمليات الإخلاء> 0 '> 5 دقائق - تحذير ؛' مستعملة _ mem> 85٪ - كريت.
قوائم الانتظار: ارتفاع «التأخر»> 3 σ من المتوسط لـ 30d + «hpa at max» - Crete.
API: 'p99> SLO1. 3 '10 دقائق - تحذير ؛ " معدل الحرق> 4 '15 دقيقة - كريت.
مقدمو الخدمات: «الإنتاجية> 90٪ حصة» - تحذير ؛ «مهلة> 5٪» - كريت.
18) الأسئلة الشائعة
س: لماذا ليس فقط «وحدة المعالجة المركزية> 80٪» ؟
ج: بدون سياق زمن الانتظار/الانتظار، إنها ضوضاء. وحدة المعالجة المركزية نفسها لا تساوي الخطر.
س: هل نحتاج إلى عتبات تكيفية ؟
ج: نعم، بالنسبة للموسمية اليومية/الأسبوعية - قلل من الإيجابيات الخاطئة.
س: كيف تنظر في التسويق/الأحداث ؟
ج: تقويم الحملة → شروح على الرسوم البيانية + تعديل مؤقت ضد الضوضاء، ولكن لا تلمس تنبيهات SLO.