- Add instrumentation around block in Appsignal middleware
- [Breaking] Adjust Appsignal middleware to use
Appsignal.monitor
.
To use the middleware theappsignal
gem in version>= 3.11.0
is required.
The configuration of the middleware changed and now only requires one optionclass_name
and an optionalnamespace
.
- Allow adding multiple routing keys to the consumer configuration, configure method within consumer will only accept
routing_keys
array instead ofrouting_key
string
- add new interface to setup consumers including their exchange, queue and binding the queue to the exchange via routing key via
Ears.setup_consumers
andconfigure(queue:, exchange:,routing_key:, ...)
for Ears::Consumers subclasses
- Add documentation generation via yard
- Bugfix: trapped signals INT and TERM now calls correctly previous set signal handler
- [Breaking]: Provide the Bunny connection option
recovery_attempts
in Ears configuration. It comes with a default of 10 attempts. When the number of recovery attempts are exhausted, Ears will raise aMaxRecoveryAttemptsExhaustedError
.
- Reset channel on Ears.stop!
- Add Ears.stop! method to be able to close the connection and remove consumers.
- Update gem ownership information
- Remove Rubygems MFA requirement to prepare automatic releases
- Fix bug where queue arguments were ignored with error_queue option
- Add option to configure recover_from_connection_close
- default JSON middleware error handler to reject
- do not rescue errors outside the scope of the error handler in JSON middleware
- JSON middleware now requires an
on_error
callback in the options
- change retry middleware to gracefully handle messages that do not have a header in their metadata
- explicitly report Appsignal errors in middleware to make it more reliable
- add options to create retry and error queues
- add
connection_name
to configuration and make it a mandatory setting - validate configuration after calling
configure
- fix the fact that the configuration was never used and bunny silently fell back to the
RABBITMQ_URL
env var
- Ears will not exit gracefully on unhandled errors anymore. You have to take care of proper flushing and cleanup yourself (see README for example).
- Ears will now exit gracefully on unhandled errors to give the application a chance to do flushing and cleanup work
- added YARD documentation and usage instructions to README
- introduced
Ears::Middleware
as an abstract base class for middlewares
- internally, user-defined
Ears::Consumer
instances are now wrapped byEars::ConsumerWrapper
to make the user-defined class smaller and easier to test
Ears::Middlewares::JSON
now symbolizes the keys by default
- you can now configure
Ears::Middlewares::JSON
withuse Ears::Middlewares::JSON, symbolize_keys: false
- you can now call
Ears.configure
to set a custom RabbitMQ URL to connect to
- a middleware class is not instantiated with options when passed to
use
- middlewares can now accept options
- added an Appsignal middleware to monitor consumers
Initial release.