AppSignal Elixir configuration options

The following list includes all configuration options with the name of the environment variable and the name of the key in the configuration file.

For more information on how to configure AppSignal with a configuration file or system environment variables, see our Configuration topic.

Available options

active

Config file keyactive
System environment keyAPPSIGNAL_ACTIVE
Requiredyes
TypeBoolean (true / false)
Default valuefalse / detected by system
Available since version0.1.0

Description

Note: When the APPSIGNAL_PUSH_API_KEY environment variable is set, this defaults to true. This can be overridden by setting the APPSIGNAL_ACTIVE system environment variable to false: APPSIGNAL_ACTIVE=false.

Configure AppSignal to be active or not for a given environment. Most commonly used in the file configuration per environment.

env

Config file keyenv
System environment keyAPPSIGNAL_APP_ENV
Requiredyes
TypeAtom
Default valuedev
Available since version0.1.0
  • 0.9.2: The environment variable name for this configuration option was renamed from APPSIGNAL_ENVIRONMENT to APPSIGNAL_APP_ENV.

Description

The environment of the app to be reported to AppSignal. This option is set by default by our installer, to Mix.env. To override it, change the value in config/appsignal.exs (or your config file of choice).

elixir
# config/appsignal.exs # or config/config.exs config :appsignal, :config, env: Mix.env # Installer default # Set your own value config :appsignal, :config, env: :staging

To override the config option in the system environment, use the APPSIGNAL_APP_ENV environment variable.

sh
# The method of setting environment variables may differ on your system export APPSIGNAL_APP_ENV=staging mix run

The environment variable option is commonly used on platforms, such as Heroku, where apps run in the production environment by default. This setting allows an override to set the environment to staging, for example.

sh
heroku config:set APPSIGNAL_APP_ENV=staging
Note: Changing the name or environment of an existing app will create a new app on AppSignal.com.

name

Config file keyname
System environment keyAPPSIGNAL_APP_NAME
Requiredyes
TypeString
Default valuenil (This is unset by default)

Description

Name of your application as it should be displayed on AppSignal.com.

Note: Changing the name or environment of an existing app will create a new app on AppSignal.com.

otp_app

Config file keyotp_app
System environment keyAPPSIGNAL_OTP_APP
Requiredyes
TypeAtom
Default valuenil (This is unset by default)
Available since version2.0.0

Description

The OTP app name of your application, to be used for automatic configuration of instrumentation for libraries like Ecto.

push_api_key

Config file keypush_api_key
System environment keyAPPSIGNAL_PUSH_API_KEY
Requiredyes
TypeString
Default valuenil (This is unset by default)
Available since version0.1.0

Description

The organization-level authentication key to authenticate with our Push API.

Read more about the AppSignal Push API key.

Note: When the APPSIGNAL_PUSH_API_KEY system environment variable is set, the active option will default to true instead of false. This means AppSignal will be consider active for the loaded environment even if active is set to false in the config file. For more information see the active option.

bind_address

Config file keybind_address
System environment keyAPPSIGNAL_BIND_ADDRESS
Requiredno
TypeString
Default value127.0.0.1
Available since version2.7.7

Description

A valid IPv4 address the AppSignal agent uses as a binding for its TCP and UDP servers. Use a specific address if you only want the agent to listen to requests made to that address. Set this option to 0.0.0.0 to allow to receive requests from hosts using any IP address. By default it only listens to requests made on the same host. This option is applied to all the agent servers (StatsD, OpenTelemetry and NGINX).

ca_file_path

Config file keyca_file_path
System environment keyAPPSIGNAL_CA_FILE_PATH
Requiredno
TypeString
Default valuePackaged cacert.pem file path.
Available since version0.12.0

Description

Configure the path of the SSL certificate file. By default this points to the AppSignal vendored cacert.pem file in the package itself.

  • Use this option to point to another certificate file if there's a problem connecting to our API.
  • Note: The specified path cannot contain Operating Specific file system abstractions, such as the homedir symbol ~ for *NIX systems. This will be seen as a malformed path.

cpu_count

Config file keycpu_count
System environment keyAPPSIGNAL_CPU_COUNT
Requiredno
TypeFloat
Default valueundefined
Available since version2.9.1

Description

The available CPU capacity of the host, in number of CPUs. This is used to calculate the CPU usage percentage in the host metrics. If not set, the agent will attempt to automatically detect this from cgroups.

debug

Config file keydebug
System environment keyAPPSIGNAL_DEBUG
Requiredno
TypeBoolean (true / false)
Default valuefalse
Available since version1.0.0

