Extensible and customizable grid system for any alerting system.
Drivers are extensions to retrieve and receive alert from an alerting system.
Builtin drivers:
Requirements:
- docker and docker-compose
- angular2 cli (see doc: https://angular.io/guide/quickstart#devenv )
- go(lang)
Steps:
Retrieve with go get github.com/ArthurHlt/gridana
and go to $GOPATH/src/github.com/ArthurHlt/gridana
- Run docker
- Run alertmanager with docker-compose:
docker-compose -f alertmanager-docker/docker-compose.yml up -d
- Set your loopback to be able to receive alerts from alertmanager:
sudo ifconfig lo0 alias 10.200.10.1/24
- Run gridana backend:
go run server/main.go
(You can configure theconfig.yml
file for set your own routing) - Go to
front
directory and runnpm install
- Run from this folder:
ng serve --open
You can now push alerts to alert manager with the helper send-alerts
inside alertmanager-docker
, e.g.: ./alertmanager-docker/send-alerts --timeout 60
(this will make alert expire after 1h)
Note: config.yml
is not yet documented, see model/config.go
file to see all available option for configuration.
- See alerts in a grid scrapped from driver
- Routing alerts by their labels to aggregate on a probe
- Alert message can be templatized in markdown
- Alert identifer can be templatized
- Receive new firing/resolved alerts by websocket leading to update grid with new information
- Provide mechanism to send all incoming alerts to a multi-instanced gridana (For now only amqp is available)
- Show all alerts aggregate by a probe and identifier as cards in an overlay
- Show all alerts on a side nav
- Options to see/hide silenced alert
- Push notification (on ui and OS/browser notification system) when receiving a firing alert (Potentially, have an option to see when they are resolved too)
- Silence alert from ui if driver support it.
- Create and manage dashboard outside of
config.yml
file (by passing files or from a database like grafana) - Create and manage drivers from ui too (not only on
config.yml
file) - Receive, scrap and susbscribe to websocket on a specific or multiple driver on ui (actually, ui receive all alerts from all drivers)
- Filtering the grid items by identifier in ui
- Provide authentication in a sidecar or directly through lib like gobis (a reverse proxy in front a multi-instanced gridana could be a real bottleneck cause of websocket)
- Wysiwyg to create dashboard (thinking about a graph system for routing)
- And all ideas we could have after mvp incubation