🚀 Blast off! Join us today, Sep 4, for Launch Week SU25!

Changelog

Improving AppSignal, one deploy at a time.

Sep 01, 2025

Log trigger filtering

Added

  • Add functionality that allows filtering log triggers by name, source, or creator.
    Screenshot of log trigger filtering
Aug 29, 2025

Support streaming bodies and other improvements

Ruby4.7.0

Added

  • Add Sidekiq worker-level job status metric: 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.

Fixed

  • 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:

    Ruby
    use Rack::Events, [Appsignal::Rack::EventHandler.new]

    And replace it with the following line:

    Ruby
    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.

Aug 28, 2025

MCP improvments, and Logs Updates

Added

  • Add 3rd party integration links (e.g. GitHub, Jira) to MCP get_incident tool. The AI Agent can use this to tie incidents to external issues.
  • Add uptime monitoring metrics to the MCP metric discovery tool
  • Support ANSI colors in Logs page
  • Persist the option to hide the logs chart between queries.
Aug 27, 2025

Logging updates

Added

  • Add examples and “click to apply” functionality for IN and NOT IN in the logs search dropdown.
  • Log sources now support automatic format detection. We will attempt to parse the line as JSON, Logfmt, and plain text, extracting attributes on every step.

Changed

  • Hitting the escape key trying to close the log query help tool doesn't clear the query anymore.
Aug 25, 2025

Improved histograms and logs, report all child spans, and CORS support

Added

  • Improve histogram support. When processing OpenTelemetry histograms, allow for histograms that do not have min, max or sum values. Use the exemplars provided alongside the histogram to improve the accuracy of the histogram.
  • Return CORS headers from the export endpoints to make it possible to export OpenTelemetry data to these endpoints without the need of a proxy server. The Access-Control-Allow-Origin header value can be configured in the collector with the cors_origin config option or APPSIGNAL_CORS_ORIGIN environment variable.
  • Support key-value list attributes in log lines. When an attribute sent in a log line is a key-value list, it will be converted into multiple attributes, one for each key-value pair in the list, prefixed with the key of the list attribute.

Changed

  • Disable the default AppSignal request and response headers filter. By default, the OpenTelemetry SDK in the applications do not send any request and response headers and require configuration of to record these headers. This required double configuration in applications for AppSignal and OpenTelemetry. The 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.
  • Log a warning when making a GET request to a POST endpoint. The error page when making a GET request will also explain to make a POST request instead.
  • Read the app language from the OpenTelemetry 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.
  • Report log lines with unspecified severity. When a log line does not have a severity, report it as a log line with info level severity.

Fixed

  • Fix child spans not always being reported. This was due to the collector not properly traversing all the levels the trace span hierarchy.

This release can be installed through our collector packages and Docker image.

Aug 15, 2025

MCP Updates

Added

  • Add the create_incident_note tool for the MCP server. This allows AI Agents to comment on incidents.
    Screenshot 2025-08-14 at 12 20 09

Changed

  • The update_incident MCP Tool now accepts severity as an argument (and sets the severity accordingly).
Aug 11, 2025

Download samples as JSON

Added

  • Allow downloading samples as JSON
  • Include Unassigned option in the assignee filter
  • Add a callout to the instrumentation docs when the trace timeline has a few items

Fixed

  • Fix visual bugs in the integration button dropdown.
Aug 06, 2025

kubernetes and Anomaly updates

Added

  • Add the ability to treat missing data point as 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.
    treat missing data point as 0
  • Add container status, uptime, and restart count in the Kubernetes Pods table
  • Add container status and owner reference grouping options in the Kubernetes overview page
  • Add uptime and restart count in the Pod overview tooltip

Changed

  • Update the order of steps in the OpenTelemetry Java installation flow to improve the installation flow experience.
Aug 04, 2025

MCP Discover metrics & Kubernetes state pop-over

Added

  • 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.

Changed

  • Improve cluster state pop-over. Show state of containers, if there are any.
    Screenshot of Kubernetes Node Overview Pop-over
Jul 31, 2025

Application Updates

Added

  • 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

    Shell
    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.

    Kubernetes volume metrics
Jul 29, 2025

Type signatures and improved Capistrano & Hatchbox deploys

Ruby4.6.0

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" } }

View the Ruby gem v4.6.0 changelog for more information.

Jul 22, 2025

Application MCP endpoint

Added

  • Add MCP endpoint to list all applications a user has access to.
  • Add Kubernetes overview page. This page shows your entire Kubernetes cluster state in one glance.
    Kubernetes Overview
Jul 21, 2025

Improve overrides and other changes

JavaScript@appsignal/javascript@1.6.0

Added

  • Add getters for spans. Use the 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.
  • Allow overrides to ignore spans. Within an override function, returning false will cause AppSignal to ignore the span.

Changed

  • Ignore spans by message after overrides. This allows overrides to modify error messages before ignoring them, allowing the override to cause the span to be ignored, or to prevent it from being ignored.

Deprecated

  • Deprecate @appsignal/core and @appsignal/types packages. Packages depending on these packages should be updated to use @appsignal/javascript instead.

Fixed

  • 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.

Start your free trial

Don’t let the bad bugs bite. Try AppSignal for free.

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!