Laravel Nightwatch Nedir? Nasıl Kurulur? Supervisor ile Nasıl Çalıştırılır?

Laravel uygulamanızda performans takibi, log analizi ve hata gözlemi için kullanabileceğiniz yeni bir oyuncu var: Laravel Nightwatch. Laravel ekosistemine entegre şekilde tasarlanmış bu monitoring aracı, saniyeler içinde kurulabiliyor ve arka planda Laravel agentı ile uygulamanızı dinliyor. Bu yazıda, Nightwatch nedir, ne işe yarar, nasıl kurulur ve server ortamında nasıl sürekli çalışacak şekilde ayarlanır, adım adım anlatıyoruz.

📈 Nightwatch Nedir?

Laravel Nightwatch, Laravel uygulamaları için geliştirilmiş bir izleme (monitoring) aracıdır. Aşağıdaki olayları gerçek zamanlı olarak izleyebilir:

  • HTTP request ve response performansı

  • Dış API çağrıları

  • Mail gönderimleri

  • Job kuyruğu ve performans takibi

  • Cache hit/miss durumları

  • Artisan komut çalıştırımları

  • Scheduled task durumu

Ayrıca, hataları e-posta yoluyla da bildirebiliyor ve projenin tamamını tek bir panelden izlemenizi sağlıyor.

Nightwatch, Laravel'e özel geliştirilmiş bir SaaS hizmetidir. Trilyonlarca olaydaki veriyi optimize şekilde sunabilecek altyapıya sahiptir.

✨ Nightwatch Kurulumu

1. Hesap Oluşturma

https://nightwatch.laravel.com/sign-up adresinden bir hesap oluşturmanız gerekiyor.

2. Organizasyon Oluşturma

Hesabı açtıktan sonra sizden bir organizasyon bilgisi isteniyor:

  • Organizasyon adı

  • Logo (opsiyonel)

  • Vergi numarası / fatura adresi (opsiyonel)

3. Uygulama Kurulumu

Uygulama adı, varsa URL, logo, ve ilk ortam bilgilerini girin. Ortam adı genelde Production olur.

4. Laravel Paket Kurulumu

Terminalden şu komutla Nightwatch paketini kurun:

composer require laravel/nightwatch

.env dosyasına size verilen NIGHTWATCH_TOKEN'u ekleyin:

NIGHTWATCH_TOKEN=... (size özel token)

Log kanalını da Nightwatch olarak değiştirin:

LOG_CHANNEL=nightwatch

5. Request Sampling Ayarı

Nightwatch'a gönderilecek istek oranını belirlemek için:

NIGHTWATCH_REQUEST_SAMPLE_RATE=0.1

Bu değeri yükseltip/düşürebilirsiniz.

6. Agent Çalıştırma

Aşağıdaki komut ile Nightwatch agentını başlatın:

php artisan nightwatch:agent

Console üzerinde LISTENING yazıyorsa bağlantı başarılı demektir.

🪖 Supervisor ile Nightwatch Agentı Arka Planda Çalıştırmak

Sunucunuzda agentı sürekli çalışması için Supervisor kullanabilirsiniz.

1. Config Dosyası

Dosyayı oluşturun:

sudo nano /etc/supervisor/conf.d/nightwatch-agent.conf

Içine şunu yazın:

[program:nightwatch-agent]
process_name=%(program_name)s
command=php /var/www/projeniz/artisan nightwatch:agent
autostart=true
autorestart=true
user=www-data
numprocs=1
redirect_stderr=true
stdout_logfile=/var/www/projeniz/storage/logs/nightwatch-agent.log
stopwaitsecs=3600

2. Supervisor’ı Yenile

sudo supervisorctl reread
sudo supervisorctl update
sudo supervisorctl start nightwatch-agent

Durumu kontrol etmek için:

sudo supervisorctl status nightwatch-agent

Agentın sürekli çalışması için bu şart. Yoksa sunucu yeniden başladığında tekrar elle başlatman gerekebilir.

📊 Nightwatch Paneline Genel Bakış

Agent aktif olduktan sonra panelde şunları takip edebilirsiniz:

  • Hatalar

  • Query performansı

  • Job durumu (processed, released, failed)

  • Şema gecikmeler

  • Mail gönderim durumu

  • Scheduled task'ların zamanlaması

Ayrıca şu gibi PRO+ özellikler de mevcut:

  • Job threshold tanımlama

  • Route bazlı performans alarmı

  • Scheduled task timeout kontrolü


🌟 Sonuç

Laravel Nightwatch, modern uygulamaların izlenmesi için doğrudan Laravel takımı tarafından geliştirilen çok hafif ama bir o kadar da güçlü bir monitoring çözümü. Kurulumu kolay, kullanımı keyifli ve geliştirici deneyimini bir üst seviyeye çıkaran bir sistem.

Denemek isteyenler için şöyle diyebiliriz:

1 dakikada kuruluyor, ama projeye kattığı şey aylarca uğraşmayla bile zor elde edilir.


Laravel Nightwatch'a kayıt olmak için: 👉 https://nightwatch.laravel.com/sign-up

0
Subscribe to my newsletter

Read articles from Uygar Öztürk Ceylan directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Uygar Öztürk Ceylan
Uygar Öztürk Ceylan