Disable `ActiveSupport::EventReporter` logs
Changed
- Disable the
enable_active_support_event_log_reporterconfiguration option by default.
View the Ruby gem v4.8.1 changelog for more information.
enable_active_support_event_log_reporter configuration option by default.View the Ruby gem v4.8.1 changelog for more information.
ActiveSupport::EventReporter) as logs.View the Ruby gem v4.8.0 changelog for more information.
config/application.rb or one of the environments in config/environments/.ActionController::BadRequest occurred and the error message contained the entire file upload, this would grow the appsignal.log file quickly if the error happens often. Internal log messages are now truncated by default.View the Ruby gem v4.7.5 changelog for more information.
Handle transactions without errors in CodeOwnership integration. AppSignal will not emit an error log line if a transaction has no error.
Thanks @fatkodima for your contribution!
View the Ruby gem v4.7.4 changelog for more information.
Detect the log format automatically. We now detect if a log line is in the JSON, Logfmt or plaintext formats. No further config needed when calling our logger, like so:
logger = Appsignal::Logger.new("gruop") logger.info("message")
Handle unowned files in CodeOwnership gem integration. AppSignal will not emit an error log line if no Team can be found for a backtrace.
Thanks @fatkodima for your contribution!
View the Ruby gem v4.7.3 changelog for more information.
View the Ruby gem v4.7.2 changelog for more information.
Add support for the CodeOwnership gem, which allows engineering teams to declare ownership of specific parts of a codebase.
When an error is reported, the AppSignal gem will tag the transaction with the owner of the file that caused the error.
This feature is enabled by default. To disable it, set the instrument_code_ownership configuration option to false.
Rack::Events when using recent Rack versions. When using versions 3.2.1 and above,
which contain a fix for the bug where using Rack::Events breaks requests with streaming bodies,
use Rack::Events directly, instead of our patched subclass.Fix Rails version detection when only one of Rails's gems is present.
This prevents loading errors when non-Rails code defines a Rails constant without the full Rails framework.
View the Ruby gem v4.7.1 changelog for more information.
worker_job_count. This new counter metric's status tag will be processed for each job that's processed and reports another counter with the failure status if the job encountered an error.Support streaming bodies. AppSignal's Rack instrumentation now supports streaming bodies in responses, such as those produced by Async::Cable. This fixes an issue where AppSignal's Rack instrumentation would cause requests with streaming bodies to crash.
If you use our Rack instrumentation through a framework that is automatically instrumented by AppSignal, such as Rails, Hanami, Padrino or Sinatra, this fix is applied automatically.
If your application instruments Rack manually, you must remove the following line from your application's initial setup:
use Rack::Events, [Appsignal::Rack::EventHandler.new]
And replace it with the following line:
use Appsignal::Rack::EventMiddleware
Avoid instrumenting Rails when AppSignal is not active. If AppSignal is configured to start when the Rails application loads, rather than after it has initialised, only add Rails' instrumentation middlewares if AppSignal was actually started.
View the Ruby gem v4.7.0 changelog for more information.
REVISION file in the deployed application, AppSignal will now use that to set the revision config.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.
# 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" } }
View the Ruby gem v4.6.0 changelog for more information.
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.
View the Ruby gem v4.5.17 changelog for more information.
View the Ruby gem v4.5.16 changelog for more information.
nginx_port configuration option. This configuration option can be used to customize the port on which the AppSignal integration exposes the NGINX metrics server.View the Ruby gem v4.5.15 changelog for more information.
View the Ruby gem v4.5.14 changelog for more information.
active_job_queue_time metric. This metric can be used to track the queue time per Active Job queue.View the Ruby gem v4.5.12 changelog for more information.
View the Ruby gem v4.5.13 changelog for more information.
ignore_errors config option.View the Ruby gem v4.5.11 changelog for more information.
View the Ruby gem v4.5.10 changelog for more information.
Rack::EventHandler. A problem with Fibers changing during a request would cause transactions transactions to be left open and the data from requests to not be sent to our servers.View the Ruby gem v4.5.9 changelog for more information.
Add the enable_at_exit_hook option to configure if Appsignal.stop is called when the Ruby application exits. Calling Appsignal.stop will stop the application for a moment to flush all the data to our agent before shutting down.
This option has three possible values:
always: Always call Appsignal.stop when the program exits. On (Docker) containers it's automatically set to this value.never: Never call Appsignal.stop when the program exits. The default value when the program doesn't run on a (Docker) container.on_error: Call Appsignal.stop when the program exits with an error.Deprecate the Appsignal.monitor_and_stop helper.
We instead recommend using the Appsignal.monitor helper and configuring the enable_at_exit_hook config option to always.
View the Ruby gem v4.5.8 changelog for more information.
<< method. This improves our compatibility with Ruby's Logger class implementation, making it usable in more scenarios.Explicitly return nil from public methods with no usable return value. We want to avoid the situation where Appsignal.start happens to return true and it is thought to mean that the gem started successfully.
Methods updated:
Appsignal.startAppsignal.stopAppsignal.configureAppsignal.forkedAppsignal.loadDifferentiate between process_request.rack events. Add the callback that triggered the event in the event title for debugging purposes.
Improve the log message for the uneven timestack error. This will help the AppSignal team debug issues where events get closed when all events are already closed.
View the Ruby gem v4.5.6 changelog for more information.
AppSignal offers a 30-day free trial, no credit card is required. All features are available in all plans. Start monitoring your application in just a few clicks!