Teknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor HaberleriTeknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor HaberleriTeknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor Haberleri
Yazı Tipi BoyutlandırıcıAa
  • Anasayfa
  • Teknoloji
    • Siber Güvenlik
    • Yapay Zeka
    • Donanım
    • Bilim
  • Yazılım
  • Savunma & İstihbarat
  • Oyun
  • Yaşam
    • Finans
    • Sinema
    • Dünyadan Haberler
  • İş Birliği
Okuma: Laravel’de Ek Yük Olmadan Hata İzleme Kurulumu
Paylaş
Yazı Tipi BoyutlandırıcıAa
Teknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor HaberleriTeknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor Haberleri
Ara
Bizi Takip Et
  • Hakkımızda
  • Gizlilik politikası
  • Tanıtım Yazısı ve Backlink Hizmeti
© 2026 Teknomers. All Rights Reserved.

Anasayfa » Laravel’de Ek Yük Olmadan Hata İzleme Kurulumu

Yazılım

Laravel’de Ek Yük Olmadan Hata İzleme Kurulumu

teknomers
Son güncelleme: 25 Şubat 2026 23:28
teknomers
Paylaş
Paylaş

Gece saat 2:17 ve birisi uygulamamın bozuk olduğunu söylüyor. Nasıl bozuk olduğu konusunda bir bilgi yok. Sadece beyaz bir sayfanın ekran görüntüsü ve “hey, şeyin öldü lol” yazıyor. Şimdi bir sunucuya SSH ile bağlanmış, tail -f storage/logs/laravel.log komutunu çalıştırıyor ve iç içe geçmiş binlerce satırlık karmaşayı incelemeye çalışıyorum. Uzun zamandır göz ardı ettiğim deprecation uyarıları, silmeyi unuttuğum bazı debug çıktıları ve içinde, muhtemelen, bu kişiye 500 hatası veren gerçek hatanın bulunduğu satırları arıyorum. Sonunda buluyorum. Eager load etmeyi unuttuğum bir ilişkideki null pointer. Bu, herhangi bir türde izleme ayarlamış olsaydım iki saniye alacak bir şey için on beş dakikalık bir günlük arkeolojisi oldu.

Bu da yaklaşık üç yıl önce oldu. Ertesi gün bunu düzelttim demek isterdim. Ama düzeltemedim.


Log::error() dönemi

Bunun yerine, muhtemelen sizin de yaptığınız gibi, stratejik yerlere Log::error() çağrıları serpiştirdim. 500 yanıtı aldığımda tetiklenen bir Slack webhook’u ayarladım. Kendime bunun izleme olduğunu söyledim.

Dürüst olmak gerekirse? Bu bir süre için işe yaradı.

Fakat sorun şu ki, Log::error('Bir şey yanlış gitti', ['user' => $user->id]) çağrısı yalnızca bir veri noktası verir. Ne olduğunu biliyorum, ancak ne sıklıkla olduğunu, isteğin gövdesinin nasıl göründüğünü, kullanıcının hatadan önce ne yaptığını veya bunun geçen Salı gördüğüm aynı hata mı yoksa yeni bir hata mı olduğunu bilmiyorum. Her hata bir adadır. Gruplama, trend yok, bağlam yok.

Bir kez 40 kez günde bir hata yaşadım. Bunun farkında değildim. Slack kanalım “500 hatası /dashboard’da” yazıyordu ve ben ah, o yine, bu hafta düzelteceğim diyordum. Görünüşe göre “o” aslında aynı rotayı etkileyen üç farklı hataydı ve bu hatalar, farklı kullanıcıları farklı şekillerde etkiliyordu. Ancak bir hafta boyunca günlükleri tarayıp grep yaptığımda bunu öğrendim. Eğlenceli bir gündü.


Sentry Sorusu

Sentry iyi bir yazılım. Aksi iddia etmeyeceğim.

Ancak bir Laravel yan projem için bunu ekiyorken — muhtemelen 100 aktif kullanıcısı olan bir proje — bir şey garip hissettirdi. SDK, pek çok şey getiriyor. Dashboard, ölçekli mikro hizmetler kullanan takımlar için tasarlandı ve ödediğim ücretlerin yarısı (performans izleme, oturum tekrar oynatma, sürüm izleme) aslında ihtiyacım olan şeyler değil. Fiyatlandırma katmanları, bir $29/aylık Digital Ocean droplet’ı yöneten birisi değil, risk sermayesi ile yanıp sönen bir girişimci olduğunuzu varsayıyor.

