واجهة برمجة التطبيقات التحليلية ومقاييس الأداء
1) لماذا تحتاجه
API - نظام الدورة الدموية للمنصة. "بدون مقاييس صارمة، لا يمكننا:- إثبات تنفيذ جيش تحرير السودان وجيش تحرير السودان،
- إدارة عرض النطاق الترددي والاستعلام الاقتصادي،
- توطين التحلل بسرعة (ذيل p99، رشقات نارية 5xx)،
- إعطاء الأولوية لتحسين تأثير الأعمال.
الهدف: نموذج واحد قابل للرصد حيث يتم تتبع كل طلب من محيط إلى مصرف التنمية مع محددات هوية مشتركة ومواصفات متسقة.
2) تصنيف المقاييس
التقنية: RPS، الكمون (p50/p95/p99)، معدل الخطأ (4xx/5xx)، التشبع (وحدة المعالجة المركزية، الذاكرة، مكتب الملفات)، وقت الانتظار.
المنتج: عمليات/دقائق ناجحة، تحويل الخطوة (200/إجمالي)، حصة محدودة السعر (429)، إعادة التصوير، شرائح المستخدم.
التكلفة: التكلفة/الطلب (CPU-ms + ext + طلبات قاعدة البيانات)، تكلفة الميزة/نقطة النهاية، $/المستأجر، $/1 ألف مكالمات.
3) «الإشارات الذهبية»: الأحمر والاستخدام
RED (لواجهة برمجة التطبيقات):- المعدل - الطلبات/الثانية (حسب نقطة النهاية/المستأجر/الخطة).
- الأخطاء - 4xx/5xx/429 كسرًا ومطلقًا.
- المدة - p50/p95/p99 من طرف إلى طرف ومراحل (تطبيق → الدخول → DB → طرف ثالث).
- الاستخدام - حمولة وحدة المعالجة المركزية/IO/القناة.
- التشبع - قوائم الانتظار (قائمة الانتظار، التراكم، انتظار DB).
- أخطاء - أخطاء السائق/المهلة.
4) التعاريف والصيغ الأساسية
توافر SLI: '1 − (5xx + gateway_timeout )/ all_requests'.
النجاح SLI: «2xx/( كل − 429_shadow)» (باستثناء أقفال الظل).
Apdex: '(|T≤T| + 0. 5·|T≤4T| )/all '، حيث «T» هي عتبة الهدف «الجيدة».
تضخيم الذيل: «p99 _ المجموع − الحد الأقصى (p99_stage_i)» - مساهمة قوائم الانتظار/التكوين.
ميزانية الخطأ (الشهر) في 99. 9٪: 'الميزانية = 0. 1٪ الفترة _ الوقت '.
صناديق مئوية موصى بها من مخطط زمن الكمون: '[5 مللي ثانية، 10 مللي ثانية، 25 مللي ثانية، 50 مللي ثانية، 100 مللي ثانية، 250 مللي ثانية، 500 مللي ثانية، 2. 5s، 5s] '.
5) SLI/SLO والتنبيه حسب معدل الحرق
مثال SLO (public API):- التوافر: ≥ 99. 9 ٪/30 يومًا.
- p95 latency 'GET/wallet/malance' <150 mm; «البريد/المدفوعات» <400 مللي ثانية.
- أخطاء «5xx» <0. 2%. «429» (صلب) <1٪ من إجمالي حركة المرور.
- 2٪ من الميزانية لمدة 1 ساعة أو 5٪ لمدة 6 ساعة → صفحة للمهندس.
- 10٪ يوميًا → تحديد أولويات RCA.
6) مجموعة المقاييس (ما يجب جمعه إلزامي)
على المحيط (البوابة/WAF):- 'http _ requests _ total {الطريق، الطريقة، الحالة، المستأجر، الخطة}'
- 'http _ request _ termation _ seconds _ bucket {route,...}' (histogram)
- 'retries _ total {reason}', 'rate _ limited _ total {key, policy}'
- أحجام الجسم: «طلب _ بايت»، «استجابة _ بايتس»
من فضلك جد المرفقات
'db _ client _ requests _ total {op, table}', 'db _ latency _ seconds _ bucket {op}'
«cache _ ops _ total {op}»، مكالمات خارجية ذات معدل إصابة مخبأ: «outbound _ calls _ total {provider, op}»، وقت الانتظار/الأخطاء/مواعيد الانتظار/البرك: الأطوال/التأخير، عمال استخدام الموارد النشطين: توقف وحدة المعالجة المركزية، RSS، FD، GC
علامات الأعمال: "مستأجر _ معرف"، "منطقة"، "kyc _ level'،" خطة "،" ميزة _ علم ".
7) التتبع والارتباط (OpenTelemetry)
W3C Trace-Context ("traceparent'،" tracestate ") على جميع القفزات.
Span-s حسب المراحل: الدخول → authZ → معالج التطبيقات → DB/Redis → PSP/خارجي.
السمات/التسميات: 'http. الطريق '،' المستخدم النهائي. هوية المستأجر. id ',' impempotency. المفتاح «،» المخاطرة. درجة '.
النماذج: نقاط الارتباط على رسوم كمون/خطأ مع معرف ضئيل محدد.
- على الرأس 1-10٪ للمسارات «العادية»،
- على أساس الذيل للذيول (خذ ببطء/خطأ)،
- قابلة للتكيف مع القمم والحوادث.
- الأمتعة: حمل «المستأجر »/« المخاطر» للتخفيضات دون وضع علامات على كل حدث.
8) السجلات: الهيكل والخصوصية
هيكل JSON ؛ الحقول المطلوبة هي 'ts' و' trace _ id 'و' span _ id 'و' route 'و' status 'و' latency _ ms' و 'المستأجر' و 'user _ id _ hash'.
سياسة PII: قناع PAN/PII ؛ إنكار الأسرار/الرموز.
أخذ عينات من السجلات: مرتفع لطلبات 4xx/5xx/429 وطلبات «طويلة».
9) خريطة لوحة القيادة (المجموعة الدنيا)
1. ملخص تنفيذي: RPS، التوافر، معدل الخطأ، p95/p99 زمن الوصول، 429 حصة، ميزانية معدل الحرق.
2. لكل مسار: أعلى نقاط نهاية بواسطة RPS/خطأ/ذيل ؛ مقارنة النسخ (الكناري).
3. لكل مستأجر/خطة: قادة الحمل/التكلفة/الخطأ.
4. صحة التبعية: DB، مخبأ، PSP/خارجي - زمن الانتظار، الأخطاء، التشبع.
5. السعة: CPU/RAM/FD، قوائم الانتظار، تجمع الاتصال، GC، حدود الحاويات.
6. الأمن/الإساءة: 401/403، 429/سياسيًا، شرائح geo/ASN، مسامير إعادة الدرس.
10) التنبيهات (العتبة والاتجاه)
«خطأ _ معدل {مسار}»> 2٪ (5 دقائق) و RPS> N → pager.
«p99 _ latency {حرجة}»> عتبة الهدف (10 دقائق).
'burn _ rate' حسب الميزانية (انظر الفقرة 5).
DB «المهلة »/« الجمود» أو «قائمة انتظار النمو»> X ms.
مقدمو الخدمات الخارجيون: «outbound _ 5xx _ rate {provider}»> 1٪ + SLO المعتمد.
11) تخطيط وأداء القدرات
قانون ليتل: «L = λ· W» (متوسط طول قائمة الانتظار = حركة المرور × متوسط الوقت).
الهدف p95 متحلل: «دخول + تطبيق + DB + خارجي + قائمة انتظار».
ميزانية متزامنة: تحديد العدد الأقصى لعمليات الكتابة المتزامنة.
مقياس الميزانية: «وحدات المعالجة المركزية لكل طلب» ؛ نحافظ على هامش 30-50٪ إلى الذروة.
التفاعل مع الحد الأقصى للمعدل: قياس نسبة الطلبات عند «الحد الأقصى» للحصة وتأثيرها على زمن الانتقال.
12) التحميل والفحوصات الاصطناعية
الأنواع: الحمل الأساسي، الرشقات النارية × 10، «الخطوات»، الهضاب طويلة الأجل، الإجهاد/الفوضى (قتل العقدة، تأخير الشبكة)، المواد التركيبية وفقًا لسيناريوهات العميل الحرجة.
التنميط: وحدة المعالجة المركزية/alloc/lock-contention، N + 1 (SQL/HTTP)، الرموز البطيئة.
مراقبة الانحدار: مقارنة بين p95/p99/الأخطاء قبل/بعد الإطلاق (الكناري).
13) قابلية مراقبة التكلفة
مقاييس التكلفة: «cpu _ ms' و» egress _ bytes «و» db _ calls' و «$ لكل 1 ألف طلب».
التخصيص لنقطة النهاية/المستأجر/الميزة: علامات الفواتير من المنسق + مقاييس التحميل → تقرير اقتصاد وحدة API.
خوارزمية التحسين: حدد نقاط نهاية TOP بواسطة المنتج «× تكلفة × المرور (p95 − الهدف)».
14) تحليلات لكل مستأجر و «العدالة»
تم تصنيف جميع المقاييس الرئيسية على أنها «مستأجر _ معرف/خطة».
حصة العملاء «الثقيلين» في ذيول p99 ؛ الحدود/الحصص الفردية وميزانيات إعادة الدفع.
القص العادل: عند تحميلنا أكثر من اللازم، نخفض نسبة المستأجرين «البارزين».
15) تفاصيل iGaming/Finance
الأقسام حسب 'kyc _ level' و 'risk _ tier' و 'pay _ method'.
SLI لمسارات "المال" ("POST/esociates" و "POST/reducations'): الهدف الأدنى p95، ميزانيات خطأ منفصلة.
مقاييس Time-to-Wallet (TTW)، حصة الأقفال التلقائية لمكافحة الاحتيال، تحويل المدفوعات.
مراجعة الحسابات: سجلات ثابتة للإجراءات المالية وقرارات مكافحة الاحتيال.
16) الأجهزة: ممارسات التنفيذ
مقاييس التسمية (مثال):- «api _ http _ requests _ total» (العداد)
- 'api _ http _ request _ termation _ seconds' (histogram)
- 'api _ outbound _ requests _ total', 'api _ db _ query _ trenation _ seconds'
- «api _ rate _ limited _ total», «api _ retry _ total {reason}»
Лейблы: 'الطريق'، 'الطريقة'، 'الحالة _ الفئة'، 'المستأجر'، 'المنطقة'، 'النسخة'، 'الكناري'، 'المزود'، 'db _ table'.
الكاردينالية: تجنب القيم الحرة (user_id)، استخدم «الدلاء «/التجزئة.
النماذج: اتصل بـ histograms p95/p99 → النقر على الأثر.
17) أنتيباترن
متوسطة بدلا من المئوية ؛ لا تقسيم إلى فئات المركز.
عدم اتساق «المسار »/« المسار» (يتم «خياطة» المعرفات الديناميكية في الملصقات).
الملصقات ذات الكاردينالية العالية (user_id الخام، IP).
لا توجد محاسبة منفصلة لمقدمي الخدمات الخارجيين (PSP/الطرف الثالث).
تنبيهات بواسطة «ضوضاء» (نافذة واحدة وعتبة واحدة).
p99 باستثناء وقت الانتظار (يخفي التدهور الحقيقي).
18) قائمة التحقق من الاستعداد
- SLI/SLO وميزانية الخطأ المحددة، متفق عليها مع الأعمال التجارية.
- رسوم هيستوغرافية وحيدة الكمون وفصول الحالة ؛ p95/p99 على لوحات القيادة.
- التتبع الكامل (OTel)، log/metric/trace correncation.
- تنبيهات معدل الحرق (نافذتان)، وعتبات p99 ومعدل الخطأ.
- لكل مستأجر/لكل خطة وتقارير التكلفة.
- لوحات القيادة: Exec، Per-Route، التبعيات، السعة، الإساءة.
- سيناريوهات الحمل (الانفجار/الهضبة/الإجهاد)، التنميط.
- سياسات جيتر ريتراي ؛ حساب تأثير إعادة التدوير على RPS.
- وثائق جيش تحرير السودان/جيش تحرير السودان للشركاء والعملاء من القطاع العام.
- الاحتفاظ/إخفاء السجل، حماية PII.
19) TL ؛ د
بناء إمكانية الملاحظة حول SLI/SLO وميزانية الخطأ، وقياس RED/USE، وجمع مخططات الهيستوغرام الكمون مع p95/p99 ووقت الانتظار، وتوزيع معرف واحد من المحيط إلى DB، واستخدام الذيل/أخذ العينات التكيفية، والاحتفاظ بكل مستأجر/خفض التكلفة ومعدل حرق نافذتين في حالة تأهب. تخطيط القدرات وفقا لقوانين الانتظار والتأثير على مقاييس الأعمال التجارية ؛ المضادات - المتوسطة بدلا من المئوية، الكاردينية العالية والتبعيات الخارجية المجهولة.