• Throw an exception if any target except the first one resolves in more than one metric.
  • Fix Moira version detection in CI builds.
  • Add user login information to API request logs.
  • Fix long interval between creating a new trigger and getting data into that trigger.


Version 2.0 is fully rewritten in Go instead of Python. This implies lower CPU load in Checker and API microservices, but also changes the list of supported Graphite functions.

We also introduce new UI based on React. It is not backwards-compatible with old API, but new API supports both old and new UI.

Breaking Changes

  • New structure of Configuration files.
  • New Advanced mode expression format. Moira 2.0 supports govaluate expressions instead of Python expressions. Use moira-cli -convert-expressions to convert.
  • API methods URLs do not have trailing slashes anymore.
  • API /notification method returns valid JSON list instead of plain text.
  • ttl parameter in API calls is always a number instead of string.
  • API PUT methods strictly separate create and update operations.
  • There is no tag maintenance entity anymore.
  • Error messages return valid JSON instead of plain text.
  • Support for Graphite functions changed. See carbonapi compatibility list for details.

Other Improvements

  • Internal Graphite metric names changed.
  • Numerous bugs fixed. Some new were created :)