Skip to main content

Detect crashes in your Kubernetes cluster using kwatch and Slack

· 2 min read
Andrew Attallah

What is kwatch?

kwatch is an open-source project that started late in 2021. It aims to help you monitor all changes in your Kubernetes(K8s) cluster, detect crashes in your running apps, and publish notifications to your favorite channels (Slack, Discord, etc.) in real-time.

In this tutorial, I will help you setup and deploy kwatch on your Kubernetes cluster. Plus, integrate with Slack to get notified on a channel when there is a crash in your apps.

Configure kwatch with Slack

First of all, we need to get the webhook URL of the channel you want the notification to be received on it.

If you know how to generate the webhook URL you can escape this part and go to the configuration section.

Step 1: create a new slack channel (if you don't have one already)

Step 2: Go to https://api.slack.com/apps and create an app from scratch and connect it with your workplace

Step 3: Create an incoming webhook and activate it

Step 4: Connect it to you channel

Finally we have the webhook URL for the channel!

Step 5: Get Configuration

Get the configuration template

curl  -L https://raw.githubusercontent.com/abahmed/kwatch/v0.3.0/deploy/config.yaml -o config.yaml

Step 6: Edit config.yaml with the corresponding configs

apiVersion: v1
kind: Namespace
metadata:
name: kwatch
---
apiVersion: v1
kind: ConfigMap
metadata:
name: kwatch
namespace: kwatch
data:
config.yaml: |
alert:
slack:
webhook: WEBHOOK_URL

Step 7: Apply Configuration

kubectl apply -f config.yaml

Deploy kwatch

Deploy kwatch on your cluster with one command

kubectl apply -f https://raw.githubusercontent.com/abahmed/kwatch/v0.3.0/deploy/deploy.yaml

After deploying you will get notified on the channel that kwatch has started successfully. Now, kwatch is monitoring your apps!

Here is an example of kwatch messages when a crash is detected.

If you like kwatch, give it a star on GitHub!

We are happy to hear feedback from you and if you have any request, or suggestion don't hesitate to ping us on our channels (Discord, GitHub)