This release represents a significant milestone for Sensu. The journey from a small side project to having a full-fledged company behind it has been incredible. Today, where Sensu has thousands of users and many customers, it is fun to look back at the early changelog to remember just how far we have come. This 1.0 release is a recognition that Sensu’s monitoring primitives have matured and that it has a stable set of features and APIs that users have come to depend on to solve their unique monitoring challenges.
Sensu 1.0 is a rerelease of version 0.29 under the covers (with a few minor bug fixes and features), but comes with a promise of adhering to Semantic Versioning (a.k.a SemVer) going forward (thanks again for suggesting we do@spang).
That said, I know many Sensu users (especially long-time users) are still running older versions of Sensu, and we have shipped a significant number of features and enhancements in the last 12–15 months, so I want to take this opportunity to highlight some of the major improvements we’ve implemented on our path to this important milestone:
Sensu Core version 0.23 (April 2016):
- Native Redis Sentinel support (for high availability configurations)
- print_config CLI option (for troubleshooting configuration issues)
- Filter attribute token substitution
- AIX packages
Sensu Core version 0.24 (June 2016):
- Named Aggregates
- validate_config CLI option (for validating configuration before restarting)
- POST /clients API endpoint (for proxy client management)
- Persistent event IDs
Sensu Core version 0.25 (June 2016):
- Client Deregistration Events
- API performance improvements
Sensu Core version 0.26 (August 2016):
- Native Event Silencing and /silenced API!
- Redesigned Check Subdue
- Automated Client “name” and “address” attribute discovery
- New Filter “when” attribute (only apply a filter for a time window)
- Support for loading Sensu extensions from Ruby gems
Sensu Core version 0.27 (January 2017):
- Sensu Client HTTP input socket
- Per platform/release/architecture packaging with support for native service managers (e.g. systemd)
Sensu Core version 0.28 (February 2017):
Sensu Core version 0.29 (April 2017):
- Built-in “occurrences” and “check_dependencies” filters
- Sensu Server Tasks (replacing Sensu Server Leader Election, can now distribute the Leader responsibilities amongst one or more Sensu Servers in an installation)
- API response content filtering!
- Sensu Settings Hexdigest (used to compare running configurations)
Sensu Core has several exciting new features and enhancements on the 1.x roadmap!
Scheduled maintenance. Sensu currently gives users the ability to silence a check and/or client subscriptions, stopping related Sensu events from being handled (e.g. no notifications). We plan to add the ability to silence a check and/or client subscriptions at a predetermined start time, with an optional end time, enabling users to silence events for scheduled maintenance windows in advance.
Check hooks. The Sensu client’s primary function is to execute check commands and publish their results for processing, allowing a Sensu server to take the appropriate actions. The practice of using Sensu for auto-remediation tasks and automated data gathering for incident triage continue to gain traction amongst Sensu users. Although these practices are achievable, Sensu does not currently make it easy, as all actions must be orchestrated by a Sensu server. We plan to introduce check hooks, commands run by the Sensu client in response to the result of the check command execution.
Official Docker images. We plan to publish official Docker images for Sensu’s components, as well as guidelines for deploying Sensu in a containerized environment.
Upgrade to Sensu 1.0
I am ecstatic about the Sensu Core 1.0 release and the coming features, and I hope you are too! Although Sensu Core version 1.0 is ready to go, we are actively testing Sensu plugins to ensure they work with the release (you can help too!). Please be sure to give the Sensu Core CHANGELOG a close look before upgrading. Users on a release prior to 0.27 must give the 0.27 release notes a close inspection, as the 0.27 release introduced changes to the Sensu repositories, packages, and the means of service management (e.g. systemd). Support is here should you run into any problems along the way.
And Thank You!
Sensu would not be what it is today without our incredible community. Thanks to past maintainers like Matt Jones and Tim Smith along with newer contributors (looking at you Luis Davim, Mike Eves and Steven Bambling). A very special thank you to Eric Heydrick for his long commitment as a maintainer to Sensu plugins and also to Ben Abrams for all his work as our latest maintainer. We are thankful for all of your contributions and to the many others who have contributed over the years ❤️.