Skip to content

Latest commit

 

History

History
513 lines (471 loc) · 23.8 KB

CHANGELOG.md

File metadata and controls

513 lines (471 loc) · 23.8 KB

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog and this project adheres to Semantic Versioning.

Unreleased

Added

  • Performed an audit of events and checks. Added event.HasCheck() nil checks prior to assuming the existence of said check.
  • Added a Create method to the entities api.
  • Added the ability to set round robin scheduling in sensuctl
  • Added Output field to GRPC handlers
  • Additional logging around handlers
  • Accept additional time formats in sensuctl
  • Entities can now be created via sensuctl.
  • Added the format wrapped-json to sensuctl configure, list and info commands, which is compatible with sensuctl create.
  • Added debug event log with all event data.
  • Added yml.example configurations for staging backend and agents.
  • Added test resources in testing/config/resources.json to be used in staging.
  • Added all missing configuration options to agent.yml.example and backend.yml.example.
  • Added environment variables to checks.
  • Added logging redaction integration test.
  • Added check token substitution integration test.
  • Added the sensuctl config view subcommand.
  • Added extension service configuration to staging resources.
  • Added some documentation around extensions.

Changed

  • Add logging around the Sensu event pipeline.
  • Split out the docker commands in build script so that building images and pushing can be done separately.
  • Migrated the InfluxDB handler from the sensu-go repository to github.com/nikkiki/sensu-influxdb-handler
  • Entry point for sensu-backend has been changed to github.com/sensu/sensu-go/cmd/sensu-backend
  • Don't allow unknown fields in types that do not support custom attributes when creating resources with sensuctl create.
  • Provided additional context to metric event logs.
  • Updated goversion in the appveyor configuration for minor releases.
  • Use a default hostname if one cannot be retrieved.
  • Return an error from sensuctl configure when the configured organization or environment does not exist.
  • Remove an unnecessary parameter from sensuctl environment create.
  • The profile environment & organization values are used by default when creating a resource with sensuctl.

