Improve error reporting for Next.js app
Fixed
- Report errors in AppSignal for exception events in Next.js render spans.
This release can be installed through our collector packages and Docker image.
This release can be installed through our collector packages and Docker image.
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.
IN
and NOT IN
in the logs search dropdown.escape
key trying to close the log query help tool doesn't clear the query anymore.View the Node.js package v3.7.1 changelog for more information.
min
, max
or sum
values. Use the exemplars provided alongside the histogram to improve the accuracy of the histogram.Access-Control-Allow-Origin
header value can be configured in the collector with the cors_origin
config option or APPSIGNAL_CORS_ORIGIN
environment variable.appsignal.config.request_headers
and appsignal.config.response_headers
configuration options can still be used for additional header filtering if needed. Consult your application's language OpenTelemetry SDK for the configuration option to record request and response headers.telemetry.sdk.language
resource attribute if set. This attribute is set by the OpenTelemetry SDK for some languages, like Go, Java and PHP.
If your application's OpenTelemetry SDK sets the telemetry.sdk.language
resource attribute, you will not need to set the appsignal.config.language_integration
attribute.
If the appsignal.config.language_integration
attribute is set, it will take precedence over the telemetry.sdk.language
resource attribute.This release can be installed through our collector packages and Docker image.
View the Node.js package v3.7.0 changelog for more information.
create_incident_note
tool for the MCP server. This allows AI Agents to comment on incidents.
update_incident
MCP Tool now accepts severity
as an argument (and sets the severity accordingly).0
. It should be green, as it has done it's job successfully.
0
for performance and error triggers.
If you have traffic in bursts (e.g. a Cron
job), there's not always enough data to trigger or close an alert. When checking this checkbox, we will simulate the metric, allowing alerts to close.
Add ability for Ai Agents to discover our metrics on our MCP server.
Before this discover_metrics
endpoint, we had our get_metric_names
endpoint, but it was difficult for agents to determine what metric should be used when.
With this new discover_metrics
endpoint, we provide the Agent with a global overview of metric categories, and when they request more information about a category, we describe the metric names/tags/fields, and when to use them.
We also take custom metrics and dashboards into account. Providing descriptive names for dashboards/description and charts on your dashboards helps the agent use those metrics.
Add get_metrics_timeseries
endpoint to the MCP server.
This endpoint exposes timeseries metrics to an AI Agent, enabling queries such as
Show me the load average for all front-end machines on MyApp/production
Here's a summary of the load averages for the two frontend machines: 1. frontend1: - Load average range: 0.83 - 1.6 - Current load: 0.94 2. frontend2: - Load average range: 2.0 - 3.01 - Current load: 2.18 The frontend-ams1 machine appears to have a significantly higher load compared to frontend1, with load averages consistently above 2.0, while frontend2 stays mostly below 1.5.
We are still working on metric discovery. Right now you have to be quite specific to get the desired metrics.
Add kubernetes volume metrics to node page.
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.
View the Elixir package v2.15.10 changelog for more information.
getAction
, getNamespace
, getError
, getTags
, getParams
, getBreadcrumbs
, and getEnvironment
methods to access data about the current span. This can be used to make decisions based on the span's properties within decorators or overrides.false
will cause AppSignal to ignore the span.@appsignal/core
and @appsignal/types
packages. Packages depending on these packages should be updated to use @appsignal/javascript
instead.Use returned span in override. Fix an issue where the span returned from an override function was not being used, instead using the original span. This led to confusing behaviour when the override created a new span instead of modifying the original one.
To avoid breaking existing overrides that rely on modifying the original span without returning it, if the override function does not return a span, the original span will still be used.
View the AppSignal JavaScript javascript v1.6.0 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!