Kali ini kita membahas mengenai bagaimana cara memanfaatkan Kibana Application Performance Monitoring atau kita singkat dengna Kibana APM sebagai alat untuk memonitor peforma dari api maupun aplikasi kita, sebelum kita masuk ke tahap implementasi kita harus tau apa itu Kibana APM dan apa keuntungan yang kita dapatkan jika menggunakannya.
Mengapa melakukan monitoring pada aplikasi kita itu sangatlah penting ?Dengan melakukan monitoring kita akan mendapatkan banyak informasi mengenai aplikasi yang sedang berjalan, informasi yang didapat juga merupakan informasi yang valid dan berdasarkan data, misal kita bisa mendapatkan data mengenai performa aplikasi, load time, latency, error rate dan lain sebagainya, dari data yang didapat team development akan mengetahui service mana yang perlu untuk di optimize.
Kibana APM sendiri menyediakan layanan penting untuk layanan web dan cloud, dengan fitur-fitur seperti memantau dan mengelola perangkat lunak dalam hal aksesibilitas dan kinerja, mendeteksi masalah yang menyebabkan gangguan dalam mengakses terutama aplikasi kritis.
Fitur KunciSebelum kita melanjutkan ke tahap implementasi ada beberapa tools yang harus kita install terlebih dahulu, yaitu :
Elasticsearch Kibana APM ServerPada pembahasan kali ini saya akan menggunakan NodeJS sebagai bahasa yang digunakan jadi selain tiga komponen diatas rekan-rekan dapat melakukan instalasi NPM dan Node.JS juga
Instalasi Elasticsearch
Untuk tahapan dan informasi lebih lengkap rekan-rekan bisa mengunjungi halaman dokumentasi resminya pada Link Berikut
Unduh elasticsearch pada halaman berikut Kemudian extract file yang sudah diunduh ke folder manapun Selanjutnya anda akan melihat folder bernama “elasticsearch-{versi}” Lalu jalankan file “bin\elasticsearch.bat” dan tunggu hinga terminal windows muncul Tunggu hingga proses inisiasi selesai dan muncul tulisan “started” pada terminal Kemudian kita akses alamat “http://localhost:9200/_cluster/health?pretty” untuk memastikan layanan elasticsearch sudah berhasil dijalankan atau tidakInstalasi Kibana
Untuk tahapan dan informasi lebih lengkap rekan-rekan bisa mengunjungi halaman dokumentasi resminya pada Link Berikut
Unduh kibana pada halaman berikut Kemudian extract file yang sudah diunduh ke folder manapun Selanjutnya anda akan melihat folder bernama “kibana-{versi}-windows-x86_64” Lalu jalankan file “bin\kibana.bat” dan tunggu hinga terminal windows muncul Kemudian kita akses alamat “http://localhost:5601/” pada browser anda untuk memastikan layanan elasticsearch sudah berhasil dijalankan atau tidak, jika berhasil dijalankan maka akan muncul tampilan seperti berikutInstalasi APM Server
Untuk tahapan dan informasi lebih lengkap rekan-rekan bisa mengunjungi halaman dokumentasi resminya pada Link Berikut
Unduh APM Server pada halaman berikut Kemudian extract file yang sudah diunduh ke folder “C:\Program Files” Lalu ubah nama “apm-server-Pada studi kasus kali ini saya hanya akan memberikan contoh sederhana dalam menghubungkan aplikasi kita dengan Kibana APM, untuk studi kasus yang lebih kompleks bisa saja membutuhkan metode integrasi yang lebih kompleks pula
Pertama-tama untuk memudahkan kita dalam mengatur folder dan file aplikasi, kita buat dengan nama “node-kibana-apm” lalu buka IDE rekan-rekan pada folder tersebut
Selanjutnya ketik perintah berikut untuk menginstall framework express
npm install expressjika proses instalasi berhasil sistem akan membuat 1 folder bernama “node_modules” dan 2 file bernama “package.json” dan “package-lock.json”
Kemudian buat folder “index.js” yang akan kita pakai untuk membuat server API dan integrasi ke Kibana APM. Lalu tulis code berikut pada file “index.js”
const app = require('express')() app.get('/', function (req, res) { res.send('Hello World!') }) app.listen(3000, () => console.log("Listening at http://localhost:3000"))const app = require(‘express’)()Jika sudah maka jalankan perinah “node index.js” untuk menjalankan servis API kita, jika berhasil akan muncul tulisan seperti berikut
Pada tahap diatas kita telah membuat API sederhana yang dapat diakses pada host “localhost” dengan port “3000” dan route “/” yang jika diakses akan mengembalikan respon bertuliskan “Hello World!” seperti pada gambar berikut
Setelah API dapat dijalankan dan kita akses, selanjutkan jalankan perintah berikut untuk mengunduh apm agent yang befungsi untuk menghubungkan aplikasi kita dengan apm server
npm install elastic-apm-nodeKemudian tambahkan code berikut sebelum kita melakukan import library express
const apm = require('elastic-apm-node').start({ serviceName: 'node-kibana-apm', serverUrl: 'http://localhost:8200' })Jika sudah maka tampilan code anda akan terlihat seperti berikut
Jalankan kembali perinah “node index.js” kemudian buka alamat “http://localhost:5601/app/apm” jika integrasi berhasil maka akan muncul tampilan seperti berikut
Pilih nama servis kita untuk melihat detailnya seperti gambar berikut
Pada halaman detail terdapat 3 Sub Menu yaitu
Transactions Errors MetricsPada menu “Transaction” berisi informasi dan statistik dari penggunaan API kita, beberapa data yang disimpan yaitu
Daftar API yang diakses Lama respon time setiap API Jumlah akses per menit Penggunaan resource setiap kali APi kita diakses dan lain nyaSedangkan pada menu “Errors” berisi daftar error yang terdapat pada aplikasi kita, setiap kali ada error yang terjadi servis kita akan secara otomatis mengirim data ke APM Agent dan akan diteruskan ke APM Server
Untuk memastikan nya kita ubah code kita menjadi seperti berikut
Pada baris 10 kita buat API dengan route baru pada path “/error” yang akan mengembalikan string “Hello Test !” yang ditambahkan dengan value dari variable “valueError”, baris ini akan terjadi error ketika pengguna melakukan request api karena variable tersebut belum kita inisialisasi sebelumnya, jika kita coba pada postman maka akan muncul tulisan sebagai berikut
Selanjutnya kita buka tab “Errors” pada Kibana APM dan akan muncul daftar error sebagai berikut
Jika kita buka detail dari error tersebut maka akan muncul pada file dan baris berapa error tersebut terjadi
Hal ini dapat memudahkan kita untuk melakukan penelusuran dari error yang terjadi dan dapat dengan mudah untuk melakukan perbaikannya
Sub Menu terakhir adalah “Metrics”, menu ini berisi dari statistik resource CPU dan Memory yang kita pakai, sehingga bisa menentukan seberapa besar spesifikasi yang kita butuhkan untuk infrastruktur kita
KesimpulanMemonitor aplikasi kita terutama pada tahap rilis atau produksi sangatlah penting, agar kita dapat dengan mudah mengetahui statistik penggunaan dan resource yang digunakan, serta dapat dengan mudah mengetahui error pada aplikasi dan dapat dengan segera diperbaiki
previous post
Jadi Mahasiswa Aktif : Tips Sukses di Perkuliahan