Distributed tracing dengan Jaeger dapat digunakan untuk memantau error. Kita dapat menemukan span mana yang mengalami error dan melihat log error. Artikel ini akan menunjukkan caranya.
Jalankan Jaeger
Untuk menjalankan Jaeger di environment lokal, ikuti instruksi di sini.
Jika kamu tidak tahu apa itu Jaeger dan distribution tracing, saya juga menyarankan kamu membaca artikel sebelumnya di sini.
Jika kamu belum pernah mengintegrasikan aplikasi kamu dengan Jaeger, saya juga menyarankan kamu membaca artikel itu.
Jika kamu telah berhasil menjalankan Jaeger dan mengintegrasikan dasar-dasarnya, sekarang saatnya untuk memonitor error.
Monitor errors
Cara menunjukkan error dalam sebuah span
Untuk menandai fungsi yang mengalami error, kita perlu memulai span dalam fungsi dan mengeset tag error ke true. Ada library dari opentracing untuk melakukan itu, yaitu opentracing-go/ext. Lihat contoh kode di bawah ini untuk menunjukkan error dalam span.
|
|
ext
dari opentracing-go/ext
. Mari kita tes dan lihat di JaegerUI.Gambar di atas adalah traces di hasil pencarian. Ada error counter di kotak merah yang menunjukkan berapa banyak kesalahan yang dimiliki suatu trace.
Kita dapat mencari traces yang mendapat error dengan tags filter. Coba cari error tag error=true
. Itu hanya akan menampilkan trace yang memiliki error.
Mari klik salah satunya untuk melihat detailnya.
Span yang mengalami error ditandai dengan tanda seru berwarna merah. Kita melihat dalam detail dari span bahwa tag error disetel ke true. Inilah yang memberi tahu Jaeger bahwa span memiliki error.
Log error di span
Kita dapat menambahkan error log dalam span. Mungkin itu bisa membantu kita mengidentifikasi masalah dan memperbaikinya. Lihatlah kode di bawah ini untuk menambahkan error log dalam span.
|
|
LogError
dari package ext
. Kita tidak perlu menyetel tag error ke true jika kita menggunakan fungsi LogError
karena fungsi tersebut sudah menyetel tag error ke true. Sekarang mari kita lihat error span di JaegerUI.Tambahkan fields di error log
Terkadang log error tidak cukup. Kita mungkin ingin menambahkan field di error log. Kita bisa melakukan itu. Lihat contoh kode di bawah ini.
|
|
Kita dapat menambahkan lebih dari satu field di log jika diperlukan. Sekarang mari kita lihat di JaegerUI.
Kita dapat melihat field kita di log. Mungkin dengan ini, kita bisa mengetahui root cause dari error.
Kesimpulan
Kita dapat monitor dan mencari trace yang memiliki error di Jaeger. Untuk melakukan itu kita perlu mengatur tag error dari span yang mendapat error. Kita juga dapat menambahkan log error dan field untuk membantu mengidentifikasi error. Opentracing memiliki library standar untuk melakukan ini, jadi integrasinya tidak akan sulit.