Tutorial 11 Aug 2026 16 Kali Dibaca

Cara Membuat Dashboard Monitoring Aplikasi dengan Laravel Pulse

Gugun Nurdiansyah
Penulis
Cara Membuat Dashboard Monitoring Aplikasi dengan Laravel Pulse

Apa Itu Laravel Pulse?

Laravel Pulse adalah dashboard monitoring yang dirancang untuk memberikan informasi singkat mengenai kondisi aplikasi Laravel.

Pulse dapat membantu developer menemukan masalah seperti:

  1. Request yang lambat.

  2. Query database lambat.

  3. Queue bermasalah.

  4. Job yang membutuhkan waktu lama.

  5. Exception.

  6. Cache hit dan miss.

  7. Penggunaan CPU.

  8. Penggunaan memory.

  9. Penggunaan storage.

  10. Pengguna yang paling aktif.

Laravel membedakan Pulse dengan Telescope. Pulse lebih ditujukan untuk melihat gambaran performa dan penggunaan aplikasi, sedangkan Telescope lebih cocok untuk debugging event atau request secara lebih mendalam.

Informasi yang Bisa Dipantau

Dashboard Pulse menyediakan beberapa card bawaan.

Application Usage

Menampilkan pengguna yang paling banyak:

  • Membuat request.

  • Menjalankan job.

  • Mengalami slow request.

Slow Requests

Menampilkan request aplikasi yang melewati batas waktu tertentu.

Secara default, threshold slow request adalah:

1000 ms

atau satu detik.

Slow Queries

Menampilkan query database yang membutuhkan waktu lama.

Secara default, query yang membutuhkan waktu lebih dari 1.000 ms akan dicatat sebagai slow query.

Exceptions

Menampilkan exception yang terjadi pada aplikasi beserta frekuensi dan waktu terakhir terjadinya.

Queues

Menampilkan kondisi queue seperti:

  1. Job menunggu.

  2. Job sedang diproses.

  3. Job selesai.

  4. Job dilepas kembali.

  5. Job gagal.

Cache

Menampilkan statistik cache hit dan cache miss untuk membantu melihat apakah strategi caching aplikasi bekerja dengan baik.

Servers

Menampilkan penggunaan resource server seperti CPU, memory, dan storage. Untuk memperoleh data server, command pulse:check harus dijalankan pada server yang ingin dipantau.

1. Install Laravel Pulse

Install menggunakan Composer:

composer require laravel/pulse

Kemudian publish konfigurasi dan migration:

php artisan vendor:publish --provider="Laravel\Pulse\PulseServiceProvider"

Jalankan migration:

php artisan migrate

Setelah migration selesai, dashboard Pulse dapat diakses melalui:

/pulse

Implementasi storage bawaan Pulse saat ini membutuhkan MySQL, MariaDB, atau PostgreSQL. Jika aplikasi menggunakan database lain, Pulse dapat menggunakan koneksi database terpisah.

2. Membuka Dashboard Pulse

Jalankan aplikasi:

php artisan serve

Kemudian buka:

http://localhost:8000/pulse

Dashboard akan mulai menampilkan data setelah aplikasi menerima request dan aktivitas lainnya.

Anda dapat mencoba membuka beberapa halaman aplikasi, menjalankan transaksi, atau mengeksekusi query untuk melihat data mulai masuk ke Pulse.

3. Publish Konfigurasi Pulse

Jika ingin mengubah pengaturan Pulse:

php artisan vendor:publish --tag=pulse-config

File konfigurasi akan tersedia pada:

config/pulse.php

File tersebut digunakan untuk mengatur recorder, threshold, sampling, database, dan berbagai pilihan monitoring lainnya.

4. Monitoring Server

Untuk menampilkan penggunaan CPU, RAM, dan storage, jalankan:

php artisan pulse:check

Command ini harus berjalan terus pada setiap server aplikasi yang ingin dimonitor.

Contoh data yang dapat muncul:

CPU        : 35%
Memory     : 62%
Storage    : 48%
Server     : production-01

Jika memiliki beberapa server, berikan nama berbeda.

Tambahkan ke .env:

PULSE_SERVER_NAME=production-01

