Changelog

Improving AppSignal, one deploy at a time.

Mar 11, 2024

Add distribution value custom metric helper

Python1.1.1

Add distribution value custom metric helper. This can be used to add values to distributions in the same way as in our other integrations:

python
# Import the AppSignal metric helper from appsignal import add_distribution_value # The first argument is a string, the second argument a number (int/float) # add_distribution_value(metric_name, value) add_distribution_value("memory_usage", 100) add_distribution_value("memory_usage", 110) # Will create a metric "memory_usage" with the mean field value 105 # Will create a metric "memory_usage" with the count field value 2

See the Python package 1.1.1 changelog for more information.

Mar 06, 2024

Improved container CPU metrics

Elixir2.9.0

Added

  • Add histogram support to the OpenTelemetry HTTP server. This allows OpenTelemetry-based instrumentations to report histogram data to AppSignal as distribution metrics.

Changed

  • Breaking change: Normalize CPU metrics for cgroups v1 systems. When we can detect how many CPUs are configured in the container's limits, we will normalize the CPU percentages to a maximum of 100%. This is a breaking change. Triggers for CPU percentages that are configured for a CPU percentage higher than 100% will no longer trigger after this update. Please configure triggers to a percentage with a maximum of 100% CPU percentage.
  • 1566a4a8 patch - Update the Mix config import in the config/appsignal.exs file to use import Config, rather than the deprecated use Mix.Config.
  • Support fractional CPUs for cgroups v2 metrics. Previously a CPU count of 0.5 would be interpreted as 1 CPU. Now it will be correctly seen as half a CPU and calculate CPU percentages accordingly.
  • Update bundled trusted root certificates.

Fixed

  • Fix (sub)traces not being reported in their entirety when the OpenTelemetry exporter sends one trace in multiple export requests. This would be an issue for long running traces, that are exported in several requests.

See the changelog for AppSignal for Elixir package 2.9.0 for more information.

Mar 06, 2024

Improved container CPU metrics and histogram support

Node.js3.2.0

Added

  • Add histogram support to the OpenTelemetry HTTP server. This allows OpenTelemetry-based instrumentations to report histogram data to AppSignal as distribution metrics.

Changed

  • Breaking change: Normalize CPU metrics for cgroups v1 systems. When we can detect how many CPUs are configured in the container's limits, we will normalize the CPU percentages to a maximum of 100%. This is a breaking change. Triggers for CPU percentages that are configured for a CPU percentage higher than 100% will no longer trigger after this update. Please configure triggers to a percentage with a maximum of 100% CPU percentage.
  • Support fractional CPUs for cgroups v2 metrics. Previously a CPU count of 0.5 would be interpreted as 1 CPU. Now it will be correctly seen as half a CPU and calculate CPU percentages accordingly.
  • f99d4c5 patch - Update bundled trusted root certificates.

Fixed

  • Fix (sub)traces not being reported in their entirety when the OpenTelemetry exporter sends one trace in multiple export requests. This would be an issue for long running traces, that are exported in several requests.

See the Node.js 3.2.0 package changelog for more information.

Mar 06, 2024

Apollo Gateway Support

Node.js3.3.0

Added

  • Added support for Apollo Federation Gateways. Queries sent to the supergraph will now be instrumented.

See the Node.js 3.3.0 package changelog for more information.

Mar 05, 2024

Active Job error reporting config option

Ruby3.6.1

Added

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

Mar 04, 2024

Improved container CPU metrics, fix long running traces, histogram support

Python1.1.0

Added

  • Add histogram support to the OpenTelemetry HTTP server. This allows OpenTelemetry-based instrumentations to report histogram data to AppSignal as distribution metrics.

Changed

  • Breaking change: Normalize CPU metrics for cgroups v1 systems. When we can detect how many CPUs are configured in the container's limits, we will normalize the CPU percentages to a maximum of 100%. This is a breaking change. Triggers for CPU percentages that are configured for a CPU percentage higher than 100% will no longer trigger after this update. Please configure triggers to a percentage with a maximum of 100% CPU percentage.
  • Make the debug log message for OpenTelemetry spans from libraries we don't automatically recognize more clear. Mention the span id and the instrumentation library.
  • Fix an issue where queries containing a MySQL leading type indicator would only be partially sanitised.
  • Support fractional CPUs for cgroups v2 metrics. Previously a CPU count of 0.5 would be interpreted as 1 CPU. Now it will be correctly seen as half a CPU and calculate CPU percentages accordingly.
  • Update bundled trusted root certificates.

