Micronaut with Sentry.io

Akyong
Java and other Java Framework
3 min readAug 12, 2019
Tangkuban Perahu (Bandung)

Kali ini saya akan membahas tentang Sentry, fungsinya untuk memberitahu kita ketika service yang kita jalanin ada error atau tidak berjalan sesuai dengan yang kita inginkan, kita mendapat pemberitahuan lewat E-Mail kita. Dalam artikel ini saya akan memakai sentry atau bisa kunjungi situsnya secara langsung di https://sentry.io .

Oke Langsung to the point, pertanyaannya adalah bagaimana cara kerjanya? Dalam kasus menangani error sebenarnya ada banyak sekali caranya, namun biasanya yang paling sering dipakai oleh kalangan programmer adalah menggunakan try catch, setiap codingan yang error yang kita tulis yang terdapat dalam try maka akan dilanjutkan ke catch, saat inilah kita menanggil sentry.

Untul logging, kita akan menambahkan codingan seperti berikut pada logback.xml yang terdapat pada folder resources .

<appender name="Sentry" class="io.sentry.logback.SentryAppender">
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>WARN</level>
</filter>
</appender>
<root level="info">
<appender-ref ref="STDOUT" />
<appender-ref ref="Sentry" />
</root>

dari codingan diatas atau settingan diatas artinya kita melakukan monitoring pada log sehingga pada log yang keluar akan ada WARN seperti berikut:

[pool-1-thread-1] WARN io.sentry.DefaultSentryClientFactory

Kemudian langkah selanjutnya adalah kita mengambil Client Key yang terdapat pada akun Sentry.io.

Client Key (DSN)

Selanjutnya adalah cara mengimplementasikannya, dalam postingan saya kali ini, saya akan memakai codingan default dari Sentry.io. Seperti berikut:

void logWithStaticAPI() {

Sentry.init("https://8dd8b8ccf4904fd9a606f73c1e1f0322@sentry.io/1527843");

/*
Record a breadcrumb in the current context which will be sent
with the next event(s). By default the last 100 breadcrumbs are kept.
*/
Sentry.getContext().recordBreadcrumb(
new BreadcrumbBuilder().setMessage("User made an action").build()
);

// Set the user in the current context.
Sentry.getContext().setUser(
new UserBuilder().setEmail(email).build()
);

/*
This sends a simple event to Sentry using the statically stored instance
that was created in the ``main`` method.
*/
Sentry.capture("ERROR - TEST SEDERHANA");

try {
unsafeMethod();
} catch (Exception e) {
// This sends an exception event to Sentry using the statically stored instance
// that was created in the ``main`` method.
Sentry.capture(e);
}
}
void unsafeMethod() {
throw new UnsupportedOperationException("You shouldn't call this!");
}
Contoh

Ketika berhasil, maka kita akan mendapat email dari sentry, tentunya dengan log detail, keterangan errornya dikarenakan apa.

Email from Sentry.io

Sebagai tambahan, contoh codingan atau sample projectnya bisa dilihat di https://github.com/akyong/micronaut-sentry

Terima kasih sudah membaca.

--

--