Siera Kubewatch: Incident Alerting Tool oleh Warung Pintar

Rika Dewi
Grow at Warung Pintar
4 min readJun 11, 2020
Internal Server Error Message.

Tentu kita sudah tidak asing lagi melihat gambar di atas. Gambar tersebut muncul bila kita terbentur dengan berbagai kendala teknis saat sedang berselancar di aplikasi atau website online. Jika sudah berhadapan dengan hal seperti ini, apa yang biasanya kita lakukan? Pasti langsung muncul dipikiran kita, “Ah, payah nih aplikasi. Pindah aplikasi lain lah!” atau, parahnya, kita tidak akan pernah memakai aplikasi itu lagi.

Bagi pengguna, hal ini bukanlah suatu hal yang besar tanpa perlu pikir dua kali. Namun, di mata seorang pelaku bisnis yang berada dibalik aplikasi maupun website online, hal seperti ini bisa membuat mereka ‘kebakaran jenggot.’

Semua Developer sadar betul bahwa tidak ada aplikasi yang sempurna. Mengutip Murphy’s Law,

“Anything that can go wrong, will go wrong.”

Pertanyaannya,

Jika semua aplikasi pasti akan mengalami kesalahan, lantas, bagaimana seorang Developer mengatasinya?

Salah satu caranya adalah dengan mencegah agar kesalahan tersebut tidak terlihat di depan pengguna. Melihat kondisi yang terjadi, pujian jarang dilontarkan untuk aplikasi yang berjalan secara lancar, sedangkan hujatan selalu datang untuk aplikasi yang memiliki kesalahan, sekecil apapun itu, sebaik apapun fitur-fitur lain yang dimilikinya. Karenanya, menjadi penting bagi sebuah software untuk meminimalisir kesalahan yang terjadi dalam aplikasi.

Kita tidak dapat terus menerus mengandalkan arahan “Please contact the administrator,” untuk memperbaiki kesalahan yang telah terjadi. Tidak mungkin juga kita menyewa seseorang untuk terus melihat log sistem aplikasi selama 24 jam tanpa henti. Di Warung Pintar sendiri, dengan lebih dari 30 services yang terus berjalan setiap harinya, opsi mempekerjakan orang untuk melihat 30 lebih log setiap detiknya pun belum tentu menyelesaikan masalah. Disinilah Siera Kubewatch hadir sebagai jawaban atas permasalahan-permasalahan yang muncul.

Tentang Siera Kubewatch

Siera Kubewatch adalah sebuah kubernetes watcher yang memantau setiap event yang terjadi dan mem-publish event yang berpotensi menimbulkan incident dalam bentuk notifikasi di beberapa media sosial, seperti Webhook, Workplace, Slack, dan Telegram. Siera Kubewatch sendiri telah di-publish sebagai sebuah open source project yang bisa kalian lihat detail implementasinya pada halaman berikut, https://github.com/warungpintar/siera-kube-watch.

Langkah Instalasi Siera Kubewatch

Pertama-tama, tambahkan repository.

$ helm repo add warpincharts https://warungpintar.github.io/charts$ helm search repo warpincharts

Setelah berhasil ditambahkan, selanjutnya lakukan instalasi. Terdapat beberapa alternatif channel untuk melakukan instalasi, diantaranya sebagai berikut.

Dengan Webhook

$ helm install siera-kube-watch -n [your namespace]  warpincharts/siera-kube-watch \
--set=config.webhook.enabled="true",config.webhook.url="http://webhookurl"

Ubah bagian http://webhookurl sesuai dengan kebutuhan kamu.

Dengan Slack

$ helm install siera-kube-watch -n [your namespace]  warpincharts/siera-kube-watch \ --set=config.slack.enabled="true",config.webhook.url="https://hooks.slack.com/services/TOKEN"

Ubah bagian https://hooks.slack.com/services/TOKEN sesuai dengan hook url yang didapatkan melalui workspace Slack kamu. Untuk informasi lebih lanjut, kalian dapat mengunjungi halaman berikut, https://api.slack.com/messaging/webhooks.

Dengan Telegram

$ helm install siera-kube-watch -n [your namespace]  warpincharts/siera-kube-watch \ --set=config.telegram.enabled="true",config.telegram.token="123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11",config.telegram.chatID="-1234567890123"

Bagian token akan diperoleh setelah bot telegram berhasil dibuat dan chatID didapatkan dari target channel pada Telegram. Kalian dapat melihat detailnya di halaman ini, https://core.telegram.org/bots/api.

Dengan YAML File

Customize di Siera Kubewatch dapat dilakukan dengan memberikan sebuah YAML file yang berisi konfigurasi sesuai kebutuhanmu.

$ helm install siera-kube-watch -n [your namespace] -f values.yaml warpincharts/siera-kube-watch

Berikut contoh konfigurasi file,

# An example of configuration file for siera-kube-watchwebhook:
enabled: true
url: "http://127.0.0.1/webhook"
# For more information, refer to https://api.slack.com/messaging/webhooks
slack:
enabled: true
# slack url contain webhook url for your workspace.
url: "https://hooks.slack.com/services/TOKEN"
# For more information, refer to https://core.telegram.org/bots/api
telegram:
enabled: true
# token is a unique authentication token when a bot is created.
token: "123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11"
# chatID is a string contain unique identifier for the target
# chat or username of the target channel (in the format
# @channelusername).

chatID: "-1234567890123"
# In case you want to filter your event stream from specific reason, # you can add that reason to excluded.reasons.
# excluded.reasons is an array of reasons that will be excluded so
# any event that have one of these reasons won't be published.
# Example:
# excluded.reasons: ["FailedGetResourceMetric",
# "ScalingReplicaSet", "Started", "Killing", "Unhealthy"]

excluded.reasons: []
# For filtering purpose, by default we excluded normal events (to
# avoid noisy channel) but if needed you can include several reasons
# from normal event for investigation purpose.
# included.reasons is an array of reasons that will be included from
# normal events.
# Example:
# included.reasons: ["ScalingReplicaSet", "SuccessfulCreate",
# "SuccessfulDelete"]

included.reasons: ["ScalingReplicaSet", "Started", "Killing"]

Untuk lebih lengkapnya mengenai instalasi, kalian dapat kunjungi halaman berikut, https://github.com/warungpintar/charts/tree/master/warpin/siera-kube-watch.

Murphy’s Law yang mengatakan bahwa segala sesuatu yang bisa salah memiliki kemungkinan besar untuk salah memang benar adanya. Namun, dengan Siera Kubewatch, kami memilih untuk mencoba mengurangi kemungkinan salah tersebut karena kepuasan pengguna adalah hal yang utama untuk terus #TumbuhBarengWarung.

Terima kasih sudah membaca!

--

--