jasnita / monitor-laravel
Agent Jasnita Monitor untuk Laravel: error, performa, query, dan breadcrumb dikirim ke server Jasnita Monitor.
Requires
- php: ^7.2 | ^8.0
- ext-curl: *
- ext-json: *
- ext-mbstring: *
- guzzlehttp/psr7: ^1.8.4|^2.1.1|^3.0.0
- illuminate/support: ^6.0 | ^7.0 | ^8.0 | ^9.0 | ^10.0 | ^11.0 | ^12.0 | ^13.0
- jean85/pretty-package-versions: ^1.5|^2.0.4
- nyholm/psr7: ^1.0
- psr/log: ^1.0|^2.0|^3.0
- symfony/options-resolver: ^4.4.30|^5.0.11|^6.0|^7.0|^8.0
- symfony/psr-http-message-bridge: ^1.0 | ^2.0 | ^6.0 | ^7.0 | ^8.0
Requires (Dev)
- guzzlehttp/guzzle: ^7.2
- laravel/folio: ^1.1
- laravel/framework: ^6.0 | ^7.0 | ^8.0 | ^9.0 | ^10.0 | ^11.0 | ^12.0 | ^13.0
- laravel/octane: ^2.15
- laravel/pennant: ^1.0
- livewire/livewire: ^2.0 | ^3.0 | ^4.0
- mockery/mockery: ^1.3
- monolog/monolog: ^1.6|^2.0|^3.0
- orchestra/testbench: ^4.7 | ^5.1 | ^6.0 | ^7.0 | ^8.0 | ^9.0 | ^10.0 | ^11.0
- phpunit/phpunit: ^8.5 | ^9.6 | ^10.4 | ^11.5
Suggests
None
Provides
None
Conflicts
None
Replaces
None
README
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).
Belum terdaftar di Packagist? Pasang langsung dari GitHub
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.
Laravel 6 / 7
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