Fixed

  • Fix (sub)traces not being reported in their entirety when the OpenTelemetry exporter sends one trace in multiple export requests. This would be an issue for long running traces, that are exported in several requests.

See the Python package 1.1.0 changelog for more information.

Feb 26, 2024

Ruby gem 3.6.0

Ruby3.6.0

Added

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

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

Changed

  • Breaking change: Normalize CPU metrics for cgroups v1 systems. When we can detect how many CPUs are configured in the container's limits, we will normalize the CPU percentages to a maximum of 100%. This is a breaking change. Triggers for CPU percentages that are configured for a CPU percentage higher than 100% will no longer trigger after this update. Please configure triggers to a percentage with a maximum of 100% CPU percentage.
  • Support fractional CPUs for cgroups v2 metrics. Previously a CPU count of 0.5 would be interpreted as 1 CPU. Now it will be correctly seen as half a CPU and calculate CPU percentages accordingly.
  • Update bundled trusted root certificates.

Fixed

  • Fix (sub)traces not being reported in their entirety when the OpenTelemetry exporter sends one trace in multiple export requests. This would be an issue for long running traces, that are exported in several requests.

See the Ruby gem 3.6.0 changelog for more information.

Feb 23, 2024

Standalone agent 0.33.2

Fixed

  • Fix (sub)traces not being reported in their entirety when the OpenTelemetry exporter sends one trace in multiple export requests. This would be an issue for long running traces, that are exported in several requests.

This release can be installed through our standalone agent packages and as a Docker image.

Feb 21, 2024

Standalone agent 0.33.1

Added

  • Add histogram support to the OpenTelemetry HTTP server. This allows OpenTelemetry-based instrumentations to report histogram data to AppSignal as distribution metrics.

This release can be installed through our standalone agent packages and as a Docker image.

Feb 14, 2024

Standalone agent 0.33.0

Changed

  • Breaking change: Normalize CPU metrics for cgroups v1 systems. When we can detect how many CPUs are configured in the container's limits, we will normalize the CPU percentages to a maximum of 100%. This is a breaking change. Triggers for CPU percentages that are configured for a CPU percentage higher than 100% will no longer trigger after this update. Please configure triggers to a percentage with a maximum of 100% CPU percentage.
  • Support fractional CPUs for cgroups v2 metrics. Previously a CPU count of 0.5 would be interpreted as 1 CPU. Now it will be correctly seen as half a CPU and calculate CPU percentages accordingly.

This release can be installed through our standalone agent packages and as a Docker image.

Feb 13, 2024

App updates

We've improved a number of smaller details in the App. Here's a list of the changes we've made:

  • Selected columns on the Error/Performance sample pages are now persisted.
  • Alerts in the Time Detective now link to Anomaly Incidents, instead of the edit form.
  • Add log view params to the url, this allows for additional filtering on a log view, and the ability to save it as a new view.
  • The chart on the log view page now handles large timeframes. It now loads data in batches, preventing timeouts, and a broken graph.
  • Link templates for Error/Performance sample tags can now include dashes (-).
  • Expand SQL syntax highlighting to additional Event Payload bodies, such as active_record, ecto, knex, mysql, pg, sequel, psycopg2 and sql.
Feb 08, 2024

Default headers don't include `REQUEST_URI` anymore

Ruby3.5.6

Changed

  • The default headers no longer include 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.

Feb 07, 2024

OpenTelemetry metrics extractor

Node.js3.1.0

Added

  • OpenTelemetry instrumentations that emit metrics are now automatically extracted and reported to AppSignal. The metric provider is also globally available for you to send custom metrics using OpenTelemetry. Only gauges and counters are supported at the moment.

Fixed

  • An issue with boolean options not being correctly parsed in the appsignal configuration file.
  • An issue with MySQL queries with leading type indicators not being correctly sanitized.

See the Node.js 3.1.0 package changelog for more information.

Feb 02, 2024

Standalone agent 0.32.0

Added

  • Add a Debian 12 (Bookworm) package for the standalone agent.
  • Add support for Debian 12 (Bookworm) for the ARM architecture for standalone agent packages. This is a beta package and may not work as expected. Please report any issues you may encounter.

This release can be installed through our standalone agent packages and as a Docker image.

Feb 01, 2024

Add custom_on_create_fun hook for span creation

