Elixir package v2.18.1
Fixed
- Report Broadway messages as parameters instead of as a
messagetag.
View the Elixir package v2.18.1 changelog for more information.
Improving AppSignal, one deploy at a time.
message tag.View the Elixir package v2.18.1 changelog for more information.
Automatically instrument Broadway library.
Broadway is an Elixir library for building concurrent and multi-stage data ingestion and data processing pipelines.
When Broadway processes one or more messages, a trace is created to represent
the processing of these messages. Independent root spans encompass the call to
prepare_messages/2 and handle_message/3.
This instrumentation is enable by default and only available for Broadway versions higher than 1.0.0.
View the Elixir package v2.18.0 changelog for more information.
View the Elixir package v2.17.7 changelog for more information.
View the Elixir package v2.17.6 changelog for more information.
Fix the sanitization of function arguments in SQL statements.
Before this release, SQL sanitization of function arguments stripped out parts of the SQL statement after the function argument list.
View the Elixir package v2.17.5 changelog for more information.
View the Elixir package v2.17.4 changelog for more information.
Fix host-metrics leaking zombie [timeout] processes in Alpine linux containers.
Before this release AppSignal agent relied on a proper init process that reaps child processes killed by system timeout. Now the agent terminates and reaps unresponsive child processes in host-metrics collection and a subreaper is no longer required.
View the Elixir package v2.17.3 changelog for more information.
Emit distribution metrics from the Ecto integration.
Each Ecto query telemetry event now also reports its timing values as ecto_query_time, ecto_queue_time, ecto_decode_time, ecto_idle_time and ecto_total_time distribution metrics.
All five metrics are tagged by repo and hostname. The ecto_query_time, ecto_decode_time and ecto_total_time metrics are additionally tagged by repo and source (the Ecto table).
This surfaces pool waits, decode time, idle connection time and per-table latency as standalone metrics in addition to the existing query span.
Preserve sub-millisecond precision when reporting timing distribution metrics.
The Ecto (ecto_query_time, ecto_queue_time, ecto_decode_time, ecto_idle_time, ecto_total_time) and Oban (oban_job_duration, oban_job_queue_time) distribution metrics now report fractional milliseconds, instead of being truncated to whole milliseconds. Sub-millisecond measurements were previously rounded down to zero.
View the Elixir package v2.17.2 changelog for more information.
conn_opts in Finch.start_link.decimal before 3.0.0. Loosen decimal requirement to allow ~> 3.0 and fix compatibility with ecto.View the Elixir package v2.17.1 changelog for more information.
Add HTTPoison instrumentation. HTTP requests made with HTTPoison will appear as request.httpoison events on your performance samples' event timeline.
HTTPoison does not emit telemetry events, so the instrumentation is opt-in. Use Appsignal.HTTPoison in place of HTTPoison when making requests, or replace use HTTPoison.Base with use Appsignal.HTTPoison.Base for custom client modules. Response types (%HTTPoison.Response{}, %HTTPoison.Error{}, etc.) are unchanged.
View the Elixir package v2.17.0 changelog for more information.
Disable the error backend by default
With new ways of instrumenting errors added, the error backend is unneeded in most setups. Disable it by default to make it opt-in.
View the Elixir package v2.16.0 changelog for more information.
CI environment variable was present, AppSignal for Phoenix would break during installation unless a separate environment variable was also present.View the Elixir for Phoenix package v2.8.1 changelog for more information.
Report LiveComponent traces and events separately from LiveView traces and events.
Traces in AppSignal representing updates and event handlers in components will no longer be represented as calls to the view in which the component is mounted, and their events will be part of the live_component group.
This makes it possible to obtain performance measurements for each component individually, instead of grouped by the view that mounts the component.
Group samples for calls to handle_event/3 in LiveView and LiveComponent by the event that is being handled.
View the Elixir for Phoenix package v2.8.0 changelog for more information.
Detect the log format automatically. We now detect if a log line is in the JSON, Logfmt or plaintext formats. No further config needed when calling our logger, like so:
Appsignal.Logger.info("group", "message")View the Elixir package v2.15.11 changelog for more information.
View the Elixir package v2.15.10 changelog for more information.
View the Elixir package v2.15.9 changelog for more information.
nginx_port configuration option. This configuration option can be used to customize the port on which the AppSignal integration exposes the NGINX metrics server.View the Elixir package v2.15.8 changelog for more information.
result attribute reported for Oban jobs. Instead of it including the job's whole return value, it only contains the Oban job control value: :ok/:error/:discard/:cancel/:snooze.
The reason for a discard, cancel, error or snooze result will be stored in the new result_reason attribute.
Any :ok result reasons and unexpected result values are ignored. This is to avoid storing sensitive data in the attributes and to make it easier to filter by job control value in the interface.View the Elixir package v2.15.7 changelog for more information.
ignore_errors config option.View the Elixir package v2.15.6 changelog for more information.
Plug.ErrorHandler in the Appsignal.Plug module. It will now longer render a page with HTTP status 500 and the response body "Something went wrong".View the Elixir for Plug package v2.1.1 changelog for more information.
Free for 30 days. No credit card. Two-minute install.
Need help or have a feature request? Talk to a real engineer. Not a bot, not a ticket queue.
AppSignal is built by a small, dedicated team spread across the world. We love stroopwafels. If you do too, let us know. We might send you some.