Pada server lainnya:

PULSE_SERVER_NAME=production-02

Setiap server yang mengirimkan data ke Pulse harus memiliki nama yang unik.

5. Menjalankan Pulse di Production

Karena:

php artisan pulse:check

merupakan proses yang berjalan dalam waktu lama, jangan mengandalkan terminal biasa pada production.

Laravel merekomendasikan penggunaan process monitor seperti Supervisor agar proses dapat dijalankan kembali ketika berhenti.

Contoh sederhana Supervisor:

[program:laravel-pulse]
process_name=%(program_name)s
command=php /var/www/app/artisan pulse:check
autostart=true
autorestart=true
user=www-data
redirect_stderr=true
stdout_logfile=/var/log/laravel-pulse.log

Sesuaikan:

/var/www/app

dengan lokasi project Laravel.

6. Restart Pulse Setelah Deployment

Karena pulse:check merupakan long-running process, perubahan source code tidak langsung dibaca oleh proses yang sedang berjalan.

Laravel menyediakan:

php artisan pulse:restart

Command tersebut dapat dipanggil pada proses deployment agar Pulse melakukan restart secara aman.

Contohnya:

git pull

composer install --no-dev --optimize-autoloader

php artisan migrate --force

php artisan optimize

php artisan pulse:restart

Pulse menggunakan cache untuk menyimpan sinyal restart, sehingga cache driver aplikasi perlu dikonfigurasi dengan benar.

7. Mengamankan Dashboard Pulse

Secara default, dashboard /pulse hanya dapat diakses langsung pada environment local.

Untuk production, Anda harus menentukan siapa yang diperbolehkan melihatnya melalui Gate viewPulse.

Buka:

app/Providers/AppServiceProvider.php

Tambahkan:

use App\Models\User;
use Illuminate\Support\Facades\Gate;

Kemudian:

public function boot(): void
{
    Gate::define(
        'viewPulse',
        function (User $user) {
            return $user->role === 'super-admin';
        }
    );
}

Jika aplikasi memiliki permission:

Gate::define(
    'viewPulse',
    function (User $user) {
        return $user->hasPermission(
            'monitoring.view'
        );
    }
);

Jangan membuka /pulse untuk semua pengguna karena dashboard dapat menampilkan informasi internal mengenai performa aplikasi.

8. Monitoring Slow Query

Misalnya aplikasi memiliki query:

$transactions = Transaction::query()
    ->with([
        'customer',
        'items.product',
        'payments',
    ])
    ->get();

Jika query membutuhkan waktu terlalu lama, Pulse dapat menampilkannya pada card:

Slow Queries

Pulse menggunakan threshold default 1.000 ms, tetapi threshold dapat disesuaikan melalui konfigurasi.

Contohnya pada config/pulse.php:

Recorders\SlowQueries::class => [
    'threshold' => [
        'default' => 500,
    ],
],

Dengan konfigurasi tersebut, query lebih dari:

500 ms

dapat dianggap lambat.

Hasil monitoring kemudian dapat digunakan untuk menentukan apakah aplikasi membutuhkan:

  1. Database index.

  2. Eager loading.

  3. Cache.

  4. Pagination.

  5. Perbaikan struktur query.

  6. Optimasi database.

9. Monitoring Slow Request

Pulse juga dapat mendeteksi endpoint yang lambat.

Contohnya:

/dashboard
/reports
/api/products
/admin/transactions

Jika request sering melebihi threshold, periksa:

  1. Query database.

  2. API eksternal.

  3. Proses file.

  4. Loop data.

  5. Rendering view.

  6. Perhitungan laporan.

  7. Cache.

Threshold request dapat diatur berbeda berdasarkan URL. Pulse memang mendukung konfigurasi threshold tertentu untuk pola request tertentu.

Contoh:

Recorders\SlowRequests::class => [
    'threshold' => [
        '#^/admin/reports#' => 3000,
        'default' => 1000,
    ],
],

Artinya halaman laporan diberikan batas:

3 detik

sedangkan request lainnya menggunakan satu detik.

10. Monitoring Queue

Jika aplikasi menggunakan:

php artisan queue:work

Pulse dapat digunakan untuk melihat performa queue.

