Changelog

Improving AppSignal, one deploy at a time.

Sep 01, 2026

Fix host metrics and query sanitization

Collector0.11.3

Fixed

  • Fix host-metrics leaking zombie [timeout] processes in Alpine Linux containers.

    Before this release AppSignal collector relied on a proper init process that reaps child processes killed by system timeout. Now the collector terminates and reaps unresponsive child processes in host-metrics collection and a subreaper is no longer required.

  • Sanitize Redis spans' query text instead of the command name.

    The collector previously redacted db.operation / db.operation.name, which per the OpenTelemetry semantic conventions only contains the command verb (e.g. GET, HMSET) with nothing to redact, and left the full command-with-arguments in db.query.text / db.statement unredacted. The full command is now correctly sanitized, matching how the official OpenTelemetry Redis instrumentations emit data.

    As a side effect, Redis spans now group by command shape rather than by exact arguments, the same way SQL spans group by query shape.

  • Sanitize SQL queries for database systems reported using the current OpenTelemetry semantic conventions.

    The collector's SQL sanitization only recognized the db.system values from semantic conventions up to v1.29.0. Values renamed in v1.30.0, when the attribute became db.system.name, such as microsoft.sql_server for Microsoft SQL Server, were not recognized, so their queries were stored without sanitization. Both the older db.system values and the current db.system.name values are now recognized.

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

Jul 17, 2026

Report internal memory usage

Collector0.11.0

Added

  • Track Collector's memory usage as internal metrics. The Collector will now self-report memory usage and uptime every minute.

Changed

  • Handle HTTP HEAD requests on the /up and / endpoints. These now respond with 200 OK so health checks and uptime monitors that use HEAD requests no longer receive a 404 response.

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

Jun 09, 2026

Improve stability

Added

  • Allow appsignal.group and appsignal.format attributes in OpenTelemetry logs to override the log line's group and format.

    When present, appsignal.group overrides the resource-level service name as the log group, and appsignal.format (one of plaintext, logfmt, json, autodetect) overrides the log source's parsing format.

Fixed

  • Fix crashes when truncating attribute keys and values whose length limit fell in the middle of a multi-byte UTF-8 character. Truncation now rounds the cut point down to the nearest character boundary instead of panicking.
  • Continue reporting non-disk host metrics when a mount is frozen.

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

Apr 24, 2026

Limit collector memory usage

Fixed

  • Cap the amount of metric states stored for cumulative-to-delta conversion, preventing high-cardinality tag combinations from causing excessive memory usage.
  • Evict and block traces that accumulate large amounts of orphaned spans, preventing them from growing unboundedly in memory.

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

Feb 09, 2026

Better Database and HTTP span recognition

Added

  • Use db.stored_operation.name as one of the attributes to determine if two spans are the same. When it is present, ignore db.statement and db.query.text for the same purpose.

Changed

  • Improve recognition of HTTP client spans. This will help our 'slow requests' feature recognize grouped HTTP client spans and improve our N+1 detection.

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

Dec 16, 2025

Allow app-level push API keys

Changed

  • Allow the use of app-level push API keys. When an app-level push API key is used, the resource attributes for the name and environment should not be specified. These resource attributes are now optional, although the use of one requires the other.

  • Make most resource attributes optional. Allow for the resource attributes pertaining the revision, the hostname, the language integration and the application path to not be present. This allows the AppSignal collector to more easily ingest data from arbitrary OpenTelemetry sources.

    Note that usage of these resource attributes is still recommended. Traces sent without these attributes may be tagged with the wrong hostname or revision, or have their error backtraces parsed incorrectly.

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

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.

$appsignal install

Make your next crash make sense.

Free for 30 days. No credit card. Two-minute install.