Latihan 1 dari materi Error Tracking (Sentry) di DevOps — praktek dengan editor kode interaktif, test case otomatis, dan hint terpandu. Langsung jalan di browser.
Lengkapi function groupErrors(errors). Function ini menerima array event error berbentuk { message, stack, timestamp } dan mengelompokkannya per message.
Kembalikan object dengan key = message, dan value = { count, firstSeen, lastSeen } dengan urutan key persis itu.
count: berapa kali pesan itu muncul.
firstSeen: timestamp terkecil di grup itu. lastSeen: timestamp terbesar.
Urutan key di object hasil mengikuti urutan pesan pertama kali muncul.
Yang dinilai nilai kembaliannya:
Tiga event di kode awal (TypeError 100, TypeError 200, RangeError 150) harus menghasilkan {"TypeError":{"count":2,"firstSeen":100,"lastSeen":200},"RangeError":{"count":1,"firstSeen":150,"lastSeen":150}}
Cek tersembunyi: satu event { message: "Error", stack: "a", timestamp: 1 } harus menghasilkan {"Error":{"count":1,"firstSeen":1,"lastSeen":1}}
Hasilnya dibandingkan sebagai teks JSON, jadi urutan key ikut dicek. Baris console.log di kode awal biarkan saja.
Hint
Pesan error jadi kunci grup, jadi event dengan pesan yang sama dihitung di satu tempat bersama waktu pertama dan terakhirnya.
Mulai dari const groups = {}, loop tiap err, siapkan groups[err.message] dengan count 0 dan firstSeen serta lastSeen = err.timestamp kalau belum ada, lalu naikkan count dan perbarui firstSeen dengan Math.min dan lastSeen dengan Math.max.
for (const err of errors) { if (!groups[err.message]) groups[err.message] = { count: 0, firstSeen: err.timestamp, lastSeen: err.timestamp }; const g = groups[err.message]; g.count++; g.firstSeen = Math.min(g.firstSeen, err.timestamp); g.lastSeen = Math.max(g.lastSeen, err.timestamp); } return groups;
</>{ }.css=>#idfn()
Versi baru
HyperSheets
bagian dari BelajarWeb.dev
0%
Membuka gerbang…
HyperSheets
Memperbarui Aplikasi
Versi baru tersedia. Halaman akan dimuat ulang otomatis...