Informasi yang dapat dipantau termasuk job yang queued, processing, processed, released, dan failed.

Contoh job:

GenerateMonthlyReport::dispatch();

Jika proses tersebut membutuhkan waktu terlalu lama, Pulse dapat menampilkannya melalui:

Slow Jobs

Threshold slow job default juga 1.000 ms dan dapat disesuaikan.

11. Monitoring API Eksternal

Pulse juga dapat memantau outgoing request yang dibuat menggunakan HTTP Client Laravel.

Misalnya:

Http::post(
    'https://example-api.com/payment',
    $data
);

Jika API eksternal lambat, Pulse dapat menampilkannya pada:

Slow Outgoing Requests

Threshold default untuk card tersebut adalah 1.000 ms.

Fitur ini berguna untuk memantau integrasi seperti:

  1. Payment gateway.

  2. WhatsApp API.

  3. Marketplace API.

  4. Shipping API.

  5. ERP.

  6. CRM.

  7. Sistem pihak ketiga.

Dengan demikian, developer dapat mengetahui apakah performa aplikasi lambat karena kode internal atau layanan eksternal.

12. Monitoring Cache

Pulse dapat membantu melihat apakah cache aplikasi benar-benar digunakan.

Dashboard dapat menampilkan:

Cache Hit
Cache Miss

Jika cache miss terlalu tinggi, developer dapat mengevaluasi strategi cache yang digunakan. Pulse dapat mengelompokkan statistik cache berdasarkan key dan mendukung konfigurasi grouping untuk key yang memiliki pola serupa.

Contoh:

Cache::remember(
    'dashboard-statistics',
    600,
    function () {
        return $this->calculateStatistics();
    }
);

Cache yang efektif dapat mengurangi kebutuhan query dan proses berulang.

13. Customize Dashboard Pulse

Dashboard Pulse dapat disesuaikan.

Publish view:

php artisan vendor:publish --tag=pulse-dashboard

File akan tersedia pada:

resources/views/vendor/pulse/dashboard.blade.php

Dashboard Pulse menggunakan Livewire dan dapat dikustomisasi tanpa perlu rebuild JavaScript hanya untuk mengatur layout card.

Contohnya:

<x-pulse full-width>

    <livewire:pulse.servers
        cols="12"
    />

    <livewire:pulse.usage
        cols="6"
    />

    <livewire:pulse.slow-requests
        cols="6"
    />

    <livewire:pulse.slow-queries
        cols="6"
    />

    <livewire:pulse.queues
        cols="6"
    />

</x-pulse>

Secara default, Pulse menggunakan layout grid 12 kolom, tetapi jumlah kolom serta ukuran masing-masing card dapat dikustomisasi.

14. Sampling untuk Aplikasi dengan Traffic Tinggi

Pada aplikasi dengan traffic tinggi, menyimpan seluruh aktivitas dapat menambah beban database.

Pulse menyediakan fitur sampling sehingga hanya sebagian aktivitas yang dicatat dan hasil dashboard dapat ditampilkan sebagai estimasi.

Fitur ini berguna untuk:

  1. Marketplace besar.

  2. Aplikasi SaaS.

  3. API dengan traffic tinggi.

  4. Sistem multi-cabang.

  5. Website dengan banyak pengguna.

Jangan langsung meningkatkan jumlah data monitoring tanpa mempertimbangkan kebutuhan storage dan performa.

Laravel Pulse vs Telescope

Gunakan Pulse ketika ingin mengetahui:

  1. Apakah aplikasi lambat.

  2. Server sedang penuh atau tidak.

  3. Query apa yang paling lambat.

  4. Queue sedang bermasalah atau tidak.

  5. Exception apa yang sering terjadi.

  6. Bagaimana penggunaan aplikasi secara umum.

Gunakan Telescope ketika membutuhkan debugging yang lebih detail terhadap request, exception, query, job, notification, dan aktivitas tertentu.

Laravel sendiri menyarankan Telescope untuk debugging event individual yang lebih mendalam dibandingkan gambaran umum yang diberikan Pulse.

Kesalahan yang Perlu Dihindari

Membuka Pulse untuk Semua User

