Monitors events within a Kubernetes cluster and sends notifications to Slack. You can adjust the events you want to be notified about and it can automatically handle @mentions based on Kubernetes labels.
To avoid flooding channels, duplicate events will be throttled back automatically by 1 minute * the number of notifications already sent.
- Description: Display version of
auth-api
service - On success:
- Status:
200
- Response: text string
- Status:
- On failure:
- No failure case
- Description: Check if service is healthy/up
- On success:
- Status:
200
- Response: text string
- Status:
- On failure:
- Status:
400
- Response: JSON error blob
- Status:
The following environment variables are used by this service.
Variable | Description | Required | Default |
---|---|---|---|
KIT_OVERWATCH_DEBUG |
Enables debug logging | yes | false |
KIT_OVERWATCH_LISTEN_ADDRESS |
The port the service listens on | yes | :80 |
KIT_OVERWATCH_STATSD_ADDRESS |
The statsd address | yes | localhost:8125 |
KIT_OVERWATCH_STATSD_PREFIX |
The statsd prefix | yes | statsd.kit-overwatch.dev |
KIT_OVERWATCH_NAMESPACE |
The namespace to watch events on | yes | default |
KIT_OVERWATCH_IN_CLUSTER |
Enable when deployed in a Kubernetes cluster to automatically watch events in that cluster | yes | true |
KIT_OVERWATCH_CLUSTER_NAME |
This name is displayed in all the notifications generated | false | Kubernetes |
KIT_OVERWATCH_CLUSTER_HOST |
The address to the cluster. Only needed when using KIT_OVERWATCH_IN_CLUSTER=false | false | empty |
KIT_OVERWATCH_NOTIFICATION_LEVEL |
Determines what level of events you want to be notified about. Goes from DEBUG -> INFO -> WARN -> ERROR |
false | INFO |
KIT_OVERWATCH_MENTION_LABEL |
Will use this label found on a resource as a mention in the notification | false | empty |
KIT_OVERWATCH_MENTION_DEFAULT |
If no KIT_OVERWATCH_MENTION_LABEL is found, it will default to using this as a mention in the notification | false | here |
KIT_OVERWATCH_NOTIFY_LOG |
Enable to send a notification to stdout | true | true |
KIT_OVERWATCH_NOTIFY_SLACK |
Enable to send a notification to slack | true | false |
KIT_OVERWATCH_NOTIFY_SLACK_TOKEN |
The auth token for Slack. Required if KIT_OVERWATCH_NOTIFY_SLACK=true | false | empty |
KIT_OVERWATCH_NOTIFY_SLACK_AS_USER |
Enable to send a notification to slack as the given user associated with the token | true | false |
KIT_OVERWATCH_NOTIFY_SLACK_CHANNEL |
The Slack channel to post notifications to. Required if KIT_OVERWATCH_NOTIFY_SLACK=true | false | empty |
KIT_OVERWATCH_NOTIFY_DATADOG |
Enable to send an event to DataDog | true | false |
KIT_OVERWATCH_NOTIFY_DATADOG_APIKEY |
The apikey for DataDog. Required if KIT_OVERWATCH_NOTIFY_DATADOG=true | false | empty |
KIT_OVERWATCH_NOTIFY_DATADOG_APPKEY |
The appkey for DataDog. Required if KIT_OVERWATCH_NOTIFY_DATADOG=true | false | empty |
This requires that you have Go
installed locally.
- Run
make run
- Test by running
curl -I -X GET localhost:8080/healthcheck
and you should get a 200 response
If you would like to change the ENV var settings from their defaults, you can copy .env.dist
to .env
and modify them there. Then just re-run make run
.
Install Codeship's jet
tool then run:
$ jet steps
- Install minikube
- Install kubectl
- Run
minikube start
- Start a proxy
kubectl proxy
- Run
make run
- Now perform actions on your local kubernetes cluster that will generate events
- You cannot run more than one instance of this service within a Cluster or you'll end up with duplication notifications
- To avoid duplicate notifications being sent, the service will only send notifications for past events that have happened 1 minute before the service was started
- Use Minikube for local functional testing
- Allow setting name of cluster to be included in notifications
- Get events from cluster
- Log events to stdout
- Add Slack notification of events
- Add DataDog notification of events
- Add Unit Tests for Watcher
- Add Unit Tests for Notifiers
- Add Unit Tests for Slack Notifier
- Add Unit Tests for Log Notifier
- Use datastore so we can make this service stateless
- Split watcher and notifiers to allow multiple instances using task queue