Laravel uygulamasında yerini alacak bir hata izleme istedim. Laravel ile ilişkilendirilmiş bir platform bağımsız bir araç değil. Kurulumun dakikalar içinde yapılabileceği bir şey, “bu 12 adımdan oluşan yapılandırma kılavuzunu takip et ve yapılandırma dosyasını yayınlamayı unutma ve kuyruk sürücüsünü ayarla…” değil.

Bu nedenle, bir tane geliştirdim. (Bu, kendimi tanıtma kısmı ama açıkçası, ona ihtiyacım olduğu için yaptım ve sizin de buna ihtiyacınız olabileceğini düşünüyorum.)


Gerçekten Kurulum

PHP hataları için iki adım:

composer require oopsy/oopsy-laravel

Sonra .env dosyanıza DSN’inizi ekleyin:

OOPSY_DSN=http://[email protected]/api/v1/projects/1

Hepsi bu kadar. Yapılandırma dosyası yayınlama yok, kaydedilecek middleware yok, manuel olarak eklenecek hizmet sağlayıcı yok. Paket otomatik olarak keşfeder ve kendini kaydeder. Uygulamanızda bir istisna oluştuğunda, tam yığın izini, kod bağlamıyla, istek verileri, kullanıcı bilgileri, ortamla birlikte yakalar ve Laravel’in Http::async() özelliğini kullanarak asenkron bir şekilde gönderir. Cevap süreleriniz değişmez. İzlenen uygulama asla yavaşlamaz ve kendisi yüzünden asla çökmez (bu, ironik olurdu).

JavaScript hataları için — ve burada en çok memnun kaldığım kısım — tek bir script etiketi ekliyorsunuz:

"https://your-oopsy.dev/api/v1/js/oopsy_pub_xxx.js">

Hiçbir npm yüklemesi yok. Hiçbir derleme adımı yok. Ön uç hattınıza 200KB’lık bir paket eklenmiyor. Bu, yakalanmamış istisnaları, işlenmemiş promise reddetmelerini ve breadcrumb’ları — tıklama olayları, konsol hataları, XHR ve fetch istekleri, gezinme değişiklikleri — kaydeden belirli bir proje için sunulan bağımsız bir script. Kapanmakta olan bir sekme olduğunda bile hatalar raporlandığı için sendBeacon kullanılıyor. Tüm bu şey belki birkaç kilobayt.

Breadcrumb kaydını doğru almak için utanç verici derecede fazla zaman harcadım. fetch ile ilgili bir kenar durumu var; globali monky-patch etmeniz gerekiyor ama aynı zamanda başkalarının monkey-patching işlemlerini de bozmayacak şekilde… ve bu başka bir blog yazısı.


Diğer Uçta Ne Görünüyor

Bir hata geldiğinde, parmak izi çıkartılması ve otomatik olarak gruplaması yapılır. Yani 500 kullanıcı aynı null pointer istisnasına hitap ettiğinde, 500 ayrı giriş değil, 500 olay sayısı olan bir sorun görüyorsunuz. Parmak izi, istisna sınıfı, dosya ve satır numarasına göre çalışır — ilk uygulama çerçevesi, vendor kodu değil — bu da olayları üzerinde düşündüğünüz şekilde gruplar.

Her sorun, tam yığın izini, çevresindeki kodu, bu hatayı tetikleyen HTTP isteğini, hangi kullanıcının etkilendiğini, önem seviyesini ve ortamı gösterir. JavaScript hatalarının bir JS rozeti vardır, böylece bir şeyin sunucu tarafında mı yoksa tarayıcıda mı patladığını hemen anlayabilirsiniz. Durum (çözülmemiş, çözüldü, göz ardı edildi), ciddiyet, kaynak ve ortamına göre filtreleyebilirsiniz.

Ayrıca e-posta ve Telegram bildirimleri de mevcut. Çünkü Laravel istisna izleme sistemi, sizi sabah 2’de uyandırmıyorsa, ne işe yarar ki? (şaka yapıyorum. Lütfen bildirim programınızı ayarlayın.)


Para Düşüncesi