Description

Warning: This config option is deprecated in Elixir package 2.2.8. Please use the log_level option instead for Elixir package 2.2.8 and newer.

Enable debug logging, this is usually only needed on request from support. With this option enabled AppSignal will log a lot more information about decisions that are made during metrics collection and when data is sent to AppSignal.com servers.

Enabling debug logging could have a slight impact on the disk usage and IO, especially on high-traffic sites. CPU overhead is minimal with the debug option enabled.

This option sets the severity level of AppSignal's internal logger. This configuration option does not affect the logging feature.

dns_servers

Config file keydns_servers
System environment keyAPPSIGNAL_DNS_SERVERS
Requiredno
Typelist(String)
Default value[]
Available since version1.3.0.beta.2

Description

Configure DNS servers for the AppSignal agent to use.

elixir
# config/config.exs config :appsignal, :config, dns_servers: ["8.8.8.8", "8.8.4.4"]
sh
# In the host environment export APPSIGNAL_DNS_SERVERS="8.8.8.8,8.8.4.4"

If you're affected by our DNS timeouts, try setting a DNS server manually using this option that doesn't use more than 4 dots in the server name.

  • Acceptable values: 8.8.8.8, my.custom.local.server.
  • Not acceptable values: foo, my.awesome.custom.local.dns.server.

If the DNS server cannot be reached the agent will fall back on the host's DNS configuration and output a message in the appsignal.log file: A problem occurred while setting DNS servers.

ecto_repos

Config file keyecto_repos
System environment keyAPPSIGNAL_ECTO_REPOS
Requiredno
Typelist(String)
Default valuenil
Available since version2.0.0

Description

Configure which Ecto repos to instrument queries for. If unset, AppSignal will automatically find your repos through your application configuration.

elixir
# config/config.exs config :appsignal, :config, ecto_repos: [AppsignalPhoenixExample.Repo, AppsignalPhoenixExample.AnotherRepo]
sh
# In the host environment export APPSIGNAL_ECTO_REPOS="AppsignalPhoenixExample.Repo,AppsignalPhoenixExample.AnotherRepo"

enable_error_backend

Config file keyenable_error_backend
System environment keyAPPSIGNAL_ENABLE_ERROR_BACKEND
Requiredno
TypeBoolean (true / false)
Default valuetrue
Available since version2.4.1

Description

Enables the error backend in the Elixir integration.

enable_host_metrics

Config file keyenable_host_metrics
System environment keyAPPSIGNAL_ENABLE_HOST_METRICS
Requiredno
TypeBoolean (true / false)
Default value`true / detected by system`

Description

Set this option to false to disable host metrics collection.

On Heroku and Dokku host metrics are disabled by default. This is done because these systems will report inaccurate metrics from within the containers. Host metrics collection on these systems cannot be enabled. For Heroku, use the Heroku log drain instead.

enable_minutely_probes

Config file keyenable_minutely_probes
System environment keyAPPSIGNAL_ENABLE_MINUTELY_PROBES
Requiredno
TypeBoolean (true / false)
Default valuetrue
Available since version1.10.1

Description

Enables the minutely probes system.

enable_nginx_metrics

Config file keyenable_nginx_metrics
System environment keyAPPSIGNAL_ENABLE_NGINX_METRICS
Requiredno
TypeBoolean (true / false)
Default valuefalse
Available since version2.5.2

Description

Set to true to enable the NGINX metrics server. See the NGINX metrics documentation for details.

When enabled, the AppSignal agent will listen to a localhost-bound server on port 27649. If you're running several AppSignal-instrumented applications in the same server, this configuration option can only be enabled in one of them.

enable_statsd

Config file keyenable_statsd
System environment keyAPPSIGNAL_ENABLE_STATSD
Requiredno
TypeBoolean (true / false)
Default valuefalse
Available since version2.2.6

Description

Enables the StatsD server in the AppSignal agent.

When enabled, the AppSignal agent will listen to a localhost-bound server on port 8125. If you're running several AppSignal-instrumented applications in the same server, this configuration option can only be enabled in one of them.

endpoint

Config file keyendpoint
System environment keyAPPSIGNAL_PUSH_API_ENDPOINT
Requiredno
TypeString
Default valuehttps://push.appsignal.com

Description

Configure the endpoint to send data to AppSignal. This setting will not have to be changed.

files_world_accessible

Config file keyfiles_world_accessible
System environment keyAPPSIGNAL_FILES_WORLD_ACCESSIBLE
Requiredno
TypeBoolean (true / false)
Default valuetrue
Available since version1.3.4

