PushizoDocs
OperasyonRunbook'lar

Runbook: Kaos tatbikatı (aylık, staging)

Test matrisi (docs/plan/09): worker kill, Redis restart, sağlayıcı 5xx enjeksiyonu — aylık, elle. Betik: infra/scripts/chaos.sh.

Test matrisi (docs/plan/09): worker kill, Redis restart, sağlayıcı 5xx enjeksiyonu — aylık, elle. Betik: infra/scripts/chaos.sh.

Önkoşullar

  • Staging sunucusu (.env.staging, PROVIDER_MODE=mock — betik gerçek sağlayıcılı ortamda çalışmayı reddeder).
  • Sentetik izleme app'i ve anahtarı (docs/runbooks/synthetic-monitoring.md): SYNTHETIC_API_URL, SYNTHETIC_API_KEY, SYNTHETIC_APP_ID, SYNTHETIC_SUBSCRIPTION_ID.
  • jq, curl, Docker Compose v2.24+.

Çalıştırma

./infra/scripts/chaos.sh all
```text
Tek senaryo: `worker-kill`, `redis-restart`, `provider-5xx`.

| Senaryo | Enjeksiyon | Beklenen | Gözlem |
|---|---|---|---|
| worker-kill | `worker-dispatch` SIGKILL, 5 sn sonra yeniden başlatma | Yarıda kalan iş BullMQ stalled kontrolü veya `reconcile` ile tamamlanır; yeni gönderim < 120 sn | `WorkerDown` alarmı kısa süre; `queue_jobs_total{state="stalled"}` |
| redis-restart | `docker compose restart redis` (AOF) | Kuyruklar kaldığı yerden devam; API hız sınırı ve oturumlar kesintisiz | `RedisDown` kısa süre, API 5xx yok |
| provider-5xx | `mock:transient` belirteçli abonelik | Üstel geri çekilmeyle yeniden deneme, sonunda `failed` (`MAX_RETRIES`); diğer gönderimler etkilenmez | `provider_send_total{outcome="transient"}` artar, `DispatchFailureRateHigh` eşik altı |

## Kayıt
Her tatbikatta tarih, senaryo, sonuç ve süreleri aşağıya ekleyin; başarısız senaryo için olay kaydı açın (`docs/runbooks/incident.md`).

| Tarih | Senaryo | Sonuç | Not |
|---|---|---|---|

Bu sayfada