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.
memory_in_percentages
and swap_in_percentages
host metrics that represents metrics in percentages./snap/
disk mountpoints when measuring disk usage in volumes.See the Ruby gem 3.4.14 changelog for more information.
dry-monitor
are now supported. There's also native support for rom-sql
instrumentation events if they're configured.APPSIGNAL_INACTIVE_ON_CONFIG_FILE_ERROR
environment variable was set.See the Ruby gem 3.4.13 changelog for more information.
Add an option to not start AppSignal on config file errors. When the config/appsignal.yml
file raises an error (due to ERB syntax issues or ERB errors), it will currently ignore the config file and try to make a configuration work from the other config sources (default, auto detection and system environment variables). This can cause unexpected behavior, because the config from the config file is not part of the loaded config.
In future versions of the Ruby gem, AppSignal will not start when the config file contains an error. To opt-in to this new behavior, set the APPSIGNAL_INACTIVE_ON_CONFIG_FILE_ERROR
system environment variable to either 1
or true
.
appsignal.log
file.disk_inode_usage
metric name format to not be interpreted as a JSON object.See the Ruby gem 3.4.12 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!