Release Notes

Version Compatibility

You must run the version of Watcher that matches the version of Elasticsearch you are running. For example, Watcher 2.4.6 requires Elasticsearch 2.4.6.

Change List

2.4.6

July 25, 2017

Enhancements

  • Adds support for Elasticsearch 2.4.6.

2.4.5

April 27, 2017

Bug Fixes

  • Ensure that no NPE is thrown on startup, when a required index for watcher has been manually closed
  • HTTP JSON parsing has been fixed, when a response consists of a JSON array only

2.4.4

January 12, 2017

Enhancements

  • Adds support for Elasticsearch 2.4.4.

2.4.3

December 13, 2016

Enhancements

  • Adds support for Elasticsearch 2.4.3.

2.4.2

November 22, 2016

Bug Fixes

  • Deleting a watch now is independent from its current execution state in order to prevent failed deletions with watches having small intervals
  • Chain input: Parsing now throws an exception if a data structure is added, that cannot keep its order

2.4.1

September 28, 2016

Bug Fixes

  • Fixed a serialization error that resulted in the watch history not being written when a proxy is specified in a watch.
  • Triggered watches are now correctly deleted from the .triggered-watches index if they are rejected due to a full thread pool.
  • Deleting or closing the .watches index now correctly cleans up the in-memory watch store so the watches are no longer executed.
  • If the HTTP request for an attachment fails, the error message is included in the watch history.
  • Fixed a possible exception when chained inputs don’t execute successfully.

Enhancements

  • Hostname verification can be disabled for Watcher HTTP actions.
  • Running watches can be updated and deleted.

2.4.0

August 31, 2016

Enhancements

  • The HTTP headers and status code of a response are now part of the payload and can be accessed via ctx.payload._headers and ctx.payload._status_code.

2.3.5

August 3, 2016

Bug Fixes

  • The watch history was not written, if one of the chained inputs resulted in a failure as well as an input containing a field name with dots
  • If response_content_type is set in the HTTP input, the returned content-type of a HTTP response is always ignored and the configured content type is used.
  • Status of an acked watch, whose condition evaluates to false again is now properly persisted and not lost in case of a master node switch
  • Fixed the watch history template so payloads and request bodies are handled correctly. To update an existing installation, delete the existing watch history template by running DELETE /_template/watch_history and the correct template will be autocreated. To verify the template is recreated, call GET /_template/watch_history. Note that this just updates the template, so you need to wait one day for this update to take effect when a new history index is created.
  • The watcher.http.proxy.port setting for global proxy configuration was not applied correctly.

2.3.4

July 7, 2016

Bug Fixes

  • Putting a new watch with state active=false now stores that state correctly on a multi node cluster.
  • Fixed the watch history template so nested request bodies are handled correctly. To update an existing installation, delete the existing watch history template by running DELETE /_template/watch_history and the correct template will be autocreated. To verify the template is recreated, call GET /_template/watch_history. Note that this just updates the template, so you need to wait one day for this update to take effect when a new history index is created.
  • The HTML sanitizer now supports border and cellpadding attributes on table elements and the colspan and rowspan attributes on <td> and <tr> elements.
  • Fixed the Watcher/Marvel examples in the documentation.

2.3.3

May 18, 2016

Enhancements

  • Adds support for Elasticsearch 2.3.3

2.3.2

April 26, 2016

Bug Fixes

  • All SMTP connection timeouts are now set to two minutes by default to prevent a watch from getting stuck.
  • HTTP headers from responses that contained dots led to exceptions when the HTTP response was stored in the watch history. All dots in any header names are now replaced with underscores. For example, a header called foo.bar becomes foo_bar
  • Hipchat action: Fall back to the default Hipchat color and format if they are not specified at the account level or within the action itself, instead of failing.

2.3.1

April 4, 2016

Enhancements

  • Adds support for Elasticsearch 2.3.1

2.3.0

March 30, 2016

New Features

Enhancements

  • Support url in http requests as a shortcut for path, scheme, port, params
  • Support ignore_condition and record_execution as parameters in the Execute Watch API

Bug Fixes

  • The http client does not do any URL escaping by itself anymore, preventing potential wrong double escapes

2.2.1

March 10, 2016

Bug Fixes

  • The croneval CLI tool sets the correct environment to run

2.2.0

February 2, 2016

Enhancements

  • Adds support for Elasticsearch 2.2.0.

2.1.2

February 2, 2016

