Nafies Luthfi

Life will always feel wonderful if we always think positively.

Monitor Error Laravel: Sentry

Bismillahirrahmaanirrahiim.

Beberapa waktu yang lalu, saya pernah posting tentang cara membuat laravel log viewer untuk mengecek error log yang terjadi saat laravel sudah dideploy ke production server. Cara ini lumayan mempermudah sih, tapi ada yang lebih canggih lagi dari itu.

Kali ini kita membahas cara yang lebih modern untuk monitor error laravel di production. Yaitu menggunakan layanan Sentry.io. Yaitu sebuah layanan monitoring aplikasi online yang membantu developer untuk men-diagosis error, memperbaiki error dan optimasi performa sistem. Layanan paket gratisnya sangat cukup untuk kebutuhan freelancer, kita bisa cek di halaman pricingnya.

Berikut beberapa tampilan sentry.io ketika ada error yang ditangkapnya dari project laravel kita:

Daftar Event Error

Ini tampilan sentry ketika kita membuka list error yang terjadi pada sebuah project.

Daftar Event Error

1. Daftar Project

Berisi pilihan project yang kita pasangi sentry.

Daftar Project Sentry

Saya belum tahu apakah ada batasan jumlah project untuk tipe akun free. Saat ini baru saya coba untuk 6 project laravel.

2. Pilihan Environment

Di sini kita dapat memilih environment mana yang ingin kita lihat list errornya. Ini sangat berguna jika kita memiliki beberapa server deployment untuk aplikasi yang sama, misal:

  • Staging (deployment untuk pengujian)
  • Production (deployment untuk live sistem).

Jadi kita bisa tahu, error ini berasal dari environment yang mana.

Daftar Environment Sentry

Kalau untuk project temen-temen, mungkin ada env dev, qa, uat, prod. Sesuai dengan deployment setup masing-masing.

3. Umur Error

Informasi ini untuk mengetahui, sudah berapa lama/sejak kapan error ini pertama terjadi (tanda nomor 3 pada screenshot di atas).

4. Terakhir terjadi error

Informasi ini untuk mengetahui, kapan terakhir error terjadi (tanda nomor 4 pada screenshot di atas). Misal sebelumnya terjadi 3 jam yang lalu, setelah kita lakukan perbaikan (bugfix) seharusnya error tidak terjadi lagi setelahnya.

5. Berapa kali error terjadi

Informasi ini untuk mengetahui berapa kali error sudah terjadi sejak awal hingga saat ini (tanda nomor 5 pada screenshot di atas).

6. Assignee (penugasan, cocok untuk team)

Fitur ini dapat kita manfaatkan jika kita mendaftar dengan paket sentry “team” atau di atasnya. Fitur ini untuk menugasi developer siapa yang akan meng-handle error tersebut, agar lebih mudah mem-follow-up nya (tanda nomor 6 pada screenshot di atas).

Detail Event Error

Ini tampilan detail ketika kita klik salah satu error dari list error di atas.

Detail Event Error

1. Pesan error

Detail Event Error

Kita bisa lihat pesan error yang terjadi pada section EXCEPTION (tanda nomor 1 pada screenshot di atas). Ini yang biasa muncul di file log laravel.

2. Informasi Client (Browser dan Sistem Operasi)

Di halaman ini kita bisa melihat ketika terjadi error, client/user menggunakan sistem operasi apa dan browser apa (tanda nomor 2 pada screenshot di atas).

3. Grafik kejadian per hari

Pada grafik ini (tanda nomor 3 pada screenshot di atas), kita bisa lihat intensitas kejadian error (seberapa sering terjadi perharinya).

4. Waktu kejadian pertama dan terbaru/terakhir

Di bawah grafik kejadian error per hari, kita bisa melihat informasi, kapan error terjadi pertama kali, dan kapan terakhir atau kejadian terbaru untuk error tersebut (tanda nomor 4 pada screenshot di atas).

5. Stacktrace yang informatif

Stacktrace Event Error

Biasanya ketika membaca error log di laravel log, ada stacktrace (file-file yang dilewati sebelum error/exception terjadi). Nah di sentry ini, kita dapat informasi stacktrace yang lumayan lengkap, sampai isi variabel yang masuk pada method/function juga bisa dilihat. Ini sangat mempermudah kita untuk proses debugging dan bugfix.

6. Query Database

Pada bagian BREADCRUMBS, kita bisa melihat query-query database yang dijalankan oleh laravel sebelum error terjadi. Ini juga akan mempermudah kita untuk proses debugging.

Stacktrace Event Error

7. cURL Sample

Pada detail event error kita juga bisa dapat informasi cURL (request ke web) yang menjadi trigger/pemicu error pada project laravel.

Curl Sample Event Error

Pada cURL sample ini, kita bisa mengetahui form data atau form input yang dikirimkan oleh user ke sistem. Informasi ini bisa kita gunakan untuk simulasi/reproduce error saat proses debugging.

Kesimpulan

  1. Sentry adalah layanan yang sangat bermanfaat untuk melakukan monitoring error di project kita untuk mempermudah proses debugging dan bugfix developer.
  2. Tidak hanya sebatas PHP/Laravel, Sentry ini support banyak bahasa pemrograman, kita bisa lihat di halaman ini https://sentry.io/platforms. Taglinenya: “Track errors in every language, framework, and library.”
  3. Untuk setup sentry di project laravel cukup mudah, bisa ikuti tutorial dari webnya (https://sentry.io/for/laravel).
  4. Sentry support laravel versi lama juga, ada 1 project saya yang laravel versi 5.2, masih bisa setup sentry untuk monitor errornya.
  5. Akun sentry yang free sangat cukup untuk kebutuhan freelance project.

Demikian ulasan singkat tentang monitor error pada project laravel dengan sentry. Mudah-mudahan dengan informasi ini dapat mempermudah temen-temen developer/freelance dalam memberikan layanan yang lebih baik untuk user dan kliennya.

Terima kasih.