Description

If this is set to true the AppSignal working directory that is created is accessible for all users (Unix permissions 0666). This is often necessary because processes for the same app run under a different user. Set to false to disable this behaviour (Unix permissions 0644).

filter_parameters

Config file keyfilter_parameters
System environment keyAPPSIGNAL_FILTER_PARAMETERS
Requiredno
Typelist(String)
Default value[]

Description

List of parameter keys that should be ignored using AppSignal filtering. Their values will be replaced with [FILTERED] when transmitted to AppSignal. You can configure this with a list of keys in the configuration file.

elixir
# config/appsignal.exs config :appsignal, :config, filter_parameters: ["password", "secret"]

Read more about parameter filtering.

filter_session_data

Config file keyfilter_session_data
System environment keyAPPSIGNAL_FILTER_SESSION_DATA
Requiredno
Typelist(String)
Default value[]
Available since version1.6.0
  • An upgrade to version 1.6.3 or higher is recommended.

Description

List of session data keys that should be ignored using AppSignal filtering. Their values will be replaced with [FILTERED] when transmitted to AppSignal. You can configure this with a list of keys in the configuration file.

elixir
# config/appsignal.exs config :appsignal, :config, filter_session_data: ["name", "email", "api_token", "token"]

Read more about session data filtering.

host_role

Config file keyhost_role
System environment keyAPPSIGNAL_HOST_ROLE
Requiredno
TypeString
Default valuenil (This is unset by default)
Available since version2.7.7

Description

Group hosts by role and generate metrics based on this role. One such metric is the reporting_hosts counter metric. A good role indicates what the main role of the server is, like "webserver", "processor", "api", "database", "loadbalancer", etc.

hostname

Config file keyhostname
System environment keyAPPSIGNAL_HOSTNAME
Requiredno
TypeString
Default valuedetected from system
Available since version0.12.0

Description

This overrides the server's hostname. Useful for when you're unable to set a custom hostname or when a nondescript id is generated for you on hosting services.

http_proxy

Config file keyhttp_proxy
System environment keyAPPSIGNAL_HTTP_PROXY
Requiredno
TypeString
Default valuenil (This is unset by default)

Description

If you require the agent to connect to the Internet via a proxy set the complete proxy URL in this configuration key.

ignore_actions

Config file keyignore_actions
System environment keyAPPSIGNAL_IGNORE_ACTIONS
Requiredno
Typelist(String)
Default value[]

Description

List of actions that will be ignored, everything that happens including exceptions will not be transmitted to AppSignal.

Read more about ignoring actions.

ignore_errors

Config file keyignore_errors
System environment keyAPPSIGNAL_IGNORE_ERRORS
Requiredno
Typelist(String)
Default value[]

Description

List of error classes that will be ignored. Any exception raised with this error class will not be transmitted to AppSignal. Read more about ignoring errors.

ignore_namespaces

Config file keyignore_namespaces
System environment keyAPPSIGNAL_IGNORE_NAMESPACES
Requiredno
Typelist(String)
Default value[]
Available since version1.3.0

Description

List of namespaces that will be ignored. Any error raised or slow request that occurs in this namespace will not be send to AppSignal. Read more about namespaces.

instrument_absinthe

Config file keyinstrument_absinthe
System environment keyAPPSIGNAL_INSTRUMENT_ABSINTHE
Requiredno
TypeBoolean (true / false)
Default valuetrue
Available since version2.7.0

Description

Whether to automatically instrument Telemetry events for the Absinthe package integration, can be true or false.

instrument_ecto

Config file keyinstrument_ecto
System environment keyAPPSIGNAL_INSTRUMENT_ECTO
Requiredno
TypeBoolean (true / false)
Default valuetrue
Available since version2.5.1

Description

Whether to automatically instrument Telemetry events for the Ecto package integration, can be true or false.

instrument_finch

Config file keyinstrument_finch
System environment keyAPPSIGNAL_INSTRUMENT_FINCH
Requiredno
TypeBoolean (true / false)
Default valuetrue
Available since version2.5.1

Description

Whether to automatically instrument Telemetry events for the Finch package integration, can be true or false.

instrument_oban

Config file keyinstrument_oban
System environment keyAPPSIGNAL_INSTRUMENT_OBAN
Requiredno
TypeBoolean (true / false)
Default valuetrue
Available since version2.5.1

Description

Whether to automatically instrument Telemetry events for the Oban package integration, can be true or false.

