All Versions
100
Latest Version
Avg Release Cycle
38 days
Latest Release
1978 days ago

Changelog History
Page 6

  • v0.24.0 Changes

    June 06, 2016

    💥 Breaking Changes

    • Sensu check "Aggregates 2.0" breaks the existing Sensu API aggregate endpoints.
    • Sensu API GET /health endpoint, failed health checks now respond with a 412 (preconditions failed) instead of a 503.

    ➕ Added

    • Persistent Sensu event IDs, event occurrences for a client/check pair will now have the same event ID until the event is resolved.

    • ➕ Added a CLI option/argument to cause the Sensu service to validate its compiled configuration settings and exit with the appropriate exit code, e.g. 2 for invalid. The CLI option is --validate_config. This feature is now used when restarting a Sensu service to first validate the new configuration before stopping the running service.

    • 👌 Improved tracking of in progress check result processing, no longer potentially losing check results when restarting the Sensu server service.

    • Check results for proxy clients (a.k.a JIT clients) will now have a check "origin" set to the client name of the result producer.

    • 🔧 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.

    • Sensu check "Aggregates 2.0".

    • 👍 Sensu client token substitution is now supported in every check definition attribute value, no longer just the check command.

    🔄 Changed

    • 0️⃣ Event data check type now explicitly defaults to "standard".

    🛠 Fixed

    • Sensu API GET /health endpoint, failed health check now responds with a 412 (preconditions failed) instead of a 503.
    • Sensu API POST /clients endpoint can now create clients in the registry that are expected to produce keepalives, and validates clients with the Sensu Settings client definition validator.
    • 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 response, with a descriptive error message, when it has not yet initialized its connections or it is reconnecting to either Redis or the Sensu Transport. The API /info and /health endpoints will still respond normally while reconnecting.

    🔄 Changed

    • ⚡️ Updated Thin (used by Sensu API) to the latest version, 1.6.4.
    • 📜 JrJackson is now used to parse JSON when Sensu is running on JRuby.
  • v0.23.3 Changes

    May 26, 2016

    🛠 Fixes

    • 🛠 Fixed child process write/read deadlocks when writing to STDIN or reading from STDOUT/ERR, when the data size exceeds the pipe buffers.
    • 🛠 Fixed child process spawn timeout deadlock, now using stdlib Timeout.
  • v0.23.2 Changes

    April 25, 2016

    🛠 Fixed

    • 🛠 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.

    ➕ Added

    • ➕ Added client socket check result check TTL validation.
  • v0.23.1 Changes

    April 15, 2016

    🛠 Fixed

    • 💎 The pure Ruby EventMachine reactor is used when running on Solaris.
  • v0.23.0 Changes

    April 04, 2016

    💥 Breaking Changes

    • 🔒 Dropped support for Rubies < 2.0.0, as they have long been EOL and have proven to be a hindrance and security risk.
    • The Sensu Transport API 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.

    🛠 Fixed

    • 🐎 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 https://github.com/JuanitoFatas/fast-ruby and benchmarks as a guide to further changes.
    • Using EventMachine 1.2.0, which brings several changes and improvements

    ➕ Added

    • 🔧 Redis Sentinel support for HA Redis. 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 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, e.g. "sentinels": [{"host": "10.0.1.23", "port": 26479}].
    • ➕ 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.
    • ➕ Added token substitution to filter eval attributes, providing access to event data, e.g. "occurrences": "eval: value == :::check.occurrences:::".
    • 💎 The pure Ruby EventMachine reactor is used when running on AIX.
    • 📦 The Sensu 0.23 packages use Ruby 2.3.
  • v0.22.2 Changes

    March 16, 2016

    🛠 Fixed

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

    ✂ Removed

    • ✂ 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).
  • v0.22.1 Changes

    March 01, 2016

    🛠 Fixed

    • 🐎 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.
  • v0.22.0 Changes

    January 29, 2016

    ➕ Added

    • 🔧 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"}}.
    • 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.
    • ➕ 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.
    • 🔌 The Sensu plugin installation tool, sensu-install, will no longer install a plugin if a or specified version has already been installed.
    • 👍 The Sensu client socket now supports UTF-8 encoding.
  • v0.21.0 Changes

    November 13, 2015

    💥 Breaking Changes

    • 📦 Using the Sensu embedded Ruby for Sensu checks, mutators, and handlers has become a common practice. The Sensu 0.21 packages changed the default 0️⃣ value of EMBEDDED_RUBY from false to true, allowing Sensu plugins to use the embedded Ruby by default. This change makes it easier to get started with Sensu.

    🛠 Fixed

    • 👌 Improved the Sensu test suite to reduce the number of timeout triggered failures. These changes make Sensu development much more pleasant.
    • 🛠 Fixed a few inline documentation typos, e.g. sbuded -> subdued.
    • 🚚 Moved the Sensu bins (e.g. sensu-client) from bin to exe to avoid the conflict with Ruby bundler bin stubs.
    • 🛠 Fixed Sensu API and client socket input validation, no longer accepting multi-line values.
    • Fixed check request publishing for checks that make use of check extensions, e.g. "extension": "check_http_endpoints.
    • 🛠 Fixed the handler "filters" bug that caused Sensu to mutate handler definitions, removing filters for successive executions.
    • 🛠 Fixed Sensu API POST /request endpoint check request publishing to round-robin client subscriptions.
    • 🛠 Fixed the Windows job handle leak when spawning processes for checks.
    • ⚡️ Updated the Redis client library (em-redis-unified) to remove duplicate ⚠ Ruby hash key warnings.

    ➕ Added

    • ➕ Added a Sensu plugin installation tool, sensu-install, making it easier to install Sensu community plugins. The sensu-install tool will use the appropriate Ruby when installing plugins. The tool aims to produce verbose and useful output to help when debugging plugin installation issues.
    • ➕ Added the Sensu API DELETE /results/:client/:check endpoint, supporting check result deletion via the Sensu API. This feature allows users to clean up "stale" check result data for checks that have been removed.
    • ➕ Added the Sensu API POST /results endpoint, supporting check result input via the Sensu API. The JIT client feature added in 0.20 enabled this functionality. Services that do not have access to a local Sensu client socket can make use of this feature.
  • v0.20.6 Changes

    September 22, 2015

    🛠 Fixed

    • ✂ Removed the use of EM::Iterator from event filtering, replacing it with Proc and EM::next_tick. EM::Iterator creates anonymous classes that cannot be garbage collected on JRuby.
    • 🚚 The Sensu API will remove a client immediately if there are no current events for it. The API will continue to monitor the current event count for the client to be deleted, deleting the client when there are no longer current events or after a timeout of 5 seconds.
    • The Sensu API will no longer crash while fetching check result data for a client that is being deleted.

    ✂ Removed

    • ✂ Removed sensu-em as a dependency, now using upstream EventMachine 1.0.8.