Slack adalah aplikasi untuk mengirim pesan kepada team. Channel Slack merupakan salah satu pilihan channel notifikasi yang tersedia di Grafana. Kita dapat mengirimkan sebuah alert ke channel Slack ketika ada metrics yang memenuhi alert rule yang kita buat. Membuat alert ke channel Slack akan sangat berguna, karena kita dapat mengetahui sebuah incident sesegera mungkin.
Grafana mengirim pesan ke Slack menggunakan sebuah incoming webhook URL. Untuk membuat Grafana mengirim alert ke Slack, kita harus membuat incoming webhook URL di Slack, kemudian membuat sebuah channel untuk menerima notifikasi, lalu membuat alerting rule di Grafana.
Cara Membuat Slack Incoming Webhook URL
Pertama, kita perlu membuat sebuah Slack Incoming Webhook URL.
Go to https://api.slack.com/apps/new untuk membuat slack app
Masukkan App Name dan pilih Workspace, lalu klik
Create App
- Klik Incoming Webhooks
- Ubah radio button ke
On
, lalu klikAdd New Webhook to Workspace
- Pilih channel untuk mengirim alert, lalu klik
Allow
- Kamu akan mendapatkan sebuah Webhook URL. Copy URL tersebut.
Cara Membuat Notification Channel di Grafana
Setelah kamu membuat Webhook URL, kamu perlu membuat sebuah notification channel di Grafana
- Masuk ke Grafana dashboard
- Klik icon
Alerting
, lalu klikNotification channels
- Klik
Add Channel
untuk membuat channel baru - Masukkan nama channel
- Ganti Type ke
Slack
dan masukkan Webhook URL yang sudah kamu buat
- Klik
Send Test
untuk mencoba notification channel nya. Kamu akan mendapatkan pesan seperti ini di Slack:
- Kalau sudah ok, klik
Save
Cara Membuat Alert Rule di Grafana
Setelah kita membuat notification channel di Grafana, kita dapat membuat alert rule untuk mengirimkan notifikasi ketika ada metrics yang tidak normal. Pada Grafana, alert merupakan bagian dari sebuah panel dashboard. Jadi untuk membuat alert rule, kita perlu membuat panel dashboard. Atau bisa gunakan panel yang sudah ada.
Pada contoh ini, saya akan menggunakan graph Request per Second yang pernah dibuat pada post sebelumnya.
Ada sebuah metris A
yang menghitung rate dari http_request_get_books_count
. Kita akan membuat sebuah alert apabila metrics ini nilai nya ada di bawah suatu threshold. Untuk membuat alert, klik icon Alert
, lalu klik Create Alert
.
Kita akan membuat alert dengan kondisi nilai rata-rata dari metrics A
selama 5 menit terakhir ada di bawah 7. Rule untuk kondisi tersebut akan seperti ini:
Dari gambar di atas kita dapat melihat pada rule tersebut ada Evaluate every "1m" For "1m"
. Ini berarti Grafana akan mengevaluasi rule ini setiap 1 menit. Apabila metrics memenuhi rule ini, Grafana akan menunggu selama 1 menit. Jika dalam 1 menit metrics belum recover, Grafana akan mengirim alert.
Pada section notification di bagian bawah, kita dapat memilih notification channel dan menulis pesan alert nya.
Save dashboard. Apabila alert tersebut ter-trigger, kamu akan melihat message seperti ini di channel Slack my.
Kesimpulan
Membuat alert ke aplikasi messaging seperti Slack sangat menguntungkan. Team mu dapat mengetahui apabila terjadi incident dengan sangat cepat. Kamu dapat me mention group Slack team mu, atau menggunakan @here
or @channel
untuk memastikan team mu mendapatkan notifikasi alert nya.