/notifilter-receive

Go backend for https://github.com/bittersweet/notifilter

Primary LanguageGoGNU General Public License v3.0GPL-3.0

Notifilter

Get notified about events

Build Status

Quick explanation:

  1. send data to Notifilter
  2. configure what you want to be notified about and how, optionally set up rules
  3. get notifications in Slack

Example:

People buy products on your website, you send all conversion events to Notifilter. You want to give customers that buy a certain package some special attention so you set up a notification and add a rule that the revenue needs to be above 100$. All incoming conversions matching the rules will be sent to a Slack channel of your choosing. You've setup the notification with a nice template so you see all relevant data right away and can click on a link to your admin page.

Ecosystem

Architecture & Requirements

Data is received over UDP (fire and forget) and stored in Elasticsearch (for aggregation + statistics type stuff in the future). Postgres is use to store notifiers that contain notification templates (based on Go templating), rules and settings (send to what channel etc).

                persist to ES
              /
receive data
              \
                check if there are notifications
                set up that match this event      - notify channel with configured template

Docker related

Build locally and add the binary to a scratch container:

CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o notifilter-receive .
docker build -t bittersweet/notifilter-receive -f Dockerfile.scratch .

Push to docker hub:

docker push bittersweet/notifilter-receive:v1.0.0