Dashboard monitoring hanya sebaiknya tersedia untuk administrator atau tim teknis.

Tidak Menjalankan pulse:check

Tanpa:

php artisan pulse:check

card monitoring resource server tidak mendapatkan data server.

Menjalankan pulse:check Manual di Production

Gunakan Supervisor atau process manager agar proses tetap hidup.

Mengabaikan Slow Query

Query yang terus-menerus lambat dapat meningkatkan penggunaan CPU dan database.

Monitoring Tanpa Tindakan

Dashboard monitoring tidak memberikan manfaat jika masalah yang ditemukan tidak dianalisis dan diperbaiki.

Contoh Penggunaan Pulse untuk Bisnis

Laravel Pulse dapat digunakan pada:

Point of Sales

Memantau transaksi lambat, queue, database, dan penggunaan server.

Sistem Inventory

Mengetahui query stok dan laporan yang membutuhkan waktu lama.

Aplikasi Klinik

Memantau request pendaftaran, pemeriksaan, pembayaran, serta exception.

Marketplace

Memantau API pembayaran, queue pesanan, query produk, dan server.

Sistem Multi-Cabang

Memantau performa aplikasi ketika digunakan banyak cabang secara bersamaan.

SaaS

Melihat aktivitas pengguna, performa API, exception, cache, dan penggunaan infrastruktur.

Checklist Laravel Pulse Production

Sebelum digunakan pada production, pastikan:

  1. Pulse sudah terinstall.

  2. Migration sudah dijalankan.

  3. /pulse dapat diakses administrator.

  4. Authorization sudah dibuat.

  5. pulse:check berjalan.

  6. Supervisor sudah dikonfigurasi.

  7. Cache driver bekerja.

  8. Slow query dipantau.

  9. Slow request dipantau.

  10. Queue dipantau.

  11. Exception dipantau.

  12. Kapasitas database Pulse diperhatikan.

  13. Sampling dipertimbangkan jika traffic besar.

  14. pulse:restart dijalankan setelah deployment.

Monitoring Aplikasi Bersama Ovla Media

Ovla Media dapat membantu pengembangan dan optimasi aplikasi Laravel melalui:

  1. Implementasi Laravel Pulse.

  2. Monitoring performa server.

  3. Optimasi database.

  4. Optimasi slow query.

  5. Optimasi Laravel Queue.

  6. Monitoring API.

  7. Optimasi cache.

  8. Dashboard monitoring.

  9. Audit aplikasi Laravel.

  10. Pengembangan aplikasi bisnis custom.

Monitoring dapat diterapkan pada sistem Point of Sales, inventory, klinik, marketplace, CRM, ERP, SaaS, dan aplikasi multi-cabang.

Kesimpulan

Laravel Pulse merupakan solusi monitoring resmi Laravel untuk melihat kondisi aplikasi melalui satu dashboard.

Instalasi dasarnya:

composer require laravel/pulse

php artisan vendor:publish --provider="Laravel\Pulse\PulseServiceProvider"

php artisan migrate

Kemudian dashboard dapat dibuka melalui:

/pulse

Untuk monitoring resource server, jalankan:

php artisan pulse:check

Pulse dapat membantu developer memantau:

  1. Server.

  2. Request lambat.

  3. Query lambat.

  4. Queue.

  5. Slow jobs.

  6. Exception.

  7. Cache.

  8. Aktivitas pengguna.

  9. API eksternal.

Dengan monitoring yang tepat, masalah performa dapat ditemukan lebih cepat sebelum berdampak besar pada pengalaman pengguna dan operasional bisnis.

#Laravel Pulse #Laravel Monitoring #Dashboard Laravel #Monitoring Aplikasi #Monitoring Server Laravel #Slow Query Laravel #Slow Request Laravel #Laravel Queue #Laravel Performance #Laravel Cache #Laravel Telescope #Laravel 13 #Optimasi Laravel #Monitoring Database #Dashboard Monitoring #Laravel Developer Indonesia #Web Development #Application Monitoring #Ovla Media #Jasa Laravel
Beranda Produk Artikel
Konsultasi
OVLA

Navigasi Utama

Hubungi Kami

Mulai Konsultasi Sekarang