JavaScript'te Monkey-Patch'siz Gözlemlenebilirlik Çağı
Sentry ekibi, JavaScript APM'lerdeki monkey-patching sorununu Node'un TracingChannel API'siyle çözmek için pg, mysql2 ve redis'le çalışıyor.
Sentry'de bir mühendis ekibi, sunucu taraflı JavaScript APM araçlarının dayandığı 'monkey-patching' yöntemini (import-in-the-middle/require-in-the-middle) ortadan kaldırmayı hedefleyen bir ekosistem girişimini yürütüyor. Bu yöntem ESM ile uyumsuz, bundler'larla çakışıyor ve kütüphanelerin iç detaylarına sıkı sıkıya bağımlı olduğu için kırılgan. Çözüm olarak Node'un diagnostics_channel modülündeki TracingChannel API'si öne çıkıyor: kütüphaneler kod yamalamaya gerek kalmadan yapılandırılmış olaylar yayınlıyor, APM araçları da bu olaylara abone olarak span oluşturuyor.
Ekip, unjs ekosistemindeki h3, srvx, unstorage, db0 ve Nitro gibi projelerde bu deseni önce kendi elleriyle uygulayarak kanıtladı, ardından OpenTelemetry JS topluluğuyla tartışma başlattı ve diagnostics_channel'ın yaratıcısı Stephen Belanger'ı sürece dahil etti. Haftalık 60 milyondan fazla indirmeye sahip pg, mysql2 ve redis gibi kritik veritabanı sürücüleriyle temas kurularak PR'ları tamamen üstlenme teklifi yapıldı ve üçü de kabul etti.
Tek başına düzinelerce kütüphaneye bu desteği eklemenin imkansız olduğunu fark eden mühendis, Claude Code tabanlı bir yapay zeka iş akışı kurdu: araştırma, uygulama, PR geri bildirimi değerlendirme ve takip panosu güncellemesi otomatikleştirildi. Mimari kararlar, kütüphane bakıcılarıyla iletişim ve nihai kod incelemesi ise tamamen insan kontrolünde kalıyor; her commit yapay zeka katkısını şeffaf şekilde belirtiyor.