Added
-
Add support for Grape 4. On Grape 4, every request through a Grape API raised a
NoMethodError. Applications on Grape 3 and below were not affected.On Grape 4, the action name and the reported path now describe the endpoint's full route, so they include the API prefix, the path version and the mount point. They also no longer end in a trailing slash when the endpoint declares no path of its own, so an endpoint reported as
GET::My::Api#/users/:id/is now reported asGET::My::Api#/users/:id. Action names on Grape 3 and below do not change.
Changed
- Update the agent to handle high traffic apps. On high-traffic apps that would exceed the maximum accepted internal payload size, send data to the Push API more frequently.
Fixed
-
Load the host Rails application before the
appsignal democommand reads the AppSignal configuration. This matches the behavior ofappsignal diagnose.Thanks @Guflly for your contribution!
-
Fix events showing as unknown in long-running applications. An application process that kept running for thirty days without restarting could lose the names and queries of the events it recorded, both in slow traces and in the "Slow events" panel.
-
Prevent
gcevents from appearing in the "Slow events" panel. -
Report Delayed Job jobs that fail to load. Before this change, a job whose payload could not be deserialized was not reported to AppSignal at all.
This can happen when a deploy removes or renames a job class while jobs of that class are still queued. Those jobs are now reported as failed, with the
Delayed::DeserializationErrorthey raised, and are named after the class recorded in the job's handler. When even that cannot be read, they are namedDelayedJobInternal. -
Record a single event for a bulk enqueue of Active Job jobs. Before this change, enqueuing jobs with
ActiveJob.perform_all_laterwould record an event for the batch and, if the adapter was instrumented with AppSignal, another event for each job in it. A job that slices a large collection and enqueues it in batches was therefore reported with an event per job enqueued, where before version 4.9.0 it had one event per batch.A bulk enqueue is now recorded as a single
enqueue_all.active_jobevent, named after the job class when every job in the batch shares one.
View the Ruby gem v4.10.2 changelog for more information.