Latihan 1: Debugging Production Incidents — Debugging

Latihan 1 dari materi Debugging Production Incidents di Debugging — praktek dengan editor kode interaktif, test case otomatis, dan hint terpandu. Langsung jalan di browser.

Lengkapi dua function untuk menganalisis incident.

  1. analyzeErrorRate(events, windowMs = 60000): events berisi { type: 'error' | 'success', timestamp } (timestamp dalam milidetik).
    • Cari timestamp terbaru di events, lalu ambil event yang terbaru - timestamp <= windowMs. Jendelanya diukur dari event terbaru, bukan dari Date.now().
    • Kembalikan { errorRate, total, errors }: total = jumlah event di jendela, errors = jumlah yang type === 'error', errorRate = persen error, dibulatkan dengan Math.round (0 sampai 100).
  2. detectAnomalies(rates): rates adalah array error rate per menit.
    • Hitung rata-ratanya, lalu kembalikan array { index, rate, isAnomaly }, dengan isAnomaly: true kalau rate > 2 * rata-rata (lebih dari, bukan sama dengan).

Kode awal sudah berisi data dan lima console.log, biarkan begitu. Output-nya harus persis lima baris ini, berurutan:

  1. 5
  2. 2
  3. 40
  4. 1
  5. true

Ada juga satu cek dengan data lain: analyzeErrorRate untuk event di 1000, 2000, dan 90000 ms dengan window 5000 harus punya total 1, dan anomali pertama dari detectAnomalies([1, 1, 10]) harus di index 2. Hasil gabungannya "1|2".

Hint