Platform Telemetri Frontend Masa Nyata
SDK frontend bertaip dan saluran peristiwa yang memberi keterlihatan masa nyata kepada aliran pengguna berbilang langkah, memendekkan pengesanan insiden daripada beberapa hari kepada beberapa minit.
- Stack
- TypeScript · BFF · Event streaming · Columnar storage · Dashboards
Masalahnya
Sebahagian pengguna berhenti secara senyap di tengah-tengah aliran panjang yang berbilang langkah. Apabila integrasi dengan pihak ketiga rosak, tiada siapa yang nampak: diagnosis bermaksud membaca log pelayan yang berselerak secara manual dan mengambil masa berhari-hari. Setiap hari itu ialah pengguna sebenar yang tidak dapat menyelesaikan prosesnya.
Pendekatannya
- SDK kecil yang bertaip. Satu penjejak TypeScript mengumpulkan data tindakan pengguna yang sama pada setiap skrin dan platform, jadi sesuatu peristiwa membawa maksud yang sama di mana-mana.
- Throttling dengan injap keselamatan. SDK mengumpulkan peristiwa secara kelompok dan menghantarnya apabila pemasa pendek atau had saiz dicapai, mana-mana yang dahulu. Satu permintaan bagi setiap klik menghabiskan thread rangkaian pelayar; menahan peristiwa lebih lama berisiko kehilangannya apabila tab ditutup, jadi semasa halaman ditutup
navigator.sendBeacondigunakan. - BFF yang mengesahkan. Kelompok peristiwa sampai ke Backend for Frontend yang menyemak skema berbanding takrifan TypeScript, menyemak kewajaran cap masa, membuang medan tidak dijangka dan data peribadi, serta melampirkan metadata sesi. Membandingkan keputusan backend dengan apa yang dipaparkan UI mendedahkan ketidakpadanan keadaan antara keduanya.
- Saluran penstriman ke storan berkolum. Penstriman menyerap lonjakan trafik, dan storan berkolum menjawab agregasi ke atas set peristiwa yang sangat besar dan berkardinaliti tinggi dalam milisaat, sedangkan storan berbaris merangkak.
- Pengendalian kegagalan secara senyap. Jika saluran terhenti, SDK menyimpan penimbal kecil secara tempatan dan pemutus litar pasif menghentikan penghantaran. Ia tidak mengepung pelayan untuk menyemak kesihatan; ia menunggu respons berjaya yang seterusnya.
Hasilnya
Masa mengesan insiden turun daripada beberapa hari kepada kurang 5 minit. Apabila satu langkah yang rosak bermaksud banyak percubaan gagal, itulah beza antara nota dalam postmortem dengan pembaikan pada pagi yang sama.