CHANGELOG

Releases

Core 1.2.1 Release Notes

February 9, 2017 — Sensu Core version 1.2.1 has been released and is available for immediate download. Please note the following improvements:

CHANGES

  • SECURITY FIX: Sensu’s configuration redaction function failed to handle key/value pairs in deeply nested data structures, resulting in sensitive configuration data (e.g. passwords) being logged in clear-text. The redaction function now handles the necessary recursion to address this vulnerability.

This vulnerability is documented as CVE-2018-1000060.

Core 1.2.0 Release Notes

Source: GitHub.com

December 5, 2017 — Sensu Core version 1.2.0 has been released and is available for immediate download. Please note the following improvements:

CHANGES

  • NEW: Scheduled maintenance, Sensu now gives users the ability to silence a check and/or client subscriptions at a predetermined time (begin epoch timestamp), with an optional expiration (in seconds), enabling users to silence events in advance for scheduled maintenance windows.

  • NEW: The Sensu API now logs the “X-Request-ID” header, making it much easier to trace a request/response. If the API client does not provide a request ID, the API generates one for the request (UUID).

  • IMPROVEMENT: The Sensu API /results/* endpoints now include check history in the result data.

  • IMPROVEMENT: Check token substitution is now supported in check “subdue”.

Core 1.1.3 Release Notes

Source: GitHub.com

CHANGES

  • BUGFIX: Fixed a bug in the Sensu client that broke check hooks named after numeric statuses (e.g. “2”) and “non-zero”, they were never executed unless the client had a local check definition. (#1773)

  • BUGFIX: systemd units now stored in /lib/systemd instead of /usr/lib/systemd on Debian and Ubuntu systems. (sensu-omnibus #240)

  • BUGFIX: Sensu processes once again honor service-specific defaults in /etc/default or /etc/sysconfig (sensu-omnibus #226)

  • BUGFIX: Package scripts now use getent for user/group verification (sensu-omnibus #237)

  • BUGFIX: Removing AIX package no longer fails when sensu-client isn’t running. (sensu-omnibus #243)

Core 1.1.2 Release Notes

Source: GitHub.com

CHANGES

  • BUGFIX: Fixed a bug in the Sensu client HTTP socket that caused the Sensu client to crash when the the local client definition did not specify "http_socket" settings and the /info or /results endpoints were accessed.

  • BUGFIX: Fixed a bug in the Sensu client HTTP socket that caused the Sensu client to consider an HTTP content-type that included media-type information as invalid, discarding possibly valid content.

Core 1.1.1 Release Notes

Source: GitHub.com

CHANGES

  • BUGFIX: Fixed a bug in check TTL monitoring that caused the Sensu server to crash. Check TTL member deletion, following the deletion of the associated check result, would produce an uncaught error.

Core 1.1.0 Release Notes

Source: GitHub.com

September, 27 2017 — Sensu Core version 1.1.0 has been released and is available for immediate download. Please note the following improvements:

CHANGES

  • IMPORTANT: Sensu packages include Ruby 2.4.1. Upgrading from releases of Sensu prior to 1.0.0 will require all plugin or extension gems to be re-installed under the new Ruby environment.

  • IMPORTANT: Sensu packages include sensu-plugin 2.0.0, which disables its deprecated filter methods by default, i.e. occurrences. Sensu releases since 1.0.0 include built-in filters that provide the same functionality with several improvements. The built-in filters are “occurrences” and “check_dependencies”. To use the built-in filters, apply them to Sensu event handlers via their definition "filters" attribute, e.g. "filters": ["occurrences", "check_dependencies"]. These filters can now be used with Sensu event handlers that do not use the sensu-plugin library (or Ruby).

  • NEW: Check hooks, commands run by the Sensu client in response to the result of the check command execution. The Sensu client will execute the appropriate configured hook command, depending on the check execution status (e.g. 1). Valid hook names include (in order of precedence): “1”-“255”, “ok”, “warning”, “critical”, “unknown”, and “non-zero”. The check hook command output, status, executed timestamp, and duration are captured and published in the check result. Check hook commands can optionally receive JSON serialized Sensu client and check definition data via STDIN.

  • NEW: Check STDIN. A boolean check definition attribute, “stdin”, when set to true instructs the Sensu client to write JSON serialized Sensu client and check definition data to the check command process STDIN. This attribute cannot be used with existing Sensu check plugins, nor Nagios plugins etc, as the Sensu client will wait indefinitely for the check process to read and close STDIN.

  • IMPROVEMENT: Splayed proxy check request publishing. Users can now splay proxy check requests (optional), evenly, over a window of time, determined by the check interval and a configurable splay coverage percentage. For example, if a check has an interval of 60s and a configured splay coverage of 90%, its proxy check requests would be splayed evenly over a time window of 60s * 90%, 54s, leaving 6s for the last proxy check execution before the the next round of proxy check requests for the same check. Proxy check request splayed publishing can be configured with two new check definition attributes, within the proxy_requests scope, splay (boolean) to enable it and splay_coverage (integer percentage, defaults to 90).

  • IMPROVEMENT: Configurable check output truncation (for storage in Redis). Check output truncation can be manually enabled/disabled with the check definition attribute “truncate_output”, e.g.“truncate_output”: false. The output truncation length can be configured with the check definition attribute “truncate_output_length”, e.g. “truncate_output_length”: 1024. Check output truncation is still enabled by default for metric checks, with “type”: “metric”.

  • IMPROVEMENT: Sensu client HTTP socket basic authentication can how be applied to all endpoints (not just /settings), via the client definition http_socket attribute “protect_all_endpoints”, e.g. “protect_all_endpoints”: true.

  • IMPROVEMENT: Improved check TTL monitoring performance.

  • IMRPOVEMENT: The Sensu extension run log event log level is now set to debug (instead of info) when the run output is empty and the status is 0.

  • BUGFIX: Added initial timestamp to proxy client definitions. The Uchiwa and Sensu dashboards will no longer display “Invalid Date”.

  • BUGFIX: Deleting check history when deleting an associated check result.

Core 1.0.4 Release Notes

October, 17 2017 — Sensu Core version 1.0.4 has been released and is available for immediate download. Please note the following improvements:

CHANGES

  • DEBUG: Added HTTP response body to sensu-api debug-level log messages. This is a temporary change, not included in future releases.

Core 1.0.3 Release Notes

Source: GitHub.com

August 25, 2017 — Sensu Core version 1.0.3 has been released and is available for immediate download. Please note the following improvements:

CHANGES

  • BUGFIX: Now using EventMachine version 1.2.5 in order to support larger EM timer intervals. EM timers are used by the Sensu check scheduler and many other Sensu components.

Core 1.0.2 Release Notes

Source: GitHub.com

July 27, 2017 — Sensu Core version 1.0.2 has been released and is available for immediate download. Please note the following improvements:

CHANGES

  • BUGFIX: Addressed an issue with client keepalive transport acknowledgments. We discovered a situation where poor Redis performance could negatively impact client keepalive processing, potentially triggering a compounding failure that the Sensu server is unable to recover from. Moving acknowledgments to the next tick of the EventMachine reactor avoids the situation entirely.

Core 1.0.1 Release Notes

Source: GitHub.com

July 24, 2017 — Sensu Core version 1.0.1 has been released and is available for immediate download. Please note the following improvements:

CHANGES

  • BUGFIX: Fixed Sensu configuration validation, it is now being applied. There was a bug that allowed invalid Sensu configuration definitions to be loaded, causing unexpected behaviours.

  • BUGFIX: Now excluding certain file system directories from the Sensu RPM package spec, as they could cause conflicts with other RPM packages.

Core 1.0.0 Release Notes

Source: GitHub.com

July 11, 2017 — Sensu Core version 1.0.0 has been released and is available for immediate download. Please note the following improvements:

CHANGES

  • IMPORTANT: Sensu packages now include Ruby 2.4.1. Upgrading from prior versions of Sensu will require any plugin or extension gems to be re-installed under the new Ruby environment.

  • IMPORTANT: Sensu packages now include sensu-plugin 2.0.0, which disables its deprecated filter methods by default, i.e. occurrences. Sensu 1.0 includes built-in filters that provide the same functionality with several improvements. The built-in filters are “occurrences” and “check_dependencies”. To use the built-in filters, apply them to Sensu event handlers via their definition "filters" attribute, e.g. "filters": ["occurrences", "check_dependencies"]. These filters can now be used with Sensu event handlers that do not use the sensu-plugin library (or Ruby).

  • NEW: Added Sensu API event endpoint alias “incidents”, e.g. /incidents, /incidents/:client/:check.

  • IMPROVEMENT: Improved Sensu client keepalive configuration validation, now including coverage for check low/high flap thresholds etc.

  • IMPROVEMENT: Improved Sensu client socket check result validation, now including coverage for check low/high flap thresholds etc.

  • IMPROVEMENT: The sensu-install tool now notifies users when it is unable to successfully install an extension, when the environment variable EMBEDDED_RUBY is set to false.

  • IMPROVEMENT: Added the Sensu RELEASE_INFO constant, containing information about the Sensu release, used by the API /info endpoint and Server registration.

  • BUGFIX: Sensu handler severities filtering now accounts for flapping events.

  • BUGFIX: Fixed Sensu Redis connection on error reconnect, no longer reusing the existing EventMachine connection handler.

Core 0.29.0 Release Notes

Source: GitHub.com

April 7, 2017 — Sensu Core version 0.29.0 has been released and is available for immediate download. Please note the following improvements:

CHANGES

  • IMPORTANT: Sensu packages now include Ruby 2.4.1. Upgrading from prior versions of Sensu will require any plugin or extension gems to be re-installed under the new Ruby environment.

  • IMPORTANT: Sensu packages now include sensu-plugin 2.0.0, which disables its deprecated filter methods by default, i.e. occurrences. Sensu 0.29 includes built-in filters that provide the same functionality with several improvements. The built-in filters are “occurrences” and “check_dependencies”. To use the built-in filters, apply them to Sensu event handlers via their definition "filters" attribute, e.g. "filters": ["occurrences", "check_dependencies"]. These filters can now be used with Sensu event handlers that do not use the sensu-plugin library (or Ruby).

  • IMPROVEMENT: Sensu server tasks, replacing the Sensu server leader functionality, distributing certain server responsibilities amongst the running Sensu servers. A server task can only run on one Sensu server at a time. Sensu servers partake in an election process to become responsible for one or more tasks. A task can failover to another Sensu server.

  • IMPROVEMENT: Sensu API response object filtering for any GET request. Filtering is done with one or more dot notation query parameters, beginning with filter., to specify object attributes to filter by, e.g. /events?filter.client.environment=production&filter.check.contact=ops.

  • NEW: Added API endpoint GET /settings to provided the APIs running configuration. Sensitive setting values are redacted by default, unless the query parameter redacted is set to false, e.g. /settings?redacted=false.

  • IMPROVEMENT: Added support for invalidating a Sensu client when deleting it via the Sensu API DELETE /clients/:name endpoint, disallowing further client keepalives and check results until the client is either successfully removed from the client registry or for a specified duration of time. To invalidate a Sensu client until it is deleted, the query parameter invalidate must be set to true, e.g. /clients/app01.example.com?invalidate=true. To invalidate the client for a certain amount of time (in seconds), the query parameter invalidate_expire must be set as well, e.g. /clients/app01.example.com?invalidate=true&invalidate_expire=300.

  • IMPROVEMENT: Added a Sensu settings hexdigest, exposed via the Sensu API GET /info endpoint, providing a means to determine if a Sensu server’s configuration differs from the rest.

  • IMPROVEMENT: Added a proxy argument to sensu-install. To use a proxy for Sensu plugin and extension installation with sensu-install, use the -x or --proxy argument, e.g. sensu-install -e statsd --proxy http://proxy.example.com:8080.

  • IMPROVEMENT: Added support for issuing proxy check requests via the Sensu API POST /request endpoint.

  • IMPROVEMENT: The Sensu API now logs response times.

  • IMPROVEMENT: The Sensu API now returns a 405 (Method Not Allowed) when an API endpoint does not support a HTTP request method, e.g. PUT, and sets the HTTP header “Allow” to indicate which HTTP request methods are supported by the requested endpoint.

  • IMPROVEMENT: Added a built-in filter for check dependencies, check_dependencies, which implements the check dependency filtering logic in the Sensu Plugin library.

  • IMPROVEMENT: Added default values for Sensu CLI options config_file ("/etc/sensu/config.json") and config_dirs (["/etc/sensu/conf.d"]). These defaults are only applied when the associated file and/or directory exist.

  • BUGFIX: The built-in filter occurrences now supports refresh for flapping events (action flapping).

  • BUGFIX: Force the configured Redis port to be an integer, as some users make the mistake of using a string.

Core 0.28.5 Release Notes

Source: GitHub.com

March 23, 2017 — Sensu Core version 0.28.5 has been released and is available for immediate download. Please note the following changes:

  • BUGFIX: Fixed check subdue and filter when features when a time window spans over 00:00:00, crossing the day boundary.

Core 0.28.4 Release Notes

Source: GitHub.com

March 10, 2017 — Sensu Core version 0.28.4 has been released and is available for immediate download. Please note the following changes:

  • BUGFIX: In the interest of addressing a regression causing duplicate check execution requests, code added in 0.28.0 to account for task scheduling drift has been removed.

Core 0.28.3 Release Notes

Source: GitHub.com

March 9, 2017 — Sensu Core version 0.28.3 has been released and is available for immediate download. Please note the following changes:

  • BUGFIX: The Sensu client now includes check source when tracking in progress check executions. These changes are necessary to allow the Sensu client to execute on several concurrent proxy check requests.

Core 0.28.2 Release Notes

Source: GitHub.com

March 6, 2017 — Sensu Core version 0.28.2 has been released and is available for immediate download. Please note the following changes:

  • BUGFIX: Clients created via /clients API endpoint now have a per-client subscription added automatically, ensuring they can be silenced.

Core 0.28.1 Release Notes

Source: GitHub.com

March 2, 2017 — Sensu Core version 0.28.1 has been released and is available for immediate download. Please note the following changes:

  • BUGFIX: Check requests with proxy_requests attributes are no longer overridden by local check definitions.

  • IMPROVEMENT: Updated Oj (used by the sensu-json library) to the latest release (2.18.1) for Ruby 2.4 compatibility.

  • IMPROVEMENT: Updated embedded OpenSSL from 1.0.2j to 1.0.2k.

Core 0.28.0 Release Notes

Source: GitHub.com

February 23, 2017 — Sensu Core version 0.28.0 has been released and is available for immediate download. Please note the following improvements:

CHANGES

  • IMPROVEMENT: Added proxy check requests to improve Sensu’s ability to monitor external resources that have an associated Sensu proxy client. Publish a check request to the configured subscribers (e.g. ["round-robin:snmp_pollers"]) for every Sensu client in the registry that matches the configured client attributes in client_attributes on the configured interval (e.g. 60). Client tokens in the check definition (e.g. "check-snmp-if.rb -h :::address::: -i eth0") are substituted prior to publishing the check request. The check request check source is set to the client name.

  • IMPROVEMENT: Schedule check requests and standalone executions with the Cron syntax.

  • IMPROVEMENT: Added the Sensu server registry, containing information about the running Sensu servers. Information about the Sensu servers is now accessible via the Sensu API /info endpoint.

  • IMPROVEMENT: Added two optional attributes to Sensu API POST /request, “reason” and “creator”, for additional context. The check request reason and creator are added to the check request payload under “api_requested” and become part of the check result.

  • IMPROVEMENT: Added event IDs to event handler log events for additional context, making it easier to trace an event through the Sensu pipeline.

  • BUGFIX: The Sensu interval timers, used for scheduling tasks, now account for drift. The check request and standalone execution scheduler timers are now more accurate.

  • BUGFIX: Fixed a bug in the Sensu deep_merge() method that was responsible for mutating arrays of the original provided objects.

Core 0.27.1 Release Notes

Source: GitHub.com

February 17, 2017 — Sensu Core version 0.27.1 has been released and is available for immediate download. Please note the following improvements:

CHANGES

  • IMPROVEMENT: Failed pipe handler executions are now logged with the error log level.

  • IMPROVEMENT: Sensu server now adds a unique per-client subscription to client keepalives when missing. This is to enable built-in event silencing for older Sensu clients (< 0.26).

  • BUGFIX: Check subdue and filter when time windows now account for GMT offsets.

  • BUGFIX: Non UTF-8 characters in check tokens are now removed.

  • BUGFIX: Fixed filter name logging when an event is filtered.

Core 0.27.0 Release Notes

Source: GitHub.com

January 26, 2017 — Sensu Core version 0.27.0 has been released and is available for immediate download. Please note the following improvements:

IMPORTANT

This release includes potentially breaking, backwards-incompatible changes:

  • NEW: Sensu is now packaged specifically for each supported platform version and architecture; previously, single packages were built for each platform and architecture using the oldest supported platform version. Accordingly, package repository structures have changed to support per-platform-version packages. See the platforms page for links to updated installation instructions.

  • NEW: On platforms where systemd is the default init, Sensu now provides systemd unit files instead of sysv init scripts.

  • NOTE: The transition of service management from sysv to systemd may initially cause an error when restarting Sensu services. To avoid this, please be sure to stop Sensu services before upgrading to Sensu 0.27 and starting them again.

  • REMOVED: The embedded runit service supervisor is no longer included in Sensu packages for Linux platforms.

  • REPLACED: The sensu-omnibus project has superseded sensu-build as the tool chain for building official Sensu packages. This project uses Travis CI to automate package builds using a combination of Test Kitchen, Chef and Omnibus tools.

  • IMPROVEMENT: Sensu packages for Windows now include Ruby 2.3.0, upgraded from Ruby 2.0.0 in prior versions of Sensu.

  • IMPROVEMENT: Sensu packages for Windows now include winsw 2.0.1, upgraded from winsw 1.16. This version includes a number of changes which should help to address issues around orphaned processes.

  • CHANGED: The CONFIG_DIR environment variable has been renamed to CONFD_DIR. This environment varible is used to specify the directory path where Sensu processes will load any JSON config files for deep merging. If you are using /etc/default/sensu to specify a custom value for CONFIG_DIR, please update it to the new CONFD_DIR variable name.

  • IMPROVEMENT: Updated embedded OpenSSL from 1.0.1t to 1.0.2k.

CHANGES

  • NEW: Added a Sensu client HTTP socket for check result input and informational queries. The client HTTP socket provides several endpoints, /info, /results, and /settings. Basic authentication is supported, which is required for certain endpoints, i.e. /settings. The client HTTP socket is configurable via the Sensu client definition, "http_socket": {}.

  • NEW: Added API endpoint /silenced/ids/:id for fetching a silence entry by ID.

  • NEW: Added check attribute ttl_status, allowing checks to set a different TTL event check status (default is 1 warning).

  • NEW: Added client deregistration attribute status, allowing clients to set a different event check status for their deregistration events (default is 1 warning).

  • NEW: Added Rubygems cleanup support to sensu-install, via the command line argument -c or --clean when installing one or more plugins and/or extensions. If a version is provided for the plugin(s) or extension(s), all other installed versions of them will be removed, e.g. sensu-install -e snmp-trap:0.0.23 -c. If a version is not provided, all installed versions except the latest will be removed.

  • IMPROVEMENT: Hostnames are now resolved prior to making connection attempts, this applies to the Sensu Transport (i.e. RabbitMQ) and Redis connections. This allows Sensu to handle resolution failures and enables failover via DNS and services like Amazon AWS ElastiCache.

  • IMPROVEMENT: Added the filter name to event filtered log events.

  • IMPROVEMENT: Check TTL events now have the check interval overridden to the TTL monitoring interval, this change allows event occurrence filtering to work as expected.

  • BUGFIX: Silenced resolution events with silencing "expire_on_resolve": true are now handled.

Core 0.26.5 Release Notes

Source: GitHub.com

October 12, 2016 — Sensu Core version 0.26.5 has been released and is available for immediate download. Please note the following improvements:

CHANGES

  • BUGFIX: Fixed Sensu client configuration validation when the automatic per-client subscription is the client’s only subscription.

Core 0.26.4 Release Notes

Source: GitHub.com

October 5, 2016 — Sensu Core version 0.26.4 has been released and is available for immediate download. Please note the following improvements:

CHANGES

  • BUGFIX: Fixed in progress check extension execution tracking, the Sensu client now guards against multiple concurrent executions of the same check extension.

Core 0.26.3 Release Notes

Source: GitHub.com

September 23, 2016 — Sensu Core version 0.26.3 has been released and is available for immediate download. Please note the following improvements:

CHANGES

  • BUGFIX: Fixed a condition where /silenced API would fail to retrieve entries for subscriptions containing a mix of colons and hyphens, e.g. client:foo-bar-baz.

Core 0.26.2 Release Notes

Source: GitHub.com

September 21, 2016 — Sensu Core version 0.26.2 has been released and is available for immediate download. Please note the following improvements:

CHANGES

  • BUGFIX: Fixed a condition where events could not be successfully deleted when they originate from a client configured with a signature

  • BUGFIX: Fixed a condition where check results with an invalid signature would never complete processing. This often resulted in Sensu Server failing to shut down cleanly.

  • BUGFIX: Fixed a condition where /silenced API would fail to retrieve entries for subscriptions containing colons, e.g. client:foo.

  • BUGFIX: Made a change to ensure that new proxy clients are created with a per-client subscription just like regular clients.

Core 0.26.1 Release Notes

Source: GitHub.com

September 7, 2016 — Sensu Core version 0.26.1 has been released and is available for immediate download. Please note the following improvements:

CHANGES

  • BUGFIX: Fixed a condition where Sensu Server would fail to start without a client configuration definition.

Core 0.26.0 Release Notes

Source: GitHub.com

August 24, 2016 — Sensu Core version 0.26.0 has been released and is available for immediate download. Please note the following improvements:

IMPORTANT

This release includes potentially breaking, backwards-incompatible changes:

  • Event silencing is now built into Sensu Core, and a new /silenced API is now available. A new "handle_silenced": true attribute is available to opt-out of this new built-in silencing functionality on a per-handler basis.

  • NEW: Every Sensu client now creates and subscribes to a unique client subscription (e.g. client:i-424242). Unique client subscriptions are required for silencing one or more checks on a single client (host) Fixes: #1327.

  • Sensu Core version 0.26 requires Uchiwa version 0.18 or newer in order to make use of the new /silenced API feature. Prior versions of Uchiwa silence events using the “silence stashes” pattern, which will be honored by existing handlers until the now-deprecated event filtering is removed from a future version of sensu-plugin.

NOTE: The new /silenced API and native event silencing features are intended to replace the “silence stash” pattern implemented in the sensu-plugin library and widely used by existing handlers. This “silence stashes” pattern is considered deprecated. Sensu 0.26 includes version 1.4.2 of the sensu-plugin library which continues to apply this pattern by default, but will log deprecation warnings as well. Set the check attribute enable_deprecated_filtering: false to disable the deprecated filtering behavior. Please refer to the Deprecating Event Filtering in sensu-plugin blog post for more information.

  • The handler definition subdue attribute is no longer supported. Time-based filtering is now supported by the new filter when attribute. Please update your handler definitions accordingly.

  • Check subdue definitions no longer support the "at": "handler" configuration setting.

CHANGES

  • NEW: Event silencing is now built into Sensu Core! The Sensu API now provides a set of /silenced endpoints, for silencing one or more checks and/or subscriptions (including the NEW client-specific subscriptions, above). Silencing applies to all event handlers by default, however a new handle_silenced handler definition attribute can be used to disable this functionality. Metric check events (OK) bypass event silencing.

NOTE: this improvement is very closely related to the impending removal of event filtering in the sensu-plugin gem. See the recent Deprecating Event Filtering in sensu-plugin blog post for more information.

  • NEW: Introducing Subdue 2.0! Sensu subdue rules have a brand new configuration syntax, adding support for a broader number of applications, and subdue definitions are now supported by standalone checks.

By way of comparison, the legacy subdue definition specification was limited to a single time window rule, with an array of exceptions. This was not only confusing, it made it very difficult to apply a simple “don’t execute this check outside of 9-5, M-F” rule.

  {
    "checks": {
      "example_check": {
        "command": "check_something.rb",
        "...": "...",
        "subdue": {
          "begin": "12:00:00 AM",
          "end": "11:59:00 PM",
          "days": ["monday", "tuesday", "wednesday", "thursday", "friday"],
          "exceptions": [
            {
              "begin": "9:00:00 AM",
              "end": "5:00:00 PM"
            }
          ]
        }
      }
    }
  }
  

The new syntax is more verbose, but by doing away with the need for exceptions and adding support for defining an array of subdue time windows, it is much easier to configure.

  {
    "checks": {
      "example_check": {
        "command": "check_something.rb",
        "...": "...",
        "subdue": {
          "days": {
            "monday": [
              {
                "begin": "12:00:00 AM PST",
                "end": "9:00:00 AM PST"
              },
              {
                "begin": "5:00:00 PM PST",
                "end": "11:59:59 PM PST"
              }
            ],
            "tuesday": [
              {
                "begin": "12:00:00 AM PST",
                "end": "9:00:00 AM PST"
              },
              {
                "begin": "5:00:00 PM PST",
                "end": "11:59:59 PM PST"
              }
            ],
            "wednesday": [
              {
                "begin": "12:00:00 AM PST",
                "end": "9:00:00 AM PST"
              },
              {
                "begin": "5:00:00 PM PST",
                "end": "11:59:59 PM PST"
              }
            ],
            "thursday": [
              {
                "begin": "12:00:00 AM PST",
                "end": "9:00:00 AM PST"
              },
              {
                "begin": "5:00:00 PM PST",
                "end": "11:59:59 PM PST"
              }
            ],
            "friday": [
              {
                "begin": "12:00:00 AM PST",
                "end": "9:00:00 AM PST"
              },
              {
                "begin": "5:00:00 PM PST",
                "end": "11:59:59 PM PST"
              }
            ],
            "saturday": [
              {
                "begin": "12:00:00 AM PST",
                "end": "11:59:59 PM PST"
              }
            ],
            "sunday": [
              {
                "begin": "12:00:00 AM PST",
                "end": "11:59:59 PM PST"
              }
            ]
          }
        }
      }
    }
  }
  

NOTE: Subdue rules now apply to check publishing, ONLY (i.e. subdue definitions no longer support the "at": "handler" definition attribute, among other changes). Prior to this release, subdue rules could be provided via check definition subdue attribute (i.e. "at": "publisher") or the handler definition subdue attribute (i.e. "at": "handler"). Time-based filtering for handlers is now provided by Sensu filters (see below). Please refer to the new subdue reference documentation for more information. See: #1415.

  • NEW: Event filters now support time-based rules, via a new "when": {} filter definition attribute. The filter when specification uses the same syntax as the new Subdue 2.0 specification, simplifying time-based event filtering. Please refer to the filer when reference documentation for more information. See #1415.

  • NEW: Sensu Extensions can now be loaded from Rubygems and enabled/disabled via configuration! The sensu-install has also added support for installing Sensu Extensions (e.g. sensu-install -e system-profile). Extensions gems must be enabled via configuration, please refer to the Sensu extension reference documentation for more information. See: #1394.

  • NEW: A check can now be a member of more than one named aggregate, via a new check definition "aggregates": [] attribute. See: #1379; fixes #1342.

  • NEW: Added support for setting Redis Sentinel configuration via a new REDIS_SENTINEL_URLS environment variable. Please refer to the Sensu environment variables reference documentation for more information. **See #1411; fixes #1361.

  • NEW: Added support for automatically discovering and setting client name and address attributes (two of the few required attributes for a valid Sensu client definition). See: #1379; fixes #1362.

  • IMPROVEMENT: Added support for a new occurrences_watermark attribute, which is used by the built-in sensu-occurrences-extension filter to prevent sending resolve notifications for events that were not handled due to occurrence filtering. See: #1419 and #1427.

  • IMPROVEMENT: Only attempt to schedule standalone checks that have an interval. See: #1384; fixes #1286.

  • IMPROVEMENT: Locally configured standalone checks (e.g. on a Sensu server) are no longer accessible via the Sensu API /checks endpoint. See: #1417; fixes #1416.

  • IMPROVEMENT: Check TTL events are no longer created if the associated Sensu client has a current keepalive event. See #1428; fixes #861 and #1282.

  • IMPROVEMENT: Increased the maximum number of EventMachine timers from 100k to 200k, to accommodate very large Sensu installations that execute over 100k checks. See #1370; fixes #1368.

  • BUGFIX: Fixed a Sensu API /results endpoint race condition that caused incomplete response content. See #1372; fixes [#1356][-i1356].

Core 0.25.7 Release Notes

Source: GitHub.com

August 9, 2016 — Sensu Core version 0.25.7 has been released and is available for immediate download. Please note the following improvements:

CHANGES

  • BUGFIX: Fixed the Sensu API 204 status response string, changing “No Response” to the correct string “No Content”. Fixes: #1405.

Core 0.25.6 Release Notes

Source: GitHub.com

July 28, 2016 — Sensu Core version 0.25.6 has been released and is available for immediate download. Please note the following improvements:

CHANGES

  • BUGFIX: Check results for unmatched tokens now include an executed timestamp.

  • BUGFIX: API aggregates max_age now guards against check results with a nil executed timestamp.

Core 0.25.5 Release Notes

Source: GitHub.com

July 12, 2016 — Sensu Core version 0.25.5 has been released and is available for immediate download. Please note the following improvements:

CHANGES

  • BUGFIX: Reverted a Sensu API race condition fix, it was a red herring. Desired behavior has been restored. See: #1358.

  • BUGFIX:: Custom check definition attributes are now included in check request payloads, fixing check attribute token substitution for pubsub checks. Fixes: #1360.

  • BUGFIX: Transport connectivity issues are now handled while querying the Transport for pipe stats for API /info and /health. See: #1367.

Core 0.25.4 Release Notes

Source: GitHub.com

June 20, 2016 — Sensu Core version 0.25.4 has been released and is available for immediate download. Please note the following improvements:

CHANGES

  • BUGFIX: Fixed a race condition in the Sensu API where the @redis and @transport objects were not initialized before serving API requests.

Core 0.25.3 Release Notes

Source: GitHub.com

June 17, 2016 — Sensu Core version 0.25.3 has been released and is available for immediate download. Please note the following improvements:

CHANGES

  • BUGFIX: Fixed a condition where API process was unable to set CORS HTTP headers when the API had not been configured (i.e. no "api": {} definition in configuration).

Core 0.25.2 Release Notes

Source: GitHub.com

June 16, 2016 — Sensu Core version 0.25.2 has been released and is available for immediate download. Please note the following improvements:

CHANGES

  • BUGFIX: The Sensu API now responds to HEAD requests for API GET routes.

  • BUGFIX: The Sensu API now responds to unsupported HTTP request methods with a 404 (Not Found), i.e. PUT.

Core 0.25.1 Release Notes

Source: GitHub.com

June 14, 2016 — Sensu Core version 0.25.1 has been released and is available for immediate download. Please note the following improvements:

CHANGES

  • IMPROVEMENT: the Sensu Core package now includes version 1.2 and 1.3 of the Sensu Plugin gem. Fixes #1339.

  • BUGFIX: The Sensu API now sets the HTTP response header “Connection” to “close”. Uchiwa was experiencing intermittent EOF errors. Fixes #1340.

Core 0.25.0 Release Notes

Source: GitHub.com

June 13, 2016 — Sensu Core version 0.25.0 has been released and is available for immediate download. Please note the following improvements:

IMPORTANT

This release includes potentially breaking, backwards-incompatible changes:

  • The legacy/deprecated Sensu API singular resources (e.g. /check/:check_name instead of /checks/:check_name), have been removed. Singular resources were never documented and have not been used by most community tooling (e.g. Uchiwa) since the very early Sensu releases (circa 2011-2012).

CHANGES

  • NEW: Built-in client de-registration. Sensu client de-registration on graceful sensu-client process stop is now supported by the Sensu client itself (no longer depending on the package init script). The package init script-based de-registration functionality still remains, but is considered to be deprecated at this time and will be removed in a future release.

Please note the following example client definition which enables built-in client de-registration (via the new client deregister definition attribute), and sets the deregistration event handler to deregister_client (via the new client deregistration definition attribute):

  {
    "client": {
      "name": "i-424242",
      "address": "8.8.8.8",
      "subscriptions": [
        "production",
        "webserver",
        "mysql"
      ],
      "deregister": true,
      "deregistration": {
        "handler": "deregister_client"
      },
      "socket": {
        "bind": "127.0.0.1",
        "port": 3030
      }
    }
  }
  

Please refer to the Sensu client reference documentation for additional information on configuring the built-in Sensu client de-registration. Fixes #1191, #1305.

  • NEW: The Sensu API has been rewritten to use EM HTTP Server, removing Rack and Thin as API runtime dependencies. The API no longer uses Rack async, making for cleaner HTTP request logic and much improved HTTP request and response logging. Fixes #1317.

  • BUGFIX: Fixed a critical bug in Sensu client execute_check_command() where a check result would contain a check command with client tokens substituted, potentially exposing sensitive/redacted client attribute values.

Core 0.24.1 Release Notes

Source: GitHub.com

June 7, 2016 — Sensu Core version 0.24.1 has been released and is available for immediate download. Please note the following improvements:

  • BUGFIX: Fixed a critical bug in Sensu server resume() which caused the server to crash when querying the state of the Sensu Transport connection before it had been initialized. Resolves #1321.

  • IMPROVEMENT: Updated references to unmatched tokens, i.e. check result output message, to better represent the new scope of token substitution. Resolves #1322.

Core 0.24.0 Release Notes

Source: GitHub.com

June 6, 2016 — Sensu Core version 0.24.0 has been released and is available for immediate download. Please note the following improvements:

IMPORTANT

This release includes potentially breaking, backwards-incompatible changes:

  • Sensu check aggregates have been completely redesigned. Users who are using check aggregates may need to review these changes before upgrading. Uchiwa users should install version 0.15 or higher before upgrading to Sensu Core version 0.24.0. See below for additional information.

  • Sensu event ids are no longer unique to each occurrence of an event. Event ids are now persistent for the duration of an event (per client/check pair), until the event is resolved. See below for additional information.

  • The Sensu /health (GET) API endpoint has been updated such that failed health checks now respond with an 412 (Precondition Failed) HTTP response code instead of a 503 (Service Unavailable) response code. Third-party services and/or custom scripts may need to be updated accordingly.

  • The Sensu services and corresponding service management scripts have been updated to use the new --validate_config command line option which uses strong configuration validation (i.e. do not start if configuration is in an invalid state). See below for additional information.

CHANGES

  • NEW: Named aggregates. Check aggregates 2.0 are here! At long last, Sensu check aggregates have been updated to support standalone checks, as well as a number of new use cases. Please refer to the check aggregates reference documentation for additional information. Resolves #803, #915, #1041, #1070, #1187, and #1218.

  • NEW: Persistent event IDs. Event occurrences for a client/check pair will now have the same event ID until the event is resolved (instead of a unique event ID for each occurrence of an event). Please refer to the Event specification reference documentation for additional information. Resolves #1196.

  • NEW: Strong configuration validation. Added a new --validate_config CLI option/argument to cause Sensu to validate configuration settings and exit with the appropriate exit code (e.g. 2 for invalid). This feature is now used when restarting a Sensu service to first validate the new configuration before stopping the running service (i.e. to prevent restarts if the configuration is invalid). Please refer to the Sensu service command line interface reference documentation for additional information. Resolves #1244, #1254.

  • NEW: Proxy check origins. Events for proxy clients will now have a check origin attribute, set to the client name of the result producer. Please refer to the Event data specification reference documentation for additional information. Resolves #1075.

  • NEW: Improved Sensu check token substitution. Sensu check token substitution is now supported in every check definition attribute value (no longer just the check command attribute). Please refer to the check token substitution reference documentation for additional information. Resolves #1281.

  • NEW: Sensu /clients (POST) API endpoint can now create clients in the client registry that are expected to produce keepalives, and validates clients with the Sensu Settings client definition validator. A new check keepalives attribute called has also been added, which allows client keepalives to be disabled on a per-client basis. Resolves #1203.

  • IMPROVEMENT: Configurable Sensu Spawn concurrent child process limit (checks, mutators, & pipe handlers). The default limit is still 12 and the EventMachine threadpool size is automatically adjusted to accommodate a larger limit. Resolves #1002.

  • IMPROVEMENT: Event data check type now explicitly defaults to standard. Resolves #1025.

  • IMPROVEMENT: Improved tracking of in progress check result processing, eliminates the potential for losing check results when restarting the Sensu server service. Resolves #1165.

  • IMPROVEMENT: Updated Thin (used by Sensu API) to the latest release, version 1.6.4. Resolves #1122.

  • IMPROVEMENT: JrJackson is now used to parse JSON when Sensu is running on JRuby.

  • IMPROVEMENT: The Sensu API now listens immediately on service start, even before it has successfully connected to Redis and the Sensu Transport. It will now respond with a 500 (Internal Server Error) HTTP response code and a descriptive error message when it has not yet initialized its connections or it is reconnecting to either Redis or the Sensu Transport. The Health and Info API endpoints will still respond normally while reconnecting. Resolves #1215.

Core 0.23.3 Release Notes

Source: GitHub.com

May 26, 2016 — Sensu Core version 0.23.3 has been released and is available for immediate download. Please note the following improvements:

  • IMPROVEMENT: Fixed child process write/read deadlocks when writing to STDIN or reading from STDOUT/STDERR, when the data size exceeds the pipe buffers.

  • IMPROVEMENT: Fixed child process spawn timeout deadlock, now using stdlib Timeout.

Core 0.23.2 Release Notes

Source: GitHub.com

April 25, 2016 — Sensu Core version 0.23.2 has been released and is available for immediate download. Please note the following improvements:

  • IMPROVEMENT: fixed client socket check result publishing when the client has a signature. The client signature is now added to the check result payload, making it valid (see: #1182).

Core 0.23.1 Release Notes

Source: GitHub.com

April 15, 2016 — Sensu Core version 0.23.1 has been released and is available for immediate download. Please note the following improvements:

  • NEW: a pure-Ruby EventMachine reactor is used when running on Solaris.

Core 0.23.0 Release Notes

Source: GitHub.com

April 4, 2016 — Sensu Core version 0.23.0 has been released and is available for immediate download. Please note the following improvements:

  • NEW: dropped support for Rubies < 2.0.0, as they have long been EOL and have proven to be a hindrance and security risk.

  • NEW: the Sensu 0.23 packages use Ruby 2.3.

  • NEW: native support for Redis Sentinel. Sensu services can now be configured to query one or more instances of Redis Sentinel for a Redis master. This feature eliminates the last need for load balancing middleware (e.g. HAProxy) in highly available Sensu configurations. To configure Sensu services to use Redis Sentinel, hosts and ports of one or more Sentinel instances must be provided.

Example Redis Sentinel configuration:

  {
    "sentinels": [
      {
        "host": "10.0.1.23",
        "port": 26479
      }
    ]  
  }
  

See the Redis configuration documentation for more information.

  • NEW: Added a CLI option/argument to cause the Sensu service to print (output to STDOUT) its compiled configuration settings and exit. The CLI option is --print_config or -P.

See the Sensu CLI arguments documentation for more information.

  • NEW: Added token substitution to filter eval attributes, providing access to event data.

Example filter eval token:

  {
    "filters": {
      "example_filter": {
        "attributes": {
          "occurrences": "eval: value > :::check.occurrences:::"          
        }
      }
    }
  }
  
  • NEW: native installer packages are now available for IBM AIX systems (sensu-client only).

  • NEW: The pure Ruby EventMachine reactor is used when running on AIX.

  • IMPROVEMENT: The Sensu Transport API has changed. Transports are now a deferrable, they must call succeed() once they have fully initialized. Sensu now waits for its transport to fully initialize before taking other actions.

  • IMPROVEMENT: performance improvements. Dropped MultiJson in favour of Sensu JSON, a lighter weight JSON parser abstraction that supports platform specific parsers for Sensu Core and Enterprise. The Oj JSON parser is once again used for Sensu Core. Used fast-ruby and benchmarks as a guide to further changes.

  • IMPROVEMENT: Using EventMachine 1.2.0, which brings several changes and improvements (changelog).

0.22.2 Release Notes

Source: GitHub.com

March 16, 2016 — Sensu Core version 0.22.2 has been released and is available for immediate download. Please note the following improvements:

  • BUGFIX: FFI library loading no longer causes a load error on AIX & Solaris.

  • Removed unused cruft from extension API run() and safe_run(). Optional options={} was never implemented in Sensu Core and event data dup() never provided the necessary protection that it claimed (only top level hash object).

0.22.1 Release Notes

Source: GitHub.com

March 01, 2016 — Sensu Core version 0.22.1 has been released and is available for immediate download. Please note the following improvements:

  • Performance improvements. Using frozen constants for common values and comparisons. Reduced the use of block arguments for callbacks.

  • Improved RabbitMQ transport channel error handling.

  • Fixed client signatures inspection/comparison when upgrading from a previous release.

0.22.0 Release Notes

Source: GitHub.com

January 29, 2016 — Sensu Core version 0.22.0 has been released and is available for immediate download. Please note the following improvements:

  • NEW: Client registration events are optionally created and processed (handled, etc.) when a client is first added to the client registry. To enable this functionality, configure a "registration" handler definition on Sensu server(s), or define a client specific registration handler in the client definition, e.g. {"client": "registration": {"handler": "debug"}}.

  • NEW: Client auto de-registration on sensu-client process stop is now supported by the Sensu package init script. Setting CLIENT_DEREGISTER_ON_STOP=true and CLIENT_DEREGISTER_HANDLER=example in /etc/default/sensu will cause the Sensu client to publish a check result to trigger the event handler named "example", before its process stops.

  • NEW: Added support for Sensu client signatures, used to sign client keepalive and check result transport messages, for the purposes of source (publisher) verification. The client definition attribute "signature" is used to set the client signature, e.g. "signature": "6zvyb8lm7fxcs7yw". A client signature can only be set once, the client must be deleted from the registry before its signature can be changed or removed. Client keepalives and check results that are not signed with the correct signature are logged (warn) and discarded. This feature is NOT a replacement for existing and proven security measures.

  • NEW: The Sensu plugin installation tool, sensu-install, will no longer install a plugin if a or specified version has already been installed.

  • NEW: The Sensu client socket now supports UTF-8 encoding.