Ringkasan Singkat
Monitoring aplikasi Laravel dan API membantu tim mendeteksi error, penurunan performa, kegagalan job, serta masalah endpoint sebelum berdampak besar ke pengguna. Tutorial ini membahas langkah praktis untuk menyiapkan logging, health check, queue monitoring, exception tracking, metrik performa, dan uptime monitoring pada aplikasi Laravel.
Prasyarat
- Aplikasi Laravel sudah berjalan di lokal, staging, atau production.
- Akses ke terminal dan file konfigurasi Laravel.
- PHP, Composer, database, dan web server sudah terpasang.
- Akses ke environment variable melalui file
.envatau secret manager. - Opsional: akun layanan monitoring seperti Sentry, Bugsnag, New Relic, Grafana, Prometheus, atau UptimeRobot.
Langkah-Langkah Monitoring Aplikasi Laravel dan API
Aktifkan Logging Laravel dengan Benar
Pastikan Laravel menyimpan log aplikasi secara konsisten. Buka file
.envdan atur channel log sesuai kebutuhan.LOG_CHANNEL=stackLOG_LEVEL=errorUntuk production, gunakan level
erroratauwarningagar log tidak terlalu ramai. Untuk staging, Anda dapat memakaidebugjika sedang melakukan investigasi.Gunakan Struktur Log yang Mudah Dianalisis
Tambahkan konteks saat menulis log, terutama untuk API request, user ID, order ID, atau nama service eksternal.
Log::error('Payment gateway failed', ['user_id' => $user->id, 'order_id' => $order->id]);Struktur ini memudahkan pencarian masalah saat aplikasi Laravel menangani banyak request.
Pasang Exception Tracking
Gunakan layanan exception tracking seperti Sentry atau Bugsnag untuk menangkap error production secara otomatis. Contoh instalasi Sentry:
composer require sentry/sentry-laravelLalu publish konfigurasi:
php artisan sentry:publish --dsn=DSN_ANDATambahkan DSN ke file
.env:SENTRY_LARAVEL_DSN=https://[email protected]/project-idDengan exception tracking, Anda bisa melihat stack trace, frekuensi error, environment, dan request yang menyebabkan masalah.
Buat Endpoint Health Check untuk API
Tambahkan endpoint sederhana untuk memeriksa status aplikasi, database, cache, dan queue. Contoh route:
Route::get('/health', function () { DB::select('select 1'); return response()->json(['status' => 'ok']); });Endpoint ini dapat dipantau oleh load balancer, uptime monitor, atau pipeline deployment.
Monitor Response Time API
Response time API adalah metrik penting untuk mengetahui performa aplikasi. Anda dapat mencatat durasi request melalui middleware khusus.
Buat middleware yang menghitung waktu mulai dan selesai request, lalu simpan ke log atau sistem metrik.
$duration = microtime(true) - LARAVEL_START;Prioritaskan endpoint penting seperti login, checkout, payment callback, pencarian, dan endpoint integrasi pihak ketiga.
Gunakan Laravel Telescope untuk Development dan Staging
Laravel Telescope berguna untuk memantau request, query database, job, mail, notification, exception, dan cache saat development atau staging.
composer require laravel/telescope --devphp artisan telescope:installphp artisan migrateHindari mengaktifkan Telescope secara terbuka di production karena dapat menyimpan data sensitif dan menambah beban aplikasi.
Monitor Queue dan Job Laravel
Jika aplikasi menggunakan queue, pastikan job yang gagal dapat terdeteksi. Jalankan migrasi failed jobs jika belum tersedia.
php artisan queue:failed-tablephp artisan migrateGunakan perintah berikut untuk melihat job gagal:
php artisan queue:failedUntuk production, gunakan Laravel Horizon jika memakai Redis queue.
composer require laravel/horizonphp artisan horizon:installHorizon membantu memantau throughput, runtime, retry, dan status worker queue.
Aktifkan Uptime Monitoring
Gunakan layanan uptime monitoring untuk mengecek endpoint publik seperti halaman utama dan
/health. Atur interval pengecekan sesuai kebutuhan, misalnya setiap 1 sampai 5 menit.Pastikan notifikasi dikirim ke email, Slack, Telegram, Microsoft Teams, atau kanal incident response yang digunakan tim.
Pantau Database dan Query Lambat
Query lambat sering menjadi penyebab API terasa berat. Pada Laravel, Anda dapat memakai listener untuk mendeteksi query yang melebihi ambang batas tertentu.
DB::listen(function ($query) { if ($query->time > 500) { Log::warning('Slow query detected', ['sql' => $query->sql, 'time_ms' => $query->time]); } });Simpan informasi query lambat agar tim dapat melakukan optimasi index, pagination, eager loading, atau caching.
Monitor Integrasi API Eksternal
Jika aplikasi Laravel memanggil API pihak ketiga, catat status code, durasi request, timeout, dan jumlah kegagalan.
Gunakan timeout eksplisit saat memakai HTTP client Laravel.
Http::timeout(10)->get('https://api.example.com/data');Tambahkan retry secara hati-hati untuk error sementara.
Http::retry(3, 200)->timeout(10)->get('https://api.example.com/data');Siapkan Alert yang Relevan
Alert harus fokus pada masalah yang benar-benar membutuhkan tindakan. Contoh alert penting adalah error rate meningkat, response time API melewati batas, queue menumpuk, database tidak bisa diakses, disk hampir penuh, dan endpoint health check gagal.
Hindari alert terlalu banyak karena dapat membuat tim mengabaikan notifikasi penting.
Buat Dashboard Monitoring
Gunakan dashboard untuk melihat metrik utama dalam satu tempat. Metrik yang sebaiknya ditampilkan meliputi uptime, error rate, latency API, request per minute, CPU, memory, database connection, queue length, dan failed jobs.
Dashboard dapat dibuat menggunakan Grafana, New Relic, Datadog, Kibana, atau layanan observability lain yang sesuai dengan stack Anda.
Tips Monitoring Laravel dan API
- Gunakan environment berbeda untuk development, staging, dan production.
- Jangan menyimpan token, password, atau data sensitif di log.
- Tentukan SLA atau target performa API sejak awal.
- Gunakan correlation ID untuk melacak request lintas service.
- Tambahkan rate limiting pada endpoint API penting.
- Pastikan worker queue diawasi oleh Supervisor, systemd, atau platform orchestration.
- Uji alert secara berkala agar tidak hanya aktif di konfigurasi.
- Dokumentasikan prosedur incident response untuk error production.
Penutup
Monitoring aplikasi Laravel dan API bukan hanya soal mencatat error, tetapi juga memahami kesehatan sistem secara menyeluruh. Dengan logging yang rapi, exception tracking, health check, queue monitoring, uptime monitoring, dan dashboard metrik, tim dapat mendeteksi masalah lebih cepat dan menjaga pengalaman pengguna tetap stabil.