We're very happy to present you with version 3.0 of AppSignal for Ruby - a new major release for the Ruby gem. 🎉
We have changed the way we instrument apps and gems to provide better compatibility with other instrumentation gems. Support for Ruby version 1.9 has been removed and deprecated classes, modules, methods, and instrumentations have also been removed.
In the rest of the post, we'll explain what the new version of our gem brings to you and your apps. Let's go!
Removed Ruby 1.9 Support
Ruby 1.9 has been End of Life since 23th of February 2015, and while the AppSignal Ruby gem has done its best to keep supporting it, the time has come to say farewell.
In this release, we have changed how we instrument apps and gems. This instrumentation method was introduced in Ruby 2.0, which means starting this release Ruby 2.0 or newer is required for apps using the AppSignal gem. Please upgrade your apps to a newer Ruby version, if possible.
Sidekiq Error Reporting
Sidekiq error reporting is more complete. We have included a Sidekiq error handler that reports errors not only from jobs run by Sidekiq, but also errors occurring in Sidekiq itself. For example, when Sidekiq reads a job JSON from Redis and it is corrupted, it will report an error for that error. This way you know why that job couldn't be executed.
Compatibility with Other Instrumentation Libraries
In the 3.x series the AppSignal for Ruby gem changed the internal method used to instrument apps and other gems. This should improve compatibility with other gems using the same instrumentation method. The previous instrumentation method is incompatible with the newer method and would cause an apps to be caught in a loop, causing an SystemStackError
.
The Ruby ecosystem seems to be moving towards this new instrumentation method so the AppSignal gem has updated its instrumentation method to be more compatible with other gems.
If an app starts encountering this issue after upgrading, upgrade any other APM and error reporting gems in the app. Newer versions may have also been updated to instrument using the new instrumentation method as well. If the issue persists, please contact us.
For more technical information and background of this change, see our upgrade guide about compatibility with other gems.
Removed Previously Deprecated Features
Throughout the 2.x series releases of the Ruby gem we have changed some things around in the gem's code base. We always made sure the old methods still worked through fallbacks to make sure nothing broke between upgrades. Whenever something changed the Ruby gem prints and logs warnings with steps to take to resolve the warning.
In this major release we have removed these fallbacks to improve the maintainability of the Ruby gem. This means some things may break with this release. Please see the upgrade guide for the best way to upgrade so the AppSignal Ruby gem can warn you in advance about the changes you need to make before upgrading to version 3.0 of our Ruby gem.
Some things that apps using AppSignal for Ruby may be using that have been removed:
- Removed JavaScript integration, we have removed our built-in JavaScript integration that routed traffic through the app to report errors. We recommend you use our dedicated AppSignal for Front-end JavaScript integration. See our upgrade guide for the JavaScript integration details.
- Removed
appsignal notify_of_deploy
command. Instead we recommend using therevision
config option to report deploys more accurately. See our upgrade guide for the removednotify_of_deploy
command.
Changes in the 2.x Series
This Ruby gem 3.0 release is built on a lot of smaller releases in the 2.x series. Some notable changes that are also included in this release are:
- Support for Ruby 3.0 (the language itself 😉)
- Breadcrumb support, tracks user actions through the app. See what steps a user took to raise the error.
- ActionMailer magic dashboard, visualize mail deliveries from your app.
- More accurate Sidekiq error and performance reporting including other Sidekiq middleware.
- Improved ActiveSupport::Notifications support, Shoryuken batch support, and other small fixes.
How to Upgrade to AppSignal for Ruby Gem 3.0
To help with upgrading this major release we have written an upgrade guide you can follow in our docs. Feel free to let us know if you run into any problems. In this guide, we have described the steps needed to upgrade the Ruby gem, things to watch out for, and a comprehensive list of changes that may affect your apps.
Check Out AppSignal - an APM with Stroopwafels 🍪
If you haven't tried AppSignal for monitoring your Ruby/Rails apps yet, take five minutes and check it out. There is a 30 day trial, with no credit card required.
As we're a Dutch company, we also ship stroopwafels (crazy good Dutch cookies) worldwide to our users. All you need to do to get your box is reach out to our support 📧➡️😋