Ücretsiz plan, bir proje için ayda 1.000 hata ve 7 günlük saklama süresi sunar. Bir yan proje için bu muhtemelen yeterlidir — eğer bir yan projede ayda 1.000’den fazla hata alıyorsanız, izleme dışında daha büyük sorunlarınız olabilir. Hobi planı, 30 günlük saklama süresi ile 5 proje için 50.000 hata ayda 5 dolardır; çoğu küçük üretim uygulaması burada yer alır. Eğer daha fazla ihtiyacınız varsa Pro planı 19 dolara çıkıyor, ama burada onu satmaya çalışmayacağım.

Özellikle istemediğim şey, hata hacminizi görünce diye düşündüren bir tür fiyatlandırmaydı. Laravel istisna izleme sistemi, her hatayı görmenizi istemeli, faturalardan korkmamanız için değil.


Neyse

Size temiz bir sonuç sunmuyor. Hata izleme, bir şeyin gereksiz olduğu yaparken, bir anda olmaması gerektiği ana kadar, sonra da 2’de günlük dosyalarına bakarken kendinizi neden altı ay önce bir şey kurmadığınızı sorgularken bulduğunuz bir şey. Ben bu kişi oldum. Birden fazla kez.

İki satırlık yapılandırma. Gerçekten tüm satım bu.

Dan

Kaynak: Orijinal Makale

Contents
  • Log::error() dönemi
  • Sentry Sorusu
  • Gerçekten Kurulum
  • Diğer Uçta Ne Görünüyor
  • Para Düşüncesi
  • Neyse
Üretimde PHP-FPM Neden Gerçek Kullanımdan Daha Fazla RAM Tüketir?
Laravel kuyruklarını kör olarak hata ayıklamaktan bıktım – bu yüzden ücretsiz bir kontrol paneli geliştirdim (Redis gerekmez)
Laravel’de N+1 Sorununu Ortadan Kaldırma: 120 Sorgudan 8 Sorguya 20 Dakikada
PHP Pipe Operatörünün Laravel Kodundaki Yardımları ve Yardımcı Olmadığı Yerler
Nimbus v0.4.0-alpha: Laravel API iş akışınızı kolaylaştıracak 10 yeni özellik
Bu Makaleyi Paylaş
Facebook Bağlantıyı Kopyala Yazdır
Paylaş
Önceki Makale CoD: Black Ops 7 ve Warzone’da Dominasyonu Sarsan Güncelleme
Sonraki Makale Intel veya AMD CPU Seçin, RTX 5080 Omen Max 16’dan $1200 Tasarruf Edin

Sanal Medya

FacebookBeğen
452Takip Et
PinterestSabitle
237Takip Et

Son Eklenenler

Mira Murati Yeniden Sahneye Çıkıyor
Genel
HP, RTX 5080 oyun PC’sinde 2.600 $ indirim yaptı!
Donanım
$559 Nvidia RTX 5070 GPU, en uygun fiyatla 1440p oyun sunuyor
Donanım
Laravel’de Carbon (MultiCarbon) ile Jalali ve Hijri Tarihleri
Yazılım
DDR4 bellek ve anakart üretimi yeniden başlıyor, DDR5’siz geleceğe hazırlık
Donanım
AI token maliyetleri büyük bir sorun haline geliyor, OpenAI çözümler arıyor
Donanım
//

Siber güvenlik, yapay zeka ve savunma sanayiinden; finans ve sinema dünyasına uzanan geniş bir yelpaze. Teknomers; teknoloji, strateji ve yazılım dünyasını sade bir dille sizlerle buluşturuyor.

Kurumsal

  • Hakkımızda
  • Gizlilik politikası
  • Tanıtım Yazısı ve Backlink Hizmeti

Kategoriler

  • Teknoloji
  • Oyun
  • Sinema
  • Siber Güvenlik
  • Bilim
  • Finans
  • Dünyadan Güncel Haberler

Populer

  • TV'de Ücretsiz İzlenebilen Şifresiz Erotik Kanallar (2025 Güncel Frekans Listesi)

  • The Last of Us PC Kontrolleri: Hızlı Silah Değiştirme ve Tüm Tuşlar (2025)

  • Hogwarts Legacy'de Odaklanma İksiri Nasıl Yapılır?

Teknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor HaberleriTeknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor Haberleri
Bizi Takip Et
© 2026 Teknomers. All Rights Reserved.
Welcome Back!

Sign in to your account

Kullanıcı Adı veya E-posta Adresi
Şifre

Şifrenizi mi unuttunuz?