Improve query sanitisation performance
Fixed
- Fix a performance issue when sanitising
INSERT INTO ... VALUES
queries.
View the Elixir package v2.13.3 changelog for more information.
INSERT INTO ... VALUES
queries.View the Elixir package v2.13.3 changelog for more information.
View the Elixir for Phoenix package v2.6.0 changelog for more information.
View the Elixir package v2.13.2 changelog for more information.
reported_by
tag to errors reported by the legacy error backend. This makes it easier to understand whether an error is being reported by the error backend.CONTAINER_VERSION
system environment variable is present, it will use used to set the revision
config option automatically. Overwrite it's value by configuring the revision
config option for your application.Fix parentheses warning for Tesla on Elixir 1.17.x.
Fix an issue where, after a certain amount of time, check-ins would no longer be sent.
This issue also caused the default Hackney connection pool to be saturated, affecting other code that uses the default Hackney connection pool.
View the Elixir package v2.13.1 changelog for more information.
View the Elixir for Phoenix package v2.5.1 changelog for more information.
Add support for heartbeat check-ins.
Use the Appsignal.CheckIn.heartbeat
method to send a single heartbeat check-in event from your application. This can be used, for example, in a GenServer
's callback:
Heartbeats are deduplicated and sent asynchronously, without blocking the current thread. Regardless of how often the .heartbeat
method is called, at most one heartbeat with the same identifier will be sent every ten seconds.
Pass continuous: true
as the second argument to send heartbeats continuously during the entire lifetime of the current process. This can be used, for example, during a GenServer
's initialisation:
You can also use Appsignal.CheckIn.Heartbeat
as a supervisor's child process, in order for heartbeats to be sent continuously during the lifetime of the supervisor. This can be used, for example, during an Application
's start:
Appsignal.CheckIn.cron
, instead of blocking the current process while the check-in events are sent, schedule them to be sent in a separate process.View the Elixir package v2.13.0 changelog for more information.
View the Elixir for Phoenix package v2.5.0 changelog for more information.
Make Appsignal.Ecto.Repo
's default_options/1
function overridable. If your Ecto repo uses Appsignal.Ecto.Repo
and implements its own default_options/1
, it must call super
to merge its default options with those of Appsignal.Ecto.Repo
:
Fix an issue where Ecto transactions in parallel preloads would not be instrumented correctly when using Appsignal.Ecto.Repo
, causing the query in the Ecto transaction to not be instrumented and the sample to be incorrectly closed as an earlier time.
View the Elixir package v2.12.3 changelog for more information.
View the Elixir for Phoenix package v2.4.1 changelog for more information.
Rename heartbeats to cron check-ins. Calls to Appsignal.heartbeat
and Appsignal.Heartbeat
should be replaced with calls to Appsignal.CheckIn.cron
and Appsignal.CheckIn.Cron
, for example:
Appsignal.heartbeat
and to methods in Appsignal.Heartbeat
will emit a deprecation warning at compile-time.View the Elixir package v2.12.2 changelog for more information.
View the Elixir package v2.12.1 changelog for more information.
Group GraphQL queries by operation names if available. It will no longer group all errors and performance measurements under the same action name. If no operation name is set, it will use the default action name of the HTTP request route, like POST /graphql
.
If you do not wish to use the operation name, or customize the action name for the GraphQL query request, use the Appsignal.Span.set_name
in a plug middleware that is called before or after the HTTP request is made:
See the Elixir package 2.12.0 changelog for more information.
Allow custom action names to be set in Phoenix routes. For example, in a plug middleware or the controller:
See the changelog for AppSignal for Phoenix package 2.3.9 for more information.
Appsignal.Span.set_name_if_nil
helper. This helper can be used to not overwrite previously set span names, and only set the span name if it wasn't set previously. This will used most commonly in AppSignal created integrations with other libraries to allow apps to set custom span names.enable_error_backend
config option to true
, and let us know what errors you're missing at support@appsignal.com.See the Elixir package 2.11.0 changelog for more information.
Support Kamal-based deployments. Read the KAMAL_VERSION
environment variable, which Kamal exposes within the deployed container, if present, and use it as the application revision if it is not set. This will automatically report deploy markers for applications using Kamal.
See the Elixir package 2.10.2 changelog for more information.
Handle live_view :render
messages received through :telemetry
.
See the changelog for AppSignal for Phoenix package 2.3.8 for more information.
Fix unused variables warnings introduced in the previous release.
See the changelog for AppSignal for Phoenix package 2.3.7 for more information.
Fix the Phoenix filter_parameters
config option support for partial key matches. When configuring config :phoenix, filter_parameters
with ["key"]
or {:discard, ["key"]}
, it now also matches partial keys like "my_key"
, just like Phoenix's logger does.
See the Elixir package 2.10.1 changelog for more information.
Set an action name for Phoenix.ActionClauseError errors. It will now group these errors per controller-action combination for more convenient grouping.
See the changelog for AppSignal for Phoenix package 2.3.6 for more information.
ignore_logs
configuration optionAdd the ignore_logs
configuration option, which can also be configured as the APPSIGNAL_IGNORE_LOGS
environment variable.
The value of ignore_logs
is a list (comma-separated, when using the environment variable) of log line messages that should be ignored. For example, the value "start"
will cause any message containing the word "start" to be ignored. Any log line message containing a value in ignore_logs
will not be reported to AppSignal.
The values can use a small subset of regular expression syntax (specifically, ^
, $
and .*
) to narrow or expand the scope of lines that should be matched.
For example, the value "^start$"
can be used to ignore any message that is exactly the word "start", but not messages that merely contain it, like "Process failed to start". The value "Task .* succeeded"
can be used to ignore messages about task success regardless of the specific task name.
Heartbeats are currently only available to beta testers. If you are interested in trying it out, send an email to support@appsignal.com!
Add heartbeats support. You can send heartbeats directly from your code, to track the execution of certain processes:
You can pass a function to Appsignal.heartbeat
, to report to AppSignal both when the process starts, and when it finishes, allowing you to see the duration of the process:
If an exception is thrown within the function, the finish event will not be reported to AppSignal, triggering a notification about the missing heartbeat. The exception will bubble outside of the heartbeat function.
Remove a broken link pointing to a 1.x upgrade page during the installation flow.
See the Elixir package 2.10.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!