instrument_tesla

Config file keyinstrument_tesla
System environment keyAPPSIGNAL_INSTRUMENT_TESLA
Requiredno
TypeBoolean (true / false)
Default valuetrue
Available since version2.7.3

Description

Whether to automatically instrument Telemetry events for the Tesla package integration, can be true or false.

log

Config file keylog
System environment keyAPPSIGNAL_LOG
Requiredno
TypeAtom
Default value:file

Description

This option configures what logger that AppSignal's internal logging functionality will use and does not affect the logging feature.


Note: At this time only the AppSignal integration supports the "stdout" log output feature. The AppSignal agent, which is used by the integration, does not support "stdout" log output. It will always write to the "appsignal.log" file.

Select which logger the AppSignal integration will use. Accepted values are file and stdout. See also the log_path configuration.

  • file (default)
    • Write all AppSignal logs to the file system.
  • stdout (default on Heroku)
    • Print AppSignal logs in the parent process' STDOUT instead of to a file. Useful with hosting solutions such as container systems and Heroku.

log_level

Config file keylog_level
System environment keyAPPSIGNAL_LOG_LEVEL
Requiredno
TypeString
Default valueinfo
Available since version2.2.8

Description

This option sets the severity level of AppSignal's internal logger and does not affect the logging feature.

Set the severity level of AppSignal's internal logger. If it is configured to "info" it will log all error, warning and info messages, but not log the debug messages.

Setting it to the levels "debug" or "trace" is usually only needed on request from support. Setting the level to "debug"/"trace" could have a slight impact on the disk usage and IO, especially on high-traffic sites. CPU overhead is minimal with the debug option enabled.

Accepted values:

  • error
  • warning
  • info
  • debug
  • trace

log_path

Config file keylog_path
System environment keyAPPSIGNAL_LOG_PATH
Requiredno
TypeString
Default value/tmp
Available since version1.0.0
  • 1.9.0: The default log path was changed from /tmp/appsignal/ to /tmp/.

Description

This option configures the location of AppSignal's internal logging file and does not affect the logging feature.


Note: The specified path cannot contain Operating Specific file system abstractions, such as the homedir symbol ~ for *NIX systems. This will be seen as a malformed path.

Override the location of the path (directory) where the appsignal.log file can be written to.

report_oban_errors

Config file keyreport_oban_errors
System environment keyAPPSIGNAL_REPORT_OBAN_ERRORS
Requiredno
TypeString
Default valueall
Available since version2.5.1

Description

When to report errors received by the Oban package integration's exception event handler while processing a job. Possible values are:

  • "none": do not report errors.
  • "all": always report errors.
  • "discard": only report errors when the job is discarded due to the error.

request_headers

Config file keyrequest_headers
System environment keyAPPSIGNAL_REQUEST_HEADERS
Requiredno
Typelist(String)
Default value["accept", "accept-charset", "accept-encoding", "accept-language", "cache-control", "connection", "content-length", "path-info", "range", "request-method", "request-uri", "server-name", "server-port", "server-protocol"]
Available since version1.6.0
  • Upgrade to 1.6.3 or higher is recommend.

Description

The request_headers config option contains a list of HTTP request headers which are read and stored by the AppSignal Elixir package.

This request_headers config option is an allowlist, which means that it will only take headers as specified by this config option. If this config option is unset it will use the AppSignal default.

Following list is the AppSignal package default.

elixir
# config/appsignal.exs config :appsignal, :config, request_headers: ~w( accept accept-charset accept-encoding accept-language cache-control connection content-length path-info range request-method request-uri server-name server-port server-protocol )

To configure AppSignal to not store any HTTP request headers on AppSignal transactions, configure the option with an empty list.

elixir
# config/appsignal.exs config :appsignal, :config, request_headers: []

revision

Config file keyrevision
System environment keyAPP_REVISION
Requiredno
TypeString
Default valuenil (This is unset by default)
Available since version1.5.0
  • 1.10.12: Auto detection for Heroku deploys with the Dyno Metadata labs feature enabled.
  • 2.7.6: Auto detection for Render deploys.

Description

Set the app revision to report the currently running version of your app. AppSignal will create a deploy marker when this value changes, and tag all incoming data with the current revision.

When your application is deployed to Render, or when it is deployed to Heroku and the Heroku Labs: Dyno Metadata feature is enabled, the AppSignal integration will automatically detect the Git commit of the current deployment and use it as the revision.

You can overwrite the automatically detected revisions in Heroku or Render by manually setting the revision config option to a custom value.

