Support events emitted by ViewComponent. Rendering of ViewComponent-based components will appear as events in your performance samples' event timeline.
For AppSignal to instrument ViewComponent events, you must first configure ViewComponent to emit those events:
# config/application.rb module MyRailsApp class Application < Rails::Application config.view_component.instrumentation_enabled = true config.view_component.use_deprecated_instrumentation_name = false end end
Thanks to Trae Robrock (@trobrock) for providing a starting point for this implementation!
Support Kamal-based deployments. Read the KAMAL_VERSION
environment variable, which Kamal exposes within the deployed container, if present, and use it as the application revision if it is not set. This will automatically report deploy markers for applications using Kamal.
Fix an issue where an error about the AppSignal internal logger is raised when sending a heartbeat.
See the Ruby gem 3.7.5 changelog for more information.
Fix LocalJumpError in Active Job instrumentation initialization for Active Job < 7.1.
See the Ruby gem 3.7.4 changelog for more information.
Add option to activejob_report_errors
option to only report errors when a job is discard by Active Job. In the example below the job is retried twice. If it fails with an error twice the job is discarded. If activejob_report_errors
is set to discard
, you will only get an error reported when the job is discarded. This new discard
value only works for Active Job 7.1 and newer.
class ExampleJob < ActiveJob::Base retry_on StandardError, :attempts => 2 # ... end
More information in our Active Job documentation.
Track Active Job executions per job. When a job is retried the "executions" metadata for Active Job jobs goes up by one for every retry. We now track this as the executions
tag on the job sample.
See the Ruby gem 3.7.3 changelog for more information.
See the Ruby gem 3.7.2 changelog for more information.
log/
directory, it will no longer print the warning more than once.Appsignal.stop
is called. When Appsignal.stop
is called, the probes thread will no longer continue running in the app process.APPSIGNAL_HTTP_PROXY
environment variable in the extension installer. When APPSIGNAL_HTTP_PROXY
is set during gem instal appsignal
or bundle install
, it will use the proxy specified in the APPSIGNAL_HTTP_PROXY
environment variable to download the extension and agent.Appsignal::Probes.unregister
to unregister probes registered with Appsignal::Probes.register
if you do not need a certain probe, including default probes.Appsignal::Probes.register
method as the preferred method to register probes. The Appsignal::Probes.probes.register
and Appsignal::Minutely.probes.register
methods are now deprecated.Appsignal::Probes.register
when the gem has already started the probes thread. Previously, the late registered probes would not be run.Appsignal::Minutely
, please update it to Appsignal::Probes
. If your app calls Appsignal::Minutely
after this upgrade without the name change, the gem will print a deprecation warning for each time the Appsignal::Minutely
is called.See the Ruby gem 3.7.1 changelog for more information.
ignore_logs
configuration optionAdd the ignore_logs
configuration option, which can also be configured as the APPSIGNAL_IGNORE_LOGS
environment variable.
The value of ignore_logs
is a list (comma-separated, when using the environment variable) of log line messages that should be ignored. For example, the value "start"
will cause any message containing the word "start" to be ignored. Any log line message containing a value in ignore_logs
will not be reported to AppSignal.
The values can use a small subset of regular expression syntax (specifically, ^
, $
and .*
) to narrow or expand the scope of lines that should be matched.
For example, the value "^start$"
can be used to ignore any message that is exactly the word "start", but not messages that merely contain it, like "Process failed to start". The value "Task .* succeeded"
can be used to ignore messages about task success regardless of the specific task name.
Heartbeats are currently only available to beta testers. If you are interested in trying it out, send an email to support@appsignal.com!
Add heartbeats support. You can send heartbeats directly from your code, to track the execution of certain processes:
def send_invoices() # ... your code here ... Appsignal.heartbeat("send_invoices") end
You can pass a block to Appsignal.heartbeat
, to report to AppSignal both when the process starts, and when it finishes, allowing you to see the duration of the process:
def send_invoices() Appsignal.heartbeat("send_invoices") do # ... your code here ... end end
If an exception is raised within the block, the finish event will not be reported to AppSignal, triggering a notification about the missing heartbeat. The exception will bubble outside of the heartbeat block.
See the Ruby gem 3.7.0 changelog for more information.
Fix CPU user
/system
usage measurements, as to take into account the amount of CPUs available.
Fix a bug where performing queries using older versions of redis-client
would result in a NoMethodError
being raised.
Using redis-client
version 0.14.0
or greater is a requirement for AppSignal to instrument Redis queries.
See the Ruby gem 3.6.5 changelog for more information.
Add request parameters, "path" and "method" tags to errors reported in controllers via the Rails error reporter. (Thanks @bdewater-thatch!)
Implement CPU count configuration option. Use it to override the auto-detected, cgroups-provided number of CPUs that is used to calculate CPU usage percentages.
To set it, use the the cpu_count
configuration option or the APPSIGNAL_CPU_COUNT
environment variable.
activejob_report_errors
config option. When set to "none"
, ActiveJob jobs will no longer report errors. This can be used in combination with custom exception reporting. By default, the config option has the value "all"
, which reports all errors.See the Ruby gem 3.6.1 changelog for more information.
Add instrumentation for all Rack responses, including streaming responses. New response_body_each.rack
, response_body_call.rack
and response_body_to_ary.rack
events will be shown in the event timeline. This will show how long it takes to complete responses, depending on the response implementation.
This Sinatra route with a streaming response will be better instrumented, for example:
get "/stream" do stream do |out| sleep 1 out << "1" sleep 1 out << "2" sleep 1 out << "3" end end
Add histogram support to the OpenTelemetry HTTP server. This allows OpenTelemetry-based instrumentations to report histogram data to AppSignal as distribution metrics.
See the Ruby gem 3.6.0 changelog for more information.
REQUEST_URI
as query params are not sanitize and might include PII. Now the REQUEST_PATH
is used instead.See the Ruby gem 3.5.6 changelog for more information.
redis-client
gem, which is used by the redis gem since version 5.See the Ruby gem 3.5.5 changelog for more information.
df --local
command fails.Appsignal.set_host_gauge
and Appsignal.set_process_gauge
helper methods in the Ruby gem. These methods would already log deprecation warnings in the appsignal.log
file, but now also as a Ruby warning. These methods will be removed in the next major version. These methods already did not report any metrics, and still do not.appsignal_set_host_gauge
and appsignal_set_process_gauge
extension functions. These functions were already deprecated and did not report any metrics.See the Ruby gem 3.5.4 changelog for more information.
Log a warning when no mountpoints are found to report the disk usage metrics. This scenario shouldn't happen (it should log an error, message about skipping a mountpoint or log the disk usage). Log a warning to detect if this issue really occurs.
See the Ruby gem 3.5.3 changelog for more information.
See the Ruby gem 3.5.1 changelog for more information.
See the Ruby gem 3.5.2 changelog for more information.
Added support for error causes.
When AppSignal reports an error that was raised during the handling of another error, the original error (the cause) and its error message will be shown alongside the reported error.
See the Ruby gem 3.5.0 changelog for more information.
/etc/hostname
, /etc/hosts
, /etc/resolv.conf
, /snap/
or /proc/
is ignored.df
) on Alpine Linux. This host metric would report an error on Alpine Linux.See the Ruby gem 3.4.16 changelog for more information.
See the Ruby gem 3.4.15 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!