Fixed

  • Prevent panic when verifying if a metric event is silenced.
  • Add logging around the Sensu event pipeline
  • Marked silenced and hooks fields in event as deprecated
  • Fixed a bug where hooks could not be created with create -f
  • Metrics with zero-values are now displayed correctly
  • Fix handler validation routine
  • Fixed a small bug in the opentsdb transformer so that it trims trailing whitespace characters.
  • Sensu-agent logs an error if the statsd listener is unable to start due to an invalid address or is stopped due to any other error.
  • Fixed a bug where --organization and --environment flags were hidden for all commands
  • Fix a bug where environments could not be created with sensuctl create
  • StatsD listener on Windows is functional
  • Add version output for dev and nightly builds (#1320).
  • Improve git version detection by directly querying for the most recent tag.
  • Fixed sensuctl create -f for Role
  • Fixed sensuctl create -f for Event
  • Added validation for asset SHA512 checksum, requiring that it be at least 128 characters and therefore fixing a bug in sensuctl
  • Silenced IDs are now generated when not set in create -f resources
  • API requests that result in a 404 response are now logged
  • Fixed a bug where only a single resource could be created with sensuctl create at a time.
  • Fixed a bug where environments couldn't be deleted if there was an asset in the organization they reside in.
  • Dashboard's backend reverse proxy now works with TLS certs are configured.
  • Fixed a bug with the IN operator in query statements.
  • Boolean fields with a value of false now appear in json format (removed omitempty from protobufs).
  • The sensuctl create command no longer prints a spurious warning when non-default organizations or environments are configured.
  • When installing assets, errors no longer cause file descriptors to leak, or lockfiles to not be cleaned up.
  • Fixed a bug where the CLI default for round robin checks was not appearing.
  • Missing custom attributes in govaluate expressions no longer result in an error being logged. Instead, a debug message is logged.
  • Update AppVeyor API token to enable GitHub deployments.
  • Allow creation of metric events via backend API.
  • Fixed a bug where in some circumstances checks created with sensuctl create would never fail.
  • Fixed a goroutine leak in the ring.

Removed

  • Removed Linux/386 & Windows/386 e2e jobs on Travis CI & AppVeyor
  • Removed check output metric extraction e2e test, in favor of more detailed integration coverage.
  • Removed the leader package
  • Removed logging redaction e2e test, in favor of integration coverage.
  • Removed check token substitution e2e test, in favor of integration coverage.
  • Removed round robin scheduling e2e test.
  • Removed proxy check e2e test.
  • Removed check scheduling e2e test.
  • Removed keepalive e2e test.
  • Removed event handler e2e test.
  • Removed sensuctl create e2e tests.
  • Removed hooks e2e test.
  • Removed assets e2e test.
  • Removed agent reconnection e2e test.
  • Removed extensions e2e test.

[2.0.0-beta.1] - 2018-05-07

Added

  • Add Ubuntu 18.04 repository
  • Support for managing mutators via sensuctl.
  • Added ability to sort events in web UI.
  • Add PUT support to APId for the various resource types.
  • Added flags to disable the agent's API and Socket listeners
  • Made Changelog examples in CONTRIBUTING.md more obvious
  • Added cli support for setting environment variables in mutators and handlers.
  • Added gRPC extension service definition.
  • The slack handler now uses the iconURL & username flag parameters.
  • Support for nightlies in build/packaging tooling.
  • Added extension registry support to apid.
  • Added extension registry to the store.
  • Add sensuctl create command.
  • Adds a statsd server to the sensu-agent which runs statsd at a configurable flush interval and converts gostatsd metrics to Sensu Metric Format.
  • Add event filtering to extensions.
  • Proper 404 page for web UI.
  • Add sensuctl extension command.
  • Add extensions to pipelined.
  • Added more tests surrounding the sensu-agent's statsd server and udp port.
  • Add the --statsd-event-handlers flag to sensu-agent which configures the event handlers for statsd metrics.
  • Add default user with username "sensu" with global, read-only permissions.
  • Add end-to-end test for extensions.
  • Add configuration setting for backend and agent log level.
  • Add extension package for building third-party Sensu extensions in Go.
  • Add the --statsd-disable flag to sensu-agent which configures the statsd listener. The listener is enabled by default.
  • Added an influx-db handler for events containing metrics.
  • Add 'remove-when' and 'set-when' subcommands to sensuctl filter command.
  • Added the Transformer interface.
  • Added a Graphite Plain Text transformer.
  • Add support for metric_format and metric_handlers fields in the Check and CheckConfig structs.
  • Add CLI support for metric_format and metric_handlers fields in sensuctl.
  • Add support for metric extraction from check output for graphite_plaintext transformer.
  • Added a OpenTSDB transformer.
  • Add support for metric extraction from check output for opentsdb_line
  • Added a Nagios performance data transformer.
  • Add support for metric extraction from check output for nagios_perfdata
  • Added an InfluxDB Line transformer.
  • Add support for metric extraction from check output for influxdb_line transformer.
  • Add e2e test for metric extraction.

Changed

  • Changed the maximum number of open file descriptors on a system to from 1024 (default) to 65535.
  • Increased the default etcd size limit from 2GB to 4GB.
  • Move Hooks and Silenced out of Event and into Check.
  • Handle round-robin scheduling in wizardbus.
  • Added informational logging for failed entity keepalives.
  • Replaced fileb0x with vfsgen for bundling static assets into binary. Nodejs 8+ and yarn are now dependencies for building the backend.
  • Updated etcd to 3.3.2 from 3.3.1 to fix an issue with autocompaction settings.
  • Updated and corrected logging style for variable fields.
  • Build protobufs with go generate.
  • Creating roles via sensuctl now supports passing flags for setting permissions rules.
  • Removed -c (check) flag in sensuctl check execute command.
  • Fix a deadlock in the monitor.
  • Don't allow the bus to drop messages.
  • Events list can properly be viewed on mobile.
  • Updated Sirupsen/logrus to sirupsen/logrus and other applicable dependencies using the former.
  • Set default log level to 'warn'.
  • Optimize check marshaling.
  • Silenced API only accepts 'id' parameter on DELETE requests.
  • Disable gostatsd internal metric collection.
  • Improved log entries produced by pipelined.
  • Allow the InfluxDB handler to parse the Sensu metric for an InfluxDB field tag and measurement.
  • Removed organization and environment flags from create command.
  • Changed metric_format to output_metric_format.
  • Changed metric_handlers to output_metric_handlers.

Fixed

  • Terminate processes gracefully in e2e tests, allowing ports to be reused.
  • Shut down sessions properly when agent connections are disrupted.
  • Fixed shutdown log message in backend
  • Stopped double-writing events in eventd
  • Agents from different orgs/envs with the same ID connected to the same backend no longer overwrite each other's messagebus subscriptions.
  • Fix the manual packaging process.
  • Properly log the event being handled in pipelined
  • The http_check.sh example script now hides its output
  • Silenced entries using an asterisk can be deleted
  • Improve json unmarshaling performance.
  • Events created from the metrics passed to the statsd listener are no longer swallowed. The events are sent through the pipeline.
  • Fixed a bug where the Issued field was never populated.
  • When creating a new statsd server, use the default flush interval if given 0.
  • Fixed a bug where check and checkconfig handlers and subscriptions are null in rendered JSON.
  • Allow checks and hooks to escape zombie processes that have timed out.
  • Install all dependencies with dep ensure in build.sh.
  • Fixed an issue in which some agents intermittently miss check requests.
  • Agent statsd daemon listens on IPv4 for Windows.
  • Include zero-valued integers in JSON output for all types.
  • Check event entities now have a last_seen timestamp.
  • Improved silenced entry display and UX.
  • Fixed a small bug in the opentsdb transformer so that it trims trailing whitespace characters.

[2.0.0-nightly.1] - 2018-03-07

Added

  • A --debug flag on sensu-backend for enabling a pprof HTTP endpoint on localhost.
  • Add CLI support for adhoc check requests.
  • Check scheduler now handles adhoc check requests.
  • Added set-FIELD and remove-FIELD commands for all updatable fields of a check. This allows updating single fields and completely clearing out non-required fields.
  • Add built-in only_check_output mutator to pipelined.
  • Allow publish, cron, ttl, timeout, low flap threshold and more fields to be set when importing legacy settings.
  • Add CPU architecture in system information of entities.
  • The sensuctl user change-password subcommand now accepts flag parameters.
  • Configured and enabled etcd autocompaction.
  • Add event metrics type, implementing the Sensu Metrics Format.
  • Agents now try to reconnect to the backend if the connection is lost.
  • Added non-functional selections for resolving and silencing to web ui
  • Add LastOk to check type. This will be updated to reflect the last timestamp of a successful check.
  • Added GraphQL explorer to web UI.
  • Added check occurrences and occurrences_watermark attributes from Sensu 1.x.
  • Added issue template for GitHub.
  • Added custom functions to evaluate a unix timestamp in govaluate.

Changed

  • Refactor Check data structure to not depend on CheckConfig. This is a breaking change that will cause existing Sensu alpha installations to break if upgraded. This change was made before beta release so that further breaking changes could be avoided.
  • Make indentation in protocol buffers files consistent.
  • Refactor Hook data structure. This is similar to what was done to Check, except that HookConfig is now embedded in Hook.
  • Refactor CheckExecutor and AdhocRequestExecutor into an Executor interface.
  • Changed the sensu-backend etcd flag constants to match the etcd flag names.
  • Upgraded to Etcd v3.3.1
  • Removed 3DES from the list of allowed ciphers in the backend and agent.
  • Password input fields are now aligned in sensuctl user change-password subcommand.
  • Agent backend URLs without a port specified will now default to port 8081.
  • Travis encrypted variables have been updated to work with travis-ci.org
  • Upgraded all builds to use Go 1.10.
  • Use megacheck instead of errcheck.
  • Cleaned agent configuration.
  • We no longer duplicate hook execution for types that fall into both an exit code and severity (ex. 0, ok).
  • Updated the sensuctl guidelines.
  • Changed travis badge to use travis-ci.org in README.md.
  • Govaluate's modifier tokens can now be optionally forbidden.
  • Increase the stack size on Travis CI.
  • Refactor store, queue and ring interfaces, and daemon I/O details.
  • Separated global from local flags in sensuctl usage.

Fixed

  • Fixed a bug in time.InWindow that in some cases would cause subdued checks to be executed.
  • Fixed a bug in the HTTP API where resource names could not contain special characters.
  • Resolved a bug in the keepalive monitor timer which was causing it to erroneously expire.
  • Resolved a bug in how an executor processes checks. If a check contains proxy requests, the check should not duplicately execute after the proxy requests.
  • Removed an erroneous validation statement in check handler.
  • Fixed HookList hooks validation and updated type validation message to allow "0" as a valid type.
  • Events' check statuses & execution times are now properly added to CheckHistory.
  • Sensu v1 Check's with TTL, timeout and threshold values can now be imported correctly.
  • Use uint32 for status so it's not empty when marshalling.
  • Automatically create a "default" environment when creating a new organization.

[2.0.0-alpha.17] - 2018-02-13

Added

  • Add .gitattributes file with merge strategy for the Changelog.
  • Context switcher added for dashboard.
  • Add API support for adhoc check requests.
  • Check scheduler now supports round-robin scheduling.
  • Added better error checking for CLI commands and support for mutually exclusive fields.
  • Added --interactive flag to CLI which is required to run interactive mode.
  • Added CLI role rule-add Organization and Environment interactive prompts.
  • Added events page list and simple buttons to filter

Changed

  • Silenced begin supports human readable time (Format: Jan 02 2006 3:04PM MST) in sensuctl with optional timezone. Stores the field as unix epoch time.
  • Increased the timeout in the store's watchers tests.
  • Incremental retry mechanism when waiting for agent and backend in e2e tests.
  • Renamed CLI asset create interactive prompt "Org" to "Organization".

Fixed

  • Fixed required flags in sensuctl so requirements are enforced.
  • Add support for embedded fields to dynamic.Marshal.

[2.0.0-alpha.16] - 2018-02-07

Added

  • Add an e2e test for proxy check requests.
  • Add integration tests to our CI.
  • Context switcher added for dashboard
  • Add api support for adhoc check requests.

Fixed

  • Tracks in-progress checks with a map and mutex rather than an array to increase time efficiency and synchronize goroutines reading from and writing to that map.
  • Fixed a bug where we were attempting to kill processes that had already finished before its allotted execution timeout.
  • Fixed a bug where an event could erroneously be shown as silenced.
  • Properly log errors whenever a check request can't be published.
  • Fixed some build tags for tests using etcd stores.
  • Keepalive monitors now get updated with changes to a keepalive timeout.
  • Prevent tests timeout in queue package
  • Prevent tests timeout in ring package
  • Fixed a bug in the queue package where timestamps were not parsed correctly.
  • Fixed Ring's Next method hanging in cases where watch events are not propagated.

Changed

  • Queues are now durable.
  • Refactoring of the check scheduling integration tests.
  • CLI resource delete confirmation is now (y/N).

Removed

  • Dependency github.com/chzyer/readline

[2.0.0-alpha.15] - 2018-01-30

Added

  • Add function for matching entities to a proxy check request.
  • Added functions for publishing proxy check requests.
  • Added proxy request validation.
  • CLI functionality for proxy check requests (add set-proxy-requests command).
  • Entities have been added to the state manager and synchronizer.
  • Added package leader, for facilitating execution by a single backend.
  • Proxy check requests are now published to all entities described in ProxyRequests and EntityAttributes.
  • Add quick navigation component for dashboard

Changed

  • Govaluate logic is now wrapped in the util/eval package.
  • Cron and Interval scheduling are now mutually exclusive.

Fixed

  • Fixed a bug where retrieving check hooks were only from the check's organization, rather than the check's environment, too.

[2.0.0-alpha.14] - 2018-01-23

Added

  • Add Timeout field to CheckConfig.
  • CLI functionality for check Timeout field.
  • Add timeout support for check execution.
  • Add timeout support for check hook execution.
  • Token substitution is now available for check hooks
  • Add an e2e test for logging redaction
  • Support for When field in Filter which enables filtering based on days and times of the week.
  • New gRPC inspired GraphQL implementation. See graphql/README for usage.
  • Support for TTLs in check configs to monitor stale check results.

Changed

  • Moved monitor code out of keepalived and into its own package.
  • Moved KeyBuilder from etcd package to store package.

[2.0.0-alpha.13] - 2018-01-16

Added

  • Logging redaction for entities

Changed

  • Removed the Visual Studio 2017 image in AppVeyor to prevent random failures

Fixed

  • Fixed e2e test for token substitution on Windows
  • Fixed check subdue unit test for token substitution on Windows
  • Consider the first and last seconds of a time window when comparing the current time
  • Fixed Travis deploy stage by removing caching for $GOPATH
  • Parse for traditional cron strings, rather than GoDoc cron strings.

Changed

  • Removed the Visual Studio 2017 image in AppVeyor to prevent random failures
  • Made some slight quality-of-life adjustments to build-gcs-release.sh.

Fixed

  • Fixed e2e test for token substitution on Windows
  • Fixed check subdue unit test for token substitution on Windows
  • Consider the first and last seconds of a time window when comparing the current time
  • Fixed Travis deploy stage by removing caching for $GOPATH
  • Parse for traditional cron strings, rather than GoDoc cron strings.

[2.0.0-alpha.12] - 2018-01-09

Added

  • Add check subdue mechanism. Checks can now be subdued for specified time windows.
  • Silenced entries now include a begin timestamp for scheduled maintenance.
  • Store clients can now use watchers to be notified of changes to objects in the store.
  • Add check Cron field. Checks can now be scheduled according to the cron string stored in this field.
  • Add a distributed queue package for use in the backend.
  • Token substitution is now available for checks.
  • CLI functionality for check Cron field.
  • Add an e2e test for cron scheduling.
  • Add an e2e test for check hook execution.

[2.0.0-alpha.11] - 2017-12-19

Breaking Changes

  • The Source field on a check has been renamed to ProxyEntityID. Any checks using the Source field will have to be recreated.

Added

  • Silenced entries with ExpireOnResolve set to true will now be deleted when an event which has previously failing was resolved
  • TCP/UDP sockets now accept 1.x backward compatible payloads. 1.x Check Result gets translated to a 2.x Event.
  • Custom attributes can be added to the agent at start.
  • New and improved Check Hooks are implemented (see whats new about hooks here: Hooks)
  • Add check subdue CLI support.

Changed

  • Avoid using reflection in time.InWindows function.
  • Use multiple parallel jobs in CI tools to speed up the tests
  • Pulled in latest github.com/coreos/etcd.
  • Includes fix for panic that occurred on shutdown.
  • Refer to their changelog for more.
  • Switch to using github.com/golang/dep for managing dependencies; vendor/ directory has been removed.
  • See README for usage.

[2.0.0-alpha.10] - 2017-12-12

Added

  • End-to-end test for the silencing functionality
  • Silenced events are now identified in sensuctl

Changed

  • Events that transitioned from incidents to a healthy state are no longer filtered by the pipeline
  • Errcheck was added to the build script, and the project was given a once-over to clean up existing errcheck lint.
  • Creating a silenced entry via sensuctl no longer requires an expiry value

Fixed

  • Entities can now be silenced using their entity subscription
  • Fixed a bug in the agent where it was ignoring keepalive interval and timeout settings on start
  • Keepalives now alert when entities go away!
  • Fixed a bug in package dynamic that could lead to an error in json.Marshal in certain cases.
  • Fixed an issue in keepalived to handle cases of nil entities in keepalive messages

[2.0.0-alpha.9] - 2017-12-5

Added

  • Proxy entities are now dynamically created through the "Source" attribute of a check configuration
  • Flag to sensuctl configure allowing it to be configured non-interactively (usage: --non-interactive or -n)
  • New function SetField in package dynamic, for setting fields on types supporting extended attributes.
  • Automatically append entity:entityID subscription for agent entities
  • Add silenced command to sensuctl for silencing checks and subscriptions.
  • Add healthz endpoint to agent api for checking agent liveness.
  • Add ability to pass JSON event data to check command STDIN.
  • Add POST /events endpoint to manually create, update, and resolve events.
  • Add "event resolve" command to sensuctl to manually resolve events.
  • Add the time.InWindow & time.InWindows functions to support time windows, used in filters and check subdue

Fixed

  • Fixed a bug in how silenced entries were deleted. Only one silenced entry will be deleted at a time, regardless of wildcard presence for subscription or check.

[2.0.0-alpha.8] - 2017-11-28

Added

  • New "event delete" subcommand in sensuctl
  • The "Store" interface is now properly documented
  • The incoming request body size is now limited to 512 KB
  • Silenced entries in the store now have a TTL so they automatically expire
  • Initial support for custom attributes in various Sensu objects
  • Add "Error" type for capturing pipeline errors
  • Add registration events for new agents
  • Add a migration tool for the store directly within sensu-backend

Changed

  • Refactoring of the sensu-backend API
  • Modified the description for the API URL when configuring sensuctl
  • A docker image with the master tag is built for every commit on master branch
  • The "latest" docker tag is only pushed once a new release is created

Fixed

  • Fix the "asset update" subcommand in sensuctl
  • Fix Go linting in build script
  • Fix querying across organizations and environments with sensuctl
  • Set a standard redirect policy to sensuctl HTTP client

Removed

  • Removed extraneous GetEnv & GetOrg getter methods