Read more about deploy markers on the deploy markers.

running_in_container

Config file keyrunning_in_container
System environment keyAPPSIGNAL_RUNNING_IN_CONTAINER
Requiredno
TypeBoolean (true / false)
Default valuedetected by agent

Description

AppSignal expects to be running on the same machine between different deploys. Set this key to true if the application or agent is running in a container, such as with Docker.

Newer versions of the AppSignal integration automatically detect its container environment, so no manual configuration is necessary. If you're having trouble with the automatic detection, please contact support.

This option is set to true automatically on Heroku.

send_environment_metadata

Config file keysend_environment_metadata
System environment keyAPPSIGNAL_SEND_ENVIRONMENT_METADATA
Requiredno
TypeBoolean (true / false)
Default valuetrue
Available since version2.2.8

Description

Send environment metadata about the app.

For more information please read about environment metadata.

send_params

Config file keysend_params
System environment keyAPPSIGNAL_SEND_PARAMS
Requiredno
TypeBoolean (true / false)
Default valuetrue
Available since version1.10.0

Description

Whether to skip sending request parameters to AppSignal.

For more information please read about send_params in filtering request parameters.

send_session_data

Config file keysend_session_data
System environment keyAPPSIGNAL_SEND_SESSION_DATA
Requiredno
TypeBoolean (true / false)
Default valuetrue
Available since version2.2.10

Description

Set this option to false to not send any session data with exception traces and performance issue samples.

skip_session_data

Config file keyskip_session_data
System environment keyAPPSIGNAL_SKIP_SESSION_DATA
Requiredno
TypeBoolean (true / false)
Default valuefalse

Description

Warning: This config option is deprecated in the Elixir package 2.2.10. Please use the send_session_data option instead for newer versions of the Elixir package.

statsd_port

Config file keystatsd_port
System environment keyAPPSIGNAL_STATSD_PORT
Requiredno
TypeInteger
Default value8125
Available since version2.7.2

Description

Set this option to configure the StatsD HTTP server port of the AppSignal agent process. Configure this port if another process is already running on the machine that is also using this port to avoid conflicts.

transaction_debug_mode

Config file keytransaction_debug_mode
System environment keyAPPSIGNAL_TRANSACTION_DEBUG_MODE
Requiredno
TypeBoolean (true / false)
Default valuefalse
Available since version1.11.4

Description

Warning: This config option is deprecated in Elixir package 2.2.9. Please use the log_level option instead for Elixir package 2.2.9 and newer.

Enable transaction debug mode. This enables very detailed logging of transactions and events which is useful when developing integrations or when events aren not tracked as expected. The log is only written if the general debug option is on as well.

This option sets the severity level of AppSignal's internal logger and does not affect the logging feature.

working_dir_path

Config file keyworking_dir_path
System environment keyAPPSIGNAL_WORKING_DIR_PATH
Requiredno
TypeString
Default valuedetected by agent
Available since version1.8.0

Description

Warning: This config option is deprecated in Elixir package 1.8.0. Please use the working_directory_path option instead for Elixir package 1.8.0 and newer.

Override the location where AppSignal for Elixir can store temporary files. Use this option if the default location is not suitable. See our how AppSignal operates page for more information about the purpose of this working directory.

If you are running multiple applications using AppSignal on the same server, use this configuration option to select different working directories for every AppSignal instance, otherwise the two instances could conflict with one another. For more information on this scenario see our running multiple applications on one host documentation.

elixir
# config/config.exs config :appsignal, :config, working_dir_path: "/tmp/project_1/"
Note: The specified path cannot contain Operating Specific file system abstractions, such as the homedir symbol ~ for *NIX systems. This will be seen as a malformed path.

working_directory_path

Config file keyworking_directory_path
System environment keyAPPSIGNAL_WORKING_DIRECTORY_PATH
Requiredno
TypeString
Default valuedetected by agent
Available since version1.8.0

Description

Override the location where AppSignal for Elixir can store temporary files. Use this option if the default location is not suitable. See our how AppSignal operates page for more information about the purpose of this working directory.

If you are running multiple applications using AppSignal on the same server, use this configuration option to select different working directories for every AppSignal instance, otherwise the two instances could conflict with one another. For more information on this scenario see our running multiple applications on one host documentation.

elixir
# config/appsignal.exs config :appsignal, :config, working_directory_path: "/tmp/project_1/"
Note: The specified path cannot contain Operating Specific file system abstractions, such as the homedir symbol ~ for *NIX systems. This will be seen as a malformed path.