Looking to hire Laravel developers? Try LaraJobs

monitor-laravel maintained by jasnita

Description
Agent Jasnita Monitor untuk Laravel: error, performa, query, dan breadcrumb dikirim ke server Jasnita Monitor.
Author
Last update
2026/09/26 03:39 (dev-main)
License
Links
Downloads
18

Comments
comments powered by Disqus

jasnita/monitor-laravel

Agent Jasnita Monitor untuk Laravel: exception, performa request/queue, dan breadcrumb (query, log, HTTP client) dikirim ke server Jasnita Monitor.

  • Laravel 6–12, PHP 7.2+ (diuji: Laravel 6 + PHP 7.4, Laravel 10 & 12 + PHP 8.2)
  • Pasang tanpa mengubah berkas aplikasi (Laravel 8+)
  • Password, token, cookie disaring di server walaupun klien lupa mengatur apa pun

Pasang

composer require jasnita/monitor-laravel
php artisan monitor:install --dsn=https://<key>@monitor.jasnita.com/<dsn_id>
php artisan monitor:test

DSN ada di dashboard Jasnita Monitor, halaman project (klik untuk menyalin).

Daftarkan repo ini sebagai sumber paket di aplikasi Anda, lalu pasang seperti biasa:

composer config repositories.jasnita vcs https://github.com/alisyarudin/sdk-monitor-laravel
composer require jasnita/monitor-laravel:dev-main

dev-main = versi terbaru di branch main. Bila repo sudah punya tag rilis (mis. v1.0.0), pakai versinya supaya tidak ikut berubah tiap ada commit baru:

composer require jasnita/monitor-laravel:^1.0

Setelah paket terdaftar di Packagist, baris repositories itu boleh dihapus dari composer.json.

Sudah. Pada Laravel 8 ke atas pelapor exception terpasang otomatis — tidak ada yang perlu diubah di bootstrap/app.php maupun Handler.php.

Belum punya reportable(), jadi tambahkan di app/Exceptions/Handler.php (Laravel 6 memakai Exception, Laravel 7 Throwable — ikuti tanda tangan method report() yang sudah ada di berkas Anda):

public function report(Exception $exception)   // Laravel 7: Throwable $exception
{
    \Jasnita\Monitor\Laravel\Integration::captureUnhandledException($exception);
    parent::report($exception);
}

dan set JASNITA_MONITOR_AUTO_REPORT=false.

Konfigurasi (.env)

Variabel Bawaan Keterangan
JASNITA_MONITOR_DSN — Kosong = tidak mengirim apa pun (cocok untuk local)
JASNITA_MONITOR_ENVIRONMENT APP_ENV
JASNITA_MONITOR_RELEASE commit git Isi saat deploy bila server tidak membawa folder .git
JASNITA_MONITOR_TRACES_SAMPLE_RATE 0.1 Porsi request yang dicatat performanya. 1.0 hanya untuk dev
JASNITA_MONITOR_SAMPLE_RATE 1.0 Porsi error yang dikirim
JASNITA_MONITOR_SEND_DEFAULT_PII false Kirim IP & user yang login
JASNITA_MONITOR_AUTO_REPORT true Matikan bila memasang pelapor manual

Pengaturan lain (tag global, exception yang diabaikan, opsi lanjutan): php artisan vendor:publish --tag=jasnita-monitor-config → config/jasnita-monitor.php.

Dari kode aplikasi

use Jasnita\Monitor\Facades\Monitor;

Monitor::captureException($e);                       // laporkan exception yang Anda tangkap sendiri
Monitor::captureMessage('Saldo gateway menipis', 'warning');
Monitor::setUser(['id' => $user->id, 'email' => $user->email]);
Monitor::setTag('tenant', $tenantId);                // bisa difilter di dashboard

Naik dari v1

v2 membawa SDK sendiri — tidak lagi menarik paket pihak ketiga untuk pengiriman. Konfigurasi, perintah, dan facade tidak berubah:

composer update jasnita/monitor-laravel
php artisan config:clear
php artisan monitor:test

Server Jasnita Monitor harus sudah versi yang mengenali header X-Jasnita-Auth (ingest per 2026-09) sebelum aplikasi dinaikkan ke v2.

Menyelidiki query lambat & N+1

Dengan JASNITA_MONITOR_TRACES_SAMPLE_RATE > 0, setiap query di request yang ter-sampling dicatat. Halaman Database di dashboard merangkum query paling berat, paling lambat, dan pola N+1 (query yang sama berulang di satu request) beserta route-nya.

Untuk pengembang paket

Kode di src/Sdk/ dan src/Laravel/ dihasilkan oleh tools/rebrand.php dari proyek sumber terbuka berlisensi MIT (asal-usul dan teks lisensi di LICENSES/). Jangan diubah manual — perubahan tertimpa saat pembaruan. Kustomisasi Jasnita ada di src/*.php, src/Console, src/Facades, src/Support, dan config/jasnita-monitor.php.

# naikkan versi hulu di tools/upstream.json, lalu:
php tools/rebrand.php     # tarik ulang + ganti nama; gagal bila ada nama hulu tersisa
tools/test.sh             # test suite hulu (1.700+ tes) terhadap hasilnya