/moira

Realtime Alerting for Graphite

Primary LanguageGoMIT LicenseMIT

Moira 2.0 Build Status Coverage Status Documentation Status Telegram Go Report Card

Moira is a real-time alerting tool, based on Graphite data.

Installation

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.

Development

To build and run tests 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

Getting Started

See our user guide that is based on a number of real-life scenarios, from simple and universal to complicated and specific.

Why 2.0

Moira 2.0 is different from the first version in two important ways:

  1. 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.
  2. 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.

What is in the other repositories

Code in this repository is the backend part of Moira monitoring application.

Contact us

If you have any questions, you can ask us on Telegram.

Thanks

SKB Kontur

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.