Pemanfaatan Kibana APM sebagai sistem monitoring API

Muhammad Aditya Tisnadinata
6 min readDec 31, 2022

--

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 Kunci

Sebelum kita melanjutkan ke tahap implementasi ada beberapa tools yang harus kita install terlebih dahulu, yaitu :

  • Elasticsearch
  • Kibana
  • APM Server

Pada 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

  1. Unduh elasticsearch pada halaman berikut
  2. Kemudian extract file yang sudah diunduh ke folder manapun
  3. Selanjutnya anda akan melihat folder bernama “elasticsearch-{versi}
  4. Lalu jalankan file “bin\elasticsearch.bat” dan tunggu hinga terminal windows muncul
  5. Tunggu hingga proses inisiasi selesai dan muncul tulisan “started” pada terminal
  6. Kemudian kita akses alamat “http://localhost:9200/_cluster/health?pretty” untuk memastikan layanan elasticsearch sudah berhasil dijalankan atau tidak

Instalasi Kibana

Untuk tahapan dan informasi lebih lengkap rekan-rekan bisa mengunjungi halaman dokumentasi resminya pada Link Berikut

  1. Unduh kibana pada halaman berikut
  2. Kemudian extract file yang sudah diunduh ke folder manapun
  3. Selanjutnya anda akan melihat folder bernama “kibana-{versi}-windows-x86_64
  4. Lalu jalankan file “bin\kibana.bat” dan tunggu hinga terminal windows muncul
  5. 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 berikut

Instalasi APM Server

Untuk tahapan dan informasi lebih lengkap rekan-rekan bisa mengunjungi halaman dokumentasi resminya pada Link Berikut

  1. Unduh APM Server pada halaman berikut
  2. Kemudian extract file yang sudah diunduh ke folder “C:\Program Files
  3. Lalu ubah nama “apm-server-<version>-windows” directory to “APM-Server
  4. Lalu buka Windows PowerShell dengan Run As Administrator
  5. Setelah terminal terbuka masuk ke folder APM Server yang sudah kita extract diatas, kemudian ketik perinah “.\install-service-apm-server.ps1” untuk menjalakan script instalasi APM Server
  6. Kemudian kita akses alamat “http://127.0.0.1:8200/” untuk memastikan layanan apm server sudah berhasil dijalankan atau tidak

Implementasi

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 express

jika 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-node

Kemudian 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
  • Metrics

Pada 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 nya

Sedangkan 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

Kesimpulan

Memonitor 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

--

--