Search by

jasnita / monitor-laravel

alisyarudin

Agent Jasnita Monitor untuk Laravel: error, performa, query, dan breadcrumb dikirim ke server Jasnita Monitor.

Package info

github.com/alisyarudin/sdk-monitor-laravel

pkg:composer/jasnita/monitor-laravel

Statistics

Installs: 15

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

v2.0.0 2026-09-26 00:37 UTC

This package is auto-updated.

Last update: 2026-09-26 01:39:42 UTC


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