Moira is a real-time alerting tool, based on Graphite data.
Docker Compose is the easiest way to try:
git clone https://github.com/moira-alert/docker-compose.git
cd docker-compose
docker-compose pull
docker-compose up
Feed data in Graphite format to localhost:2003
:
echo "local.random.diceroll 4 `date +%s`" | nc localhost 2003
Configure triggers at localhost:8080
using your browser.
Other installation methods are available, see documentation.
To build and run tests, first get all dependencies:
go get github.com/kardianos/govendor
govendor sync
Then you need local redis listening on port 6379. Easiest way to get redis is via docker:
docker run -p 6379:6379 -d redis:alpine
To run test use go test ./...
or run GoConvey:
go get github.com/smartystreets/goconvey
goconvey
For full local deployment of all services, including web, graphite and metrics relay (may be slow on first launch) use:
docker-compose up
Before push your changes don't forget about linter:
make lint
See our user guide that is based on a number of real-life scenarios, from simple and universal to complicated and specific.
Moira 2.0 is different from the first version in two important ways:
- We got rid of Python, because it was slow. Checker and API services are now written in Go, based on carbonapi implementation of Graphite functions.
- We got rid of Angular, because our main stack is React now. We just don't know how to do Angular anymore. We also revamped the UI.
Code in this repository is the backend part of Moira monitoring application.
- web2.0 is the frontend part.
- doc is the documentation (hosted on Read the Docs).
- moira-trigger-role is the Ansible role you can use to manage triggers.
- python-moira-client is the Python API client.
If you have any questions, you can ask us on Telegram.
Moira was originally developed and is supported by SKB Kontur, a B2G company based in Ekaterinburg, Russia. We express gratitude to our company for encouraging us to opensource Moira and for giving back to the community that created Graphite and many other useful DevOps tools.