Jul 02, 2024
Support Hanami 2.1, improve GVL metrics, and more
Ruby3.9.3
Added
- Track error response status for web requests. When an unhandled exception reaches the AppSignal EventHandler instrumentation, report the response status as
500
for theresponse_status
tag on the transaction and on theresponse_status
metric.
Changed
- Require the AppSignal gem in the Grape integration file. Previously
require "appsignal"
had to be called beforerequire "appsignal/integrations/grape"
. Thisrequire "appsignal"
is no longer required. - Report Global VM Lock metrics per process. In addition to the existing
hostname
tag, addprocess_name
andprocess_id
tags to thegvl_global_timer
andgvl_waiting_threads
metrics emitted by the GVL probe, allowing these metrics to be tracked in a per-process basis.
Deprecated
-
Deprecate
Appsignal::Grape::Middleware
constant in favor ofAppsignal::Rack::GrapeMiddleware
constant.To fix this deprecation warning, update the usage of
Appsignal::Grape::Middleware
like this:Ruby# Grape only apps insert_before Grape::Middleware::Error, Appsignal::Rack::GrapeMiddleware # or use Appsignal::Rack::GrapeMiddleware # Grape on Rails app use Appsignal::Rack::GrapeMiddleware
-
Deprecate the
Appsignal.start_logger
method. Remove this method call from apps if it is present. CallingAppsignal.start
will now initialize the logger.
Fixed
- Fix an issue with invalid request methods raising an error in the GenericInstrumentation middleware when using a request class that throws an error when calling the
request_method
method, likeActionDispatch::Request
. - Support Grape apps that are nested in other apps like Sinatra and Rails, that also include AppSignal middleware for instrumentation.
- Support Hanami version 2.1. On older versions of our Ruby gem it would error on an unknown keyword argument "sessions_enabled".
- Fix issue with AppSignal getting stuck in a boot loop when loading the Hanami integration with:
require "appsignal/integrations/hanami"
This could happen in nested applications, like a Hanami app in a Rails app. It will now use the first config AppSignal starts with.
View the Ruby gem v3.9.3 changelog for more information.