Enhancements

  • Adds support for Elasticssearch 2.1.2

2.1.1

December 17, 2015

Bug Fixes

  • Fixed an issue that prevented sending of emails

2.1.0

November 24, 2015

New Features

Enhancements

  • Adds support for Elasticsearch 2.1.0.
  • Adds support for configuring a proxy in the webhook action, http input and configuring a default proxy (which is also used by the slack action), using the watcher.http.proxy.host and watcher.http.proxy.port settings.

Bug Fixes

  • Fixed an issue where the scheduler may get stuck during Watcher startup. This caused no watches to ever fire.
  • Fixed an issue where under specific conditions Watcher would not start if there are not finished watch executions from the previous time that watcher was running and those watch execution are unable the execute during the current start process.

2.0.1

November 24, 2015

Bug fixes

  • Fixed an issue where under specific conditions Watcher would not start if there are not finished watch executions from the previous time that watcher was running and those watch execution are unable the execute during the current start process.

2.0.0

October 28, 2015

Breaking Changes

  • The dynamic index names support has been removed and Elasticsearch’s date math index names support should be used instead. The only difference between Watcher’s dynamic index names support and Elasticsearch’s date math index names support is how timezones are expressed. In Watcher this is done via node settings, in Elasticsearch the timezone is part of the date math index names support. Only if you’re using dynamic index names with timezones in Watcher then you need to upgrade your watches after the upgrade, otherwise your watches will work as they did before the upgrade. For example if watcher.dynamic_indices.time_zone setting was set to +01:00 and a watch has the following index name <logstash-{now/d}> then after the upgrade you need to update this watch to use the following index name <logstash-{now/d{YYYY.MM.dd|+01:00}}>.

New Features

Enhancements

  • Watcher continuously checks if the index templates for .watches, .triggered_watches and .watch_history-* exist. Whereas before the existence of these index templates was only checked at Watcher startup time. The absence of these index templates leads to watcher data being indexed incorrectly, which then can cause Watcher to behave incorrectly.
  • If Watcher was stopped via the stop Watcher api and after that a master election took place then Watcher would then unexpectedly start.
  • During Watcher start up only wait for the shards of the .watches and .triggered_watches indices to be available. Before Watcher also waited for the shards of the .watch_history-* indices, which wasn’t needed. This improved time it takes for Watcher to startup.
  • If action.auto_create_index setting has been configured then Watcher will check if the setting is too restrictive. If the action.auto_create_index is too restrictive then Watcher will fail during startup with a descriptive error message.

Bug Fixes

  • If Watcher was installed with Shield then the Watcher index templates couldn’t be stored and could lead to Watcher behaving incorrectly. This was caused by Watcher not detecting correctly if Shield was installed.
  • Update croneval command line utility to properly handle whitespaces in the elasticsearch home path.
  • Fixed an issue where the scheduler may get stuck during Watcher startup. This caused no watches to ever fire.
  • Fixed url encoding issue in http input and webhook output. The url params were url encoded twice.

1.0.1

July 29, 2015

Enhancements

  • Dynamic index names now support specifying a time zone to be used when computing the names of the indices. The default is UTC. Previously, the computation was fixed to always use UTC when computing the names of the indices.

Bug Fixes

  • Fixed a compatibility issue with Elasticsearch 1.6.1 and 1.7.2, which were released earlier today.

1.0.0

June 25, 2015

Enhancements

  • Added execution time aware dynamic index names support to index action, search input, and search transform.
  • You must now explicitly specify the unit when configuring any time value. (Numeric-only values are no longer supported.)
  • Cleaned up the Get Watch API response.
  • Cleaned up the Stats API response.

1.0.0-rc1

June 19, 2015

New Features

Enhancements

1.0.0-Beta2

June 10, 2015

New Features

  • Acking and Throttling are now applied at the action level rather than the watch level.
  • Added support for multi-doc indexing to the index action.
  • Added a queued watches metric that’s accessible via the Stats API.
  • Added a currently-executing watches metric that’s accessible via the Stats API.

Enhancements

  • The compare condition result now includes the value of each field that was referenced in the comparison.
  • The Execute API now supports a default trigger event (breaking change)
  • The watch_record document structure in the .watch_history-* indices has changed significantly (breaking change)
  • A new internal index was introduced - .triggered_watches
  • Added support for headers in the Webhook Action result and the HTTP Input result.
  • Add plain text response body support for the HTTP Input.

Bug Fixes