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:
def send_invoices do # ... your code here ... Appsignal.heartbeat("send_invoices") end
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:
def send_invoices do Appsignal.heartbeat("send_invoices", fn -> # ... your code here ... end) end
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.
Implement CPU count configuration option. Use it to override the auto-detected, cgroups-provided number of CPUs that is used to calculate CPU usage percentages.
To set it, use the the cpu_count
configuration option or the APPSIGNAL_CPU_COUNT
environment variable.
config/appsignal.exs
file to use import Config
, rather than the deprecated use Mix.Config
.See the changelog for AppSignal for Elixir package 2.9.0 for more information.
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.
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
# config/config.exs config :appsignal, custom_on_create_fun: &MyApp.Appsignal.custom_on_create_fun/1
See the changelog for AppSignal for Elixir package 2.8.3 for more information.
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:
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.
Fix disk usage returning a Vec with no entries on Alpine Linux when the df --local
command fails.
Add support for lists in the sample data as root values on spans, as shown below. Previously we only supported lists as nested objects in maps.
Appsignal.Span.set_sample_data( Appsignal.Tracer.root_span, "custom_data", [ "value 1", "value 2" ] )
appsignal_set_host_gauge
and appsignal_set_process_gauge
extension functions. These functions were already deprecated and did not report any metrics.Fix missing error metrics for the error rate and error count graphs in some scenarios, like with Node.js Koa apps.
Add support for keywords lists in sample data on spans. These would previously be shown an empty list.
Appsignal.Span.set_sample_data( Appsignal.Tracer.root_span, "custom_data", %{"keyword_list": [foo: "some value", "bar": "other value"]} )
See the changelog for AppSignal for Elixir package 2.8.1 for more information.
phoenix_html
dependency to use version 4.0 or above.See the changelog for AppSignal for Phoenix package 2.3.5 for more information.
/etc/hostname
, /etc/hosts
, /etc/resolv.conf
, /snap/
or /proc/
is ignored.df
) on Alpine Linux. This host metric would report an error on Alpine Linux.See the changelog for AppSignal for Elixir package 2.8.0 for more information.
See the changelogs for AppSignal for Elixir package 2.7.13 for more information.
Improve instrumentation for Ecto transactions. Queries performed as part of an
Ecto.Multi
or an Ecto.Repo.transaction
are now displayed in the event timeline as child events of a broader transaction event:
An additional event is added at the end of the transaction, to denote whether the transaction was committed or rolled back.
See the changelogs for AppSignal for Elixir package 2.7.12 for more information.
See the changelogs for AppSignal for Elixir package 2.7.11 for more information.
@impl true def start(_type, _args) do Appsignal.Logger.Handler.add("phoenix")
e8207c1
, with the following changes:
memory_in_percentages
and swap_in_percentages
host metrics that represents metrics in percentages./snap/
disk mountpoints.log
and log_level
configuration options as atoms.warning
log level.See the changelogs for AppSignal for Elixir package 2.7.10 for more information.
disk_inode_usage
metric name format to not be interpreted as a JSON object.See the changelogs for AppSignal for Elixir package 2.7.9 for more information.
host_role
config option. This config option can be set per host to generate some metrics automatically per host and possibly do things like grouping in the future.sql_lexer
to v0.9.5. It adds sanitization support for the THEN
and ELSE
logical operators.See the changelogs for AppSignal for Elixir package 2.7.8 for more information.
Appsignal.Span.set_sample_data_if_nil
functionSee the changelogs for appsignal 2.7.6, appsignal_plug 2.0.15 and appsignal_phoenix 2.3.4 for more information.
APPSIGNAL_RUNNING_IN_CONTAINER
config option value before other environment factors to determine if the app is running in a container.See the Elixir package version 2.7.3 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!