This release is not compatible with Redis version below 3.2, please upgrade your Redis instance.


It is not possible to upgrade from Moira 2.2 to Moira 2.5 directly. To upgrade Moira from version 2.2 or older to 2.5, please first run moira-cli version 2.4 (see important note).

Please update your web configuration according to the following rules:

  • Add label (new required field). You can see default type and label field mappings in default WEB UI configuration.
  • Rename title to placeholder.

See WEB UI configuration guide for more information.

Incompatible changes

  • Removed deprecated method PUT trigger/{{triggerId}}/maintenance. Use PUT trigger/{{triggerId}}/setMaintenance instead (request body has not changed).
  • Removed deprecated version 2.2 related conversion code. Now if you want to upgrade Moira from version 2.2 or older use moira-cli version 2.4 (see important note).
  • Fixed contact types configuration. It was hardcoded in the web UI, and now it is configurable via config file (as it should have been originally).
  • Renamed the title field to more semantically correct placeholder in web UI config.
  • Added a new required label field to web UI config, which is used as a contact label in web UI instead of type.
  • Removed ERROR_VALUE and WARN_VALUE as valid variables in expression. Old triggers with these variables will still work, but you can not update these triggers until you delete ERROR_VALUE and WARN_VALUE variables from the expression.
  • Dropped support for all old browsers. Only last 2 major versions of Chrome, Firefox, Safari (all mobile and desktop) and Edge (only desktop) are supported.

New features

  • Added Graphite tags support #142.
  • Reworked trigger search input control in web UI. Fulltext search is now available, as long as the old tag filters #185.
  • Added Webhook sender #123. For more info see documantation.
  • Added information who and when turned on maintenance mode. You can see it as a hint in web UI near the metric, and in metric alert message #192.
  • Added a meaningful title to all Moira web pages #177.
  • Added environment variable that customizes api URL path for web UI Docker image #173.
  • Added new variables to script sender. Variable ${trigger_name} is now deprecated, removed from documentation and will be removed in the future versions of Moira #228. For more information about new variables and script configuration see documantation.

Bug fixes and improvements

  • Limited connection count in Redis connection pool, added a separate pool for remote locks, added ConnectionsLimit config field in Redis configuration #163.
  • Prohibited saving trigger with both expression and warn_value + error_value. If you set both of these fields, API will return 400 status code. Web UI saves only fields that are displayed in the open tab (simple or advanced mode) #172.
  • Fixed handling incoming metrics with Windows-style line breaks (/r/n) #268.
  • Fixed checking of triggers that do not have any metrics stored in remote or local storage #166.
  • Fixed execution of self-checks: do it only once, regardless of how many notifier instances are running #186.
  • Fixed response code on invalid requests to update or create trigger (was 500, now 400) #323.
  • Combined telegram alert and plot in one message #248.
  • Added icons in Slack notifications #180. See more: Slack icons.
  • Got rid of old ugly mail template, now we use only new email template. #181.
  • Fixed bug that turned old pseudo-tags ERROR DEGRADATION HIGH DEGRADATION to subscription settings checkboxes #184.
  • Fixed advanced schedule in subscriptions #162.
  • Fixed multibyte splitting bug in graph titles #179.
  • Fixed sending a message “This metric changed its state…” if a state does not change during maintenance interval #328.
  • Removed useless broken links in test and self-state notifications #178.
  • Fixed symbols counting bug in telegram messages #248.
  • Changed mobile detection logic from “get window width” to “parse user agent and detect mobile browser” #218.
  • Fixed 500 status code then trying to update subscription if one of the subscribed triggers was removed #271.
  • Properly encoded parameters that are passed in a web to API requests #174.
  • Fixed layout with long words or URLs in name and description on the trigger web page #176.
  • Fixed showing tags that exist in the user local browser storage, but don’t exist in server-side #175.
  • Fixed external loader on non-existing trigger page in a mobile version of the web #168.
  • Removed cancel button and restyled delete button in subscription modal #221.
  • Prohibited creating simple mode trigger with several targets via API #171.
  • Fixed data source toggle that was missing from simple edit trigger mode #236.
  • Fixed rising/falling mode selector when switching between simple and advanced modes #172.
  • Limited Twilio SMS sender to 5 events per SMS #237.
  • Fixed Pushover message priority calculation when sending over five events #237.
  • Added contact type icon in choose subscription contact combobox #219.
  • Changed remove subscription contact icon #220.
  • Improved plotting conditions to render non-empty timeseries only #197.
  • Upgraded NPM dependencies for security reasons #194.
  • Added log message describing the reason why self-state monitor disabled notifications #323.