Tags: appsignal/appsignal-ruby
Tags
## Added - Add Sorbet and RBS type signatures for the gem's public APIs. If your editor supports showing type signatures, they will now show up in for the AppSignal Ruby gem. - When a deployment tool (Capistrano, Hatchbox.io) provides the `REVISION` file in the deployed application, AppSignal will now use that to set the revision config. ## Changed - Improve the YARD documentation for public APIs. This will make the documentation clearer and more useful for developers using the Ruby gem. Private APIs have been hidden from the generated output. - When an error occurs while initializing AppSignal or when running a probe, use the error log level to log the error's backtrace. ## Fixed - When a Hash-like value (such as `ActiveSupport::HashWithIndifferentAccess` or `Sinatra::IndifferentHash`) is passed to a transaction helper (such as `add_params`, `add_session_data`, ...) it is now converted to a Ruby `Hash` before setting it as the value or merging it with the existing value. This allows Hash-like objects to be merged, instead of logging a warning and only storing the new value. ```ruby # Example scenario Appsignal.add_params(:key1 => { :abc => "value" }) Appsignal.add_params(ActiveSupport::HashWithIndifferentAccess.new(:key2 => { :def => "value" })) # Params { :key1 => { :abc => "value" }, # Keys from HashWithIndifferentAccess are stored as Strings "key2" => { "def" => "value" } } ```
## Fixed - When an `Appsignal::Logger` uses `.broadcast_to` to broadcast messages to other loggers, broadcast those messages even if the log level of those messages is lower than the logger's threshold. This allows other loggers to set their own logging thresholds. When the logger is silenced, messages below the silencing threshold are *not* broadcasted to other loggers. - When an `Appsignal::Logger` uses `.broadcast_to` to broadcast messages to other loggers, broadcast the original message received by the logger, without formatting it or converting it to a string. - Call the `Appsignal::Logger` formatter with the original message object given, rather than converting it to a string before calling the formatter. - When an error is passed to an `Appsignal::Logger` as the message, format it regardless of the logging level. Previously it would only be formatted when passed to `#error`. - Ignore `Errno::ECONNRESET` errors in the Rack wrapper.
## Added - Add `nginx_port` configuration option. This configuration option can be used to customize the port on which the AppSignal integration exposes [the NGINX metrics server](https://docs.appsignal.com/metrics/nginx.html).
## Fixed - Resolve problems with transactions not being properly closed when using libraries that change Fibers during the transactions. Previously, completed transactions would be attempted to be reused when creating a transaction, when the Fiber would be switched during a transaction. - Fix a config error log message when the config is not active and should not validate the config.
PreviousNext