Pantau Code Excecution pada Project Laravel-mu dengan Inspector

Wahyu Ivan
5 min readMar 24, 2024

--

Image Source: https://hackernoon.imgix.net/images/ao17q32er.jpg

Halo gais, balik lagi ke series perkodingan dengan Laravel. Kali ini aku mau sharing sebuah tools mantap buat monitoring code execution pada Laravel dengan Inspector.

Inspector merupakan sebuah perusahaan online service yang menyediakan tools berupa code execution monitoring tools untuk bisnis digital kecil dan menengah. Inspector sudah mendukung beberapa framework dan bahasa pemrograman untuk di monitor seperti Laravel, Django, ExpressJS, PHP, Python, dan Javascript. Inspector menyediakan beberapa opsi tier berbayar untuk menggunakan tools-nya, namun Inspector juga memberikan tier gratis dengan limitasi 30k transaksi per bulan. Nah, limit ini bisa dinaikan hingga menjadi 80k jika kalian menggunakan kode referal saat mendaftar hehe. Kalian bisa menggunakan link referal ku disini.

Okay, jadi langsung saja kita bisa dimulai step by step mengintegrasikan Inspector pada project Laravel kalian. Untuk demo disini, aku akan menggunakan Laravel 8. Step pertama adalah membuat akun Inspector. Setelah membuat akun dan login ke dashboard Inspector, kalian akan melihat halaman ini.

Halaman Awal Inspector

Pada kolom Project Name, itu bebas kalian isi apapun. Lalu pada kolom App Name, kalian isi sesuai APP_NAME di file .env kalian. Untuk teknologi yang digunakan pilih Laravel. Jika sudah, klik tombol “Next”.

Step berikutnya adalah mengintegrasikan Inspector dengan project Laravel kalian. Halaman yang muncul setelah kalian klik tombol “Next” adalah step untuk mengintegrasikan Inspector ke project kalian. Hal pertama yang harus dilakukan adalah menginstall package Inspector pada project kalian.

composer require inspector-apm/inspector-laravel

Jika sudah, step kedua adalah copy paste environment variable INSPECTOR_INGESTION_KEY yang ada di halaman web ke file .env kalian. Jika sudah, step berikutnya adalah memasang HTTP middleware WebRequestMonitoring dari Inspector di App\Http\Kernel project kalian. Contohnya ada di bawah ini.

/**
* The application's route middleware groups.
*
* @var array
*/
protected $middlewareGroups = [
'web' => [
...,
\Inspector\Laravel\Middleware\WebRequestMonitoring::class, //bagian ini
],

'api' => [
...,
\Inspector\Laravel\Middleware\WebRequestMonitoring::class, //bagian ini
]
]

Jika kalian menggunakan Laravel versi 11, yang dimana di versi Laravel ini sudah tidak ada file App\Http\Kernel, sebagai alternatif kalian bisa memodifikasi file bootstrap\app.php seperti contoh di bawah ini.

use \Inspector\Laravel\Middleware\WebRequestMonitoring;

return Application::configure(basePath: dirname(__DIR__))
->withRouting(
// routes
)
->withMiddleware(function (Middleware $middleware) {
// middleware Inspector disini
$middleware->appendToGroup('web', WebRequestMonitoring::class)
->appendToGroup('api', WebRequestMonitoring::class);
})
->withExceptions(function (Exceptions $exceptions) {
//
})->create();

Alternatif lainnya buat kalian yang menggunakan Laravel 11 bisa meng-assign middleware Inspector ke route atau route groups spesifik, atau bisa juga kalian buatkan custom middleware.

Okay, jika sudah kita bisa ke step terakhir untuk mengecek apakah sudah berhasil mengintegrasikan Inspector ke project Laravel kalian dengan menjalankan command di bawah ini.

php artisan inspector:test

Hasil yang ditampilkan akan seperti ini.

Hasil Run Command Inspector Test

Lalu halaman Inspector kalian akan menampilkan grafik seperti ini.

Halaman Project pada Inspector

Mantap banget bukan?? Mari kita coba jalankan beberapa action pada project untuk melihat gimana sih bentuk data monitoringnya nanti.

Tampilan Hasil Menjalankan Beberapa Action pada Project

Wah, keren banget asli wkkw. Tanpa effort yang terlalu keras untuk setup code execution monitoring dashboard dan graph, kita sudah bisa memantau code execution pada project kita. Jika kalian klik pada button action paling kanan di list diatas, kalian bisa melihat bagaimana jalannya request yang dibuat beserta execution time-nya.

Tampilan Execution Process

Bahkan sampe query yang digunakan diperlihatkan wkkw. Pokoknya keren banget dah ini tools.

Sampai sini doang? Eits tunggu dulu, masih ada lagi fitur yang ga kalah keren yang ada di dalam Inspector. Inspector mendukung Notification Channel untuk memudahkan developer membuat channel notifikasi sesuai kebutuhan mereka. Secara default, Notification Channel pada Inspector sudah diatur untuk email notification. Inspector mendukung lumayan banyak integrasi pada Notification Channel mereka seperti Slack, Twillio, Microsoft Teams, Google Chat, Telegram bahkan Discord.

Nah pada tulisan kali ini, kita akan mencoba mengintegrasikan Discord sebagai opsi Notification Channel yang akan kita gunakan di dalam project. Pada halaman project , klik tab Notification Channel. Setelah itu kita remove dahulu default setting Notification Channel dari Inspector, kemudian klik tombol “Connect a new channel”. Setelah itu, pilih Discord dan tekan tombol “Install”.

Halaman Setup Discord Channel

Nah, diatas kalian akan dimintai link webhook Discord tuh. Bagi kalian yang belum tahu cara dapetinnya, sini aku tunjukin. Pertama, di server Discord kalian, buat sebuah text channel baru.

Create Channel

Setelah membuat text channel baru, kita akan menuju setting dari text channel yang baru dibuat.

Edit Channel

Setelah itu, klik pada tab Integrations dan klik tombol “Create Webhook”.

Halaman Integrations Discord

Pada halaman Webhooks, klik pada webhook yang telah dibuat, kalian bisa memodifikasi webhook yang sudah dibuat. Setelah itu klik tombol “Copy Webhook URL”.

Halaman Webhooks

Okay, kembali ke halaman Inspector. Kita copy paste link webhook ke kolom Webhook, lalu untuk tipe notifikasi bisa disesuaikan sesuai kebutuhan kalian ya.

Mengisi Data Setup Discord Channel

Sip mantap, sekarang tinggal klik tombol “Install” dan jika muncul pop-up konfirmasi, klik tombol “Confirm”. Tampilan notifikasi Discord dari Inspector akan terlihat seperti di bawah ini.

Notifikasi Discord Inspector

Okee sip, jadi sekian dulu pembahasan kali ini. Semoga bermanfaat bagi teman-teman dan terimakasih sudah membaca!

Refrensi:
[1]
https://inspector.dev/laravel/

--

--