Elixir2.8.3

Added

  • Set data on spans with the custom_on_create_fun hook. This hook is called upon the creation of every span. This can be useful to add tags to internal traces and otherwise difficult to access traces.

    This won't be necessary for most scenarios. We recommend following our tagging guide instead.

    elixir
    defmodule MyApp.Appsignal do def custom_on_create_fun(_span) do Appsignal.Span.set_sample_data(Appsignal.Tracer.root_span, "tags", %{"locale": "en"}) end end
    elixir
    # config/config.exs config :appsignal, custom_on_create_fun: &MyApp.Appsignal.custom_on_create_fun/1

Changed

  • Make the debug log message for OpenTelemetry spans from libraries we don't automatically recognize more clear. Mention the span id and the instrumentation library.
  • Fix an issue where queries containing a MySQL leading type indicator would only be partially sanitised.

See the changelog for AppSignal for Elixir package 2.8.3 for more information.

Feb 01, 2024

redis-client support and MySQL query sanitization fix

Ruby3.5.5

Added

  • Add support for the redis-client gem, which is used by the redis gem since version 5.

Changed

  • Make the debug log message for OpenTelemetry spans from libraries we don't automatically recognize more clear. Mention the span id and the instrumentation library.
  • Fix an issue where queries containing a MySQL leading type indicator would only be partially sanitised.

Fixed

  • Add more testing to JRuby extension installation to better report the installation result and any possible failures.

See the Ruby gem 3.5.5 changelog for more information.

Jan 25, 2024

Add support for Ecto parallel preloads

Elixir2.8.2

Replacing use Ecto.Repo with use Appsignal.Ecto.Repo allows the Ecto instrumentation to keep context across the Elixir processes spawned by Ecto preload queries, ensuring that these queries are correctly instrumented:

elixir
defmodule MyApp.Repo do # replace `use Ecto.Repo` with `use Appsignal.Ecto.Repo` use Appsignal.Ecto.Repo, otp_app: :my_app, adapter: Ecto.Adapters.Postgres end

See the changelog for AppSignal for Elixir package 2.8.2 for more information.

Jan 24, 2024

Standalone agent 0.0.31

Changed

  • Fix disk usage returning a Vec with no entries on Alpine Linux when the df --local command fails.
  • 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.
  • Improve extraction of OpenTelemetry span details from the Requests library, by using the HTTP method, scheme, host and port as the event name. This improves grouping in the "Slow API requests" performance panel.
  • Remove extra HTTP attributes from Django root spans.
  • Remove route tag from HTTP server spans. Since the span will already have the route attribute as part of its name, the tag is redundant.
  • Filter more disk mountpoints for disk usage and disk IO stats. This helps reduce noise in the host metrics by focussing on more important mountpoints. Any mountpoint containing /etc/hostname, /etc/hosts, /etc/resolv.conf, /snap/ or /proc/ is ignored.
  • Make the debug log message for OpenTelemetry spans from libraries we don't automatically recognize more clear. Mention the span id and the instrumentation library.

Fixed

  • Fix missing error metrics for the error rate and error count graphs in some scenarios, like with Koa apps.
  • Fix an issue where the method tag extracted from an incoming HTTP request span would be overriden with the method used for an outgoing HTTP request span.
  • Support disk usage reporting (using df) on Alpine Linux. This host metric would report an error on Alpine Linux.
  • When a disk mountpoint has no inodes usage percentage, skip the mountpoint, and report the inodes information successfully for the inodes that do have an inodes usage percentage.
  • Fix an issue where queries containing a MySQL leading type indicator would only be partially sanitised.

This release can be installed through our standalone agent packages and as a Docker image.

Jan 19, 2024

Warn about committing Push API key

JavaScript@appsignal/cli@1.2.8

Changed

  • Warn about Push API key being committed in the AppSignal config file and recommend using system environment variables instead.

See the changelog for the AppSignal CLI package 1.2.8 for more information.

Jan 17, 2024

Long-term storage for logging

We've added a feature that allows for long-term storage of log sources. Provide an S3 bucket and credentials; we'll transfer our logs to your bucket.

AppSignal Long-term Log Storage UI

Long-term log storage is part of a suite of Business features that don't modify our core features but make administration and staying compliant more manageable.

So far, long-term log storage, enforcing two-factor authentication, and the ability to sign a Business Associate Agreement for HIPAA compliance are available. For pricing, please contact our Customer Success team.

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!