Platform verilerindeki yükseliş ve düşüşleri izleyin
Tüm verilerin zaman içindeki değişimini gösteren trend analiz sistemi geliştirdik. Büyüme oranları, mevsimsel değişimler ve anormal durumlar otomatik tespit ediliyor.
Yeni kayıt ve aktif kullanıcı trendleri
Aylık ve yıllık gelir değişimleri
Şarkı ve sanatçı trend değişimleri
En yoğun kullanım zaman dilimleri
Trend analizi için geçmiş veriler periyodik olarak işlenir ve büyüme oranları hesaplanır. Bu işlemler genellikle gece saatlerinde çalışan scheduled job'lar tarafından yapılır.
app/Console/Kernel.php içinde $schedule->command('trends:calculate')->dailyAt('03:00') tanımı ile her gece saat 3'te trend hesaplama job'ı çalışır.
DB::table('streams')->selectRaw('DATE(created_at) as date, COUNT(*) as count')->groupBy('date') ile günlük toplamlar çıkarılır. Son 30, 90, 365 gün için ayrı ayrı hesaplanır.
Formül: growth_rate = (($current - $previous) / $previous) * 100. WoW (haftalık), MoM (aylık), YoY (yıllık) büyüme oranları ayrı ayrı hesaplanır.
Günlük dalgalanmaları yumuşatmak için 7 günlük hareketli ortalama: $data->sliding(7)->map(fn($week) => $week->avg()). Bu sayede trend daha net görülür.
Standart sapmadan 2σ uzaklaşan değerler anomali olarak işaretlenir. Ani düşüş veya yükseliş durumunda TrendAnomalyDetected eventi fırlatılır.
Hesaplanan trendler trend_stats tablosuna yazılır ve Cache::put('trends:dashboard', $data, now()->addDay()) ile 24 saat cache'lenir.
(Yıldan Yıla Büyüme)
Geçen yılın aynı dönemine göre büyüme oranı. Mevsimsel etkileri filtreler.
(Mevsimsellik)
Belirli dönemlerde tekrar eden kalıplar. Yaz aylarında artan dinlenme gibi.