Live market intelligence
Activate smart market mode
Docs • Runbooks
ENProfessional Crypto Analytics Platform

Runbooks

تشغيل وصيانة وإطلاقات آمنة للمحيط الإنتاجي.

الصحة والجاهزية

  • التحقق من GET /api/health (DB) و apps/bff → /ready قبل أي نشر.
  • مراقبة مؤشرات P95 في /api/metrics (Budget: BFF ≤300ms، ingest ≤400ms، التنبيهات ≤1s) باستخدام config/ops-budgets.json.
  • تثبيت تليمترية المتصفح (Sentry/LCP/CLS/FID) ضد ميزانيات config/perf-budgets.json.

اختبارات ما قبل الإطلاق

نفّذ الأوامر بالترتيب لضمان سلامة المسارات الحرجة:

  • pnpm test:e2e (سطح مكتب) + pnpm test:e2e --project="Mobile Chrome" لواجهات الهاتف.
  • pnpm perf:market-api للتحقق من p95 ≤ 400ms على /api/market-data.
  • pnpm perf:lhci مع lighthouserc.json للتأكد من الأداء/SEO.
  • pnpm perf:budget لفرض ميزانيات LCP/CLS/FID، و pnpm security:scan لمراجعة الثغرات.
  • تشغيل scripts/perf/k6-market-api.js (k6) مع BASE_URL و THRESHOLD_P95 حسب بيئة الاختبار.

استجابة الحوادث

  1. تحديد نوع العطل: بيانات (ingest/BFF) أم واجهة (Next) أم هوية (Auth).
  2. مراجعة /api/metrics + سجلات Loki + تنبيهات Grafana/Sentry. دوّن x-request-id.
  3. عزل الخلل: خفّض RATE_LIMIT، فعّل HEALTH_ALLOW_DEGRADED=1 مؤقتاً، وأوقف مهام التنبيهات الزائدة عبر BullMQ DLQ.
  4. استرجاع: أعد تشغيل خدمة محددة (ingest-ws، bff) ثم تحقق من /ready وعتبات P95.
  5. ختام الحادث: وثّق السبب الجذري، أعد ضبط الحدود، وأغلق التنبيهات بعد مراقبة 30 دقيقة.

نسخ احتياطي واستعادة

  • تشغيل pnpm maintenance:backup يومياً؛ تحقق من حجم الملف وسلامة الاستعادة.
  • استعادة جزئية: استخدم مسارات prisma db للـ restore مع لقطة زمنية، ثم شغّل pnpm maintenance:prune-market-ticks لتنظيف البيانات المتقادمة.

المراقبة والتنبيهات

اربط Grafana/Prometheus بلوحات: طلبات BFF، تأخر BullMQ، صحة ingest-ws. اربط Sentry للواجهة وBFF مع x-request-id للتتبّع الموحد. حافظ على CDN/Cache عبر Cache-Control و stale-while-revalidate في واجهات السوق، واضبط TTL للـ static بالـ CDN.