Ticket yığılmasını istatistikle yakalamak: Surge'ün tespit mantığı
Aynı dakikalarda gelen otuz "internet yok" ticketı tek bir olaydır. Surge bunu nasıl anlıyor?
Yardım masasında bir anahtar bozulduğunda ticketlar tek tek değil, dalga halinde gelir. İnsan gözü bunu bir süre sonra fark eder; Surge ilk dakikada fark etsin istedim.
Pencere ve taban çizgisi
Her kategori ve konum için son haftaların gelişinden bir taban çizgisi hesaplanıyor. Kısa bir pencerede (varsayılan 10 dakika) geliş, taban çizgisinin belirgin katına çıkarsa aday bir yığılma oluşuyor. Eşikler kural bazında ayarlanabiliyor.
Benzerlik
Aday ticketların başlıkları normalize edilip kelime kümeleri karşılaştırılıyor; "internet yok", "wi-fi çalışmıyor", "3. kat ağ" aynı grupta toplanıyor. Her ticketın gruba uyum yüzdesi ekranda görünür, yanlış eşleşen ayıklanabilir.
// basitleştirilmiş skor = 0.5*kategori + 0.2*konum + 0.3*metin_benzerliği skor >= eşik ? gruba ekle : geç
Tek olay
Grup, bir ana ticket altında büyük olaya dönüşür: problem kaydı açılır, hepsine ortak takip gönderilir, self-servis portala duyuru çıkar ki kullanıcı yeni ticket açmasın. Ana ticket çözülünce hepsi birlikte kapanır. Kod GitHub'da; 11 ve 12 için tek paket.