Ruby gem 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
- Required options
- Options
- ca_file_path
- debug
- dns_servers
- enable_allocation_tracking
- enable_frontend_error_catching
- enable_host_metrics
- enable_minutely_probes
- enable_statsd
- endpoint
- files_world_accessible
- filter_parameters
- filter_session_data
- hostname
- http_proxy
- ignore_actions
- ignore_errors
- ignore_namespaces
- instrument_net_http
- instrument_redis
- instrument_sequel
- log
- log_level
- log_path
- request_headers
- revision
- running_in_container
- send_environment_metadata
- send_params
- send_session_data
- skip_session_data
- transaction_debug_mode
- working_dir_path
- working_directory_path
active
Config file key | active |
---|---|
System environment key | APPSIGNAL_ACTIVE |
Required | yes |
Type | Boolean (true / false ) |
Default value | false / detected by system |
Available since version | 0.3.0 |
0.11.6 : Support added for the environment variable option. |
Description
Configure AppSignal to be active or not for a given environment. Most commonly used in the file configuration per environment.
APPSIGNAL_APP_ENV
System environment key | APPSIGNAL_APP_ENV |
---|---|
Required | yes |
Type | String |
Default value | "" / detected by system |
Available since version | 0.11.8 |
1.3.0 : Support added for Padrino. | |
1.3.6 : Support added for Sinatra. | |
2.0.4 : Standardizes the behavior for all configuration. |
Description
The environment of the app to be reported to AppSignal. This config option will be automatically detected in Rails apps. For Rails apps the RAILS_ENV
variable is used to detect the environment. For apps using other frameworks or none at all, the RACK_ENV
environment variable is used.
To override the automatic detecting, use the APPSIGNAL_APP_ENV
environment variable.
export APPSIGNAL_APP_ENV=staging
rackup
This option will be used to load the configuration from the config files in which the AppSignal configuration is stored.
The environment variable option is commonly used on platforms where apps run in the production
environment by default, such as Heroku. This setting allows an override to set the environment to staging
, for example.
heroku config:set APPSIGNAL_APP_ENV=staging
Custom environments in config file
There is no env
key available in the config/appsignal.yml
file. If you wish to dynamically set the environment name for an app in the config file it's possible to customize your config file to use the environment to create an environment.
# config/appsignal.yml
<%= ENV["APPSIGNAL_APP_ENV"] %>:
active: true
If you use another environment variable than APPSIGNAL_APP_ENV
make sure that matches the value is any of the auto detected environment variable names (RAILS_ENV
and RACK_ENV
) or the value given to Appsignal::Config.new
.
name
Config file key | name |
---|---|
System environment key | APPSIGNAL_APP_NAME |
Required | yes |
Type | String |
Default value | nil (This is unset by default) |
Available since version | 1.0.0 |
Description
Name of your application as it should be displayed on AppSignal.com. If you use Ruby on Rails the gem will auto-detect the name and you can leave this empty. For other frameworks setting this is mandatory.
push_api_key
Config file key | push_api_key |
---|---|
System environment key | APPSIGNAL_PUSH_API_KEY |
Required | yes |
Type | String |
Default value | nil (This is unset by default) |
Available since version | 0.1.0 |
Description
The organization-level authentication key to authenticate with our Push API.
Read more about the AppSignal Push API key.
ca_file_path
Config file key | ca_file_path |
---|---|
System environment key | APPSIGNAL_CA_FILE_PATH |
Required | no |
Type | String |
Default value | Packaged cacert.pem file path. |
Available since version | 1.3.5 |
Description
Configure the path of the SSL certificate file. By default this points to the AppSignal vendored cacert.pem
file in the gem itself.
- Use this option to point to another certificate file if there's a problem connecting to our API.
debug
Config file key | debug |
---|---|
System environment key | APPSIGNAL_DEBUG |
Required | no |
Type | Boolean (true / false ) |
Default value | false |
Available since version | 1.0.0 |
Deprecated since version 3.0.16 in favor of the log_level config option. |
Description
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.
dns_servers
Config file key | dns_servers |
---|---|
System environment key | APPSIGNAL_DNS_SERVERS |
Required | no |
Type | Array<String> |
Default value | [] |
Available since version | 2.2.0.beta.1 |
2.11.0 : Support added for the system environment option. |
Description
Configure DNS servers for the AppSignal agent to use.
# config/appsignal.yml
default: &defaults
dns_servers:
- 8.8.8.8
- 8.8.4.4
# 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
.
enable_allocation_tracking
Config file key | enable_allocation_tracking |
---|---|
System environment key | APPSIGNAL_ENABLE_ALLOCATION_TRACKING |
Required | no |
Type | Boolean (true / false ) |
Default value | true |
Available since version | 1.0.0 |
Description
Set this option to false
to disable tracking of the number of allocated objects in Ruby.
enable_frontend_error_catching
Config file key | enable_frontend_error_catching |
---|---|
System environment key | APPSIGNAL_ENABLE_FRONTEND_ERROR_CATCHING |
Required | no |
Type | Boolean (true / false ) |
Default value | false |
Available since version | 1.0.0 |
3.0.0 : Removed from the gem. See our upgrade guide for more information. |
Description
Enable the experimental front-end error catching system. This will add a route to your app on /appsignal_error_catcher
that can be used to catch JavaScript error and send them to AppSignal. You can configure this route with frontend_error_catching_path
.
enable_host_metrics
Config file key | enable_host_metrics |
---|---|
System environment key | APPSIGNAL_ENABLE_HOST_METRICS |
Required | no |
Type | Boolean (true / false ) |
Default value |
|
Available since version | 1.2.0 |
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 key | enable_minutely_probes |
---|---|
System environment key | APPSIGNAL_ENABLE_MINUTELY_PROBES |
Required | no |
Type | Boolean (true / false ) |
Default value | true |
Available since version | 1.3.0 |
2.9.0 : Default value was changed to true . |
Description
Enables the minutely probes system.
enable_statsd
Config file key | enable_statsd |
---|---|
System environment key | APPSIGNAL_ENABLE_STATSD |
Required | no |
Type | Boolean (true / false ) |
Default value | true |
Available since version | 3.0.14 |
Description
Enables the StatsD server in the AppSignal agent.
endpoint
Config file key | endpoint |
---|---|
System environment key | APPSIGNAL_PUSH_API_ENDPOINT |
Required | no |
Type | String |
Default value | https://push.appsignal.com |
Available since version | 0.1.0 |
1.0.0 : Support for system environment variable added. |
Description
Configure the endpoint to send data to AppSignal. This setting will not have to be changed.
files_world_accessible
Config file key | files_world_accessible |
---|---|
System environment key | APPSIGNAL_FILES_WORLD_ACCESSIBLE |
Required | no |
Type | Boolean (true / false ) |
Default value | true |
Available since version | 2.3.6 |
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 key | filter_parameters |
---|---|
System environment key | APPSIGNAL_FILTER_PARAMETERS |
Required | no |
Type | Array<String> |
Default value | [] |
Available since version | 1.3.0 |
2.3.0 : This config option is also used for argument filtering in background job integrations. |
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.
# config/appsignal.yml
default: &defaults
filter_parameters:
- password
- email
- api_token
- token
Read more about parameter filtering.
filter_session_data
Config file key | filter_session_data |
---|---|
System environment key | APPSIGNAL_FILTER_SESSION_DATA |
Required | no |
Type | Array<String> |
Default value | [] |
Available since version | 2.6.0 |
An upgrade to version 2.6.1 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.
# config/appsignal.yml
default: &defaults
filter_session_data:
- name
- email
- api_token
- token
Read more about session data filtering.
hostname
Config file key | hostname |
---|---|
System environment key | APPSIGNAL_HOSTNAME |
Required | no |
Type | String |
Default value | detected from system |
Available since version | 1.3.6 |
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 key | http_proxy |
---|---|
System environment key | APPSIGNAL_HTTP_PROXY |
Required | no |
Type | String |
Default value | nil (This is unset by default) |
Available since version | 0.11.13 |
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 key | ignore_actions |
---|---|
System environment key | APPSIGNAL_IGNORE_ACTIONS |
Required | no |
Type | Array<String> |
Default value | [] |
Available since version | 0.10.0 |
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 key | ignore_errors |
---|---|
System environment key | APPSIGNAL_IGNORE_ERRORS |
Required | no |
Type | Array<String> |
Default value | [] |
Available since version | 0.1.0 |
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 key | ignore_namespaces |
---|---|
System environment key | APPSIGNAL_IGNORE_NAMESPACES |
Required | no |
Type | Array<String> |
Default value | [] |
Available since version | 2.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_net_http
Config file key | instrument_net_http |
---|---|
System environment key | APPSIGNAL_INSTRUMENT_NET_HTTP |
Required | no |
Type | Boolean (true / false ) |
Default value | true |
Available since version | 0.9.0 |
Description
Whether to add instrumentation for net/http
calls, can be true
or false
.
instrument_redis
Config file key | instrument_redis |
---|---|
System environment key | APPSIGNAL_INSTRUMENT_REDIS |
Required | no |
Type | Boolean (true / false ) |
Default value | true |
Available since version | 1.0.0 |
Description
Whether to enable the instrumentation for Redis queries using the Redis gem, can be true
or false
.
instrument_sequel
Config file key | instrument_sequel |
---|---|
System environment key | APPSIGNAL_INSTRUMENT_SEQUEL |
Required | no |
Type | Boolean (true / false ) |
Default value | true |
Available since version | 1.0.0 |
Description
Whether to add instrumentation for sequel
queries using the Sequel gem, can be true
or false
.
log
Config file key | log |
---|---|
System environment key | APPSIGNAL_LOG |
Required | no |
Type | String |
Default value | file |
Available since version | 2.0.0 |
Description
Select which logger to the AppSignal agent should 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 key | log_level |
---|---|
System environment key | APPSIGNAL_LOG_LEVEL |
Required | no |
Type | String |
Default value | info |
Available since version | 3.0.16 |
Description
Set the severity level of the AppSignal 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 key | log_path |
---|---|
System environment key | APPSIGNAL_LOG_PATH |
Required | no |
Type | String |
Default value | ./log |
Available since version | 1.0.0 |
Description
Override the location of the path (directory) where the appsignal.log
file can be written to.
request_headers
Config file key | request_headers |
---|---|
System environment key | APPSIGNAL_REQUEST_HEADERS |
Required | no |
Type | Array<String> |
Default value | ["HTTP_ACCEPT", "HTTP_ACCEPT_CHARSET", "HTTP_ACCEPT_ENCODING", "HTTP_ACCEPT_LANGUAGE", "HTTP_CACHE_CONTROL", "HTTP_CONNECTION", "CONTENT_LENGTH", "PATH_INFO", "HTTP_RANGE", "REQUEST_METHOD", "REQUEST_URI", "SERVER_NAME", "SERVER_PORT", "SERVER_PROTOCOL"] |
Available since version | 2.6.0 |
Upgrade to 2.6.1 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 Ruby gem.
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 gem default.
# config/appsignal.yml
default: &defaults
request_headers:
- HTTP_ACCEPT
- HTTP_ACCEPT_CHARSET
- HTTP_ACCEPT_ENCODING
- HTTP_ACCEPT_LANGUAGE
- HTTP_CACHE_CONTROL
- HTTP_CONNECTION
- CONTENT_LENGTH
- PATH_INFO
- HTTP_RANGE
- REQUEST_METHOD
- REQUEST_URI
- SERVER_NAME
- SERVER_PORT
- SERVER_PROTOCOL
Note that AppSignal reads the headers from your app and they may not match 1 to 1 with what is being sent in the browser/client. In Rack apps (Rails, Sinatra, etc) all custom headers are prefixed with the HTTP_
string, all header names are uppercased and dashes (-
) are replaced with underscores (_
).
For example, the X-Hub-Signature
header can be access by your app and AppSignal with the HTTP_X_HUB_SIGNATURE
name.
To configure AppSignal to not store any HTTP request headers on AppSignal transactions, configure the option with an empty array.
# config/appsignal.yml
default: &defaults
request_headers: []
revision
Config file key | revision |
---|---|
System environment key | APP_REVISION |
Required | no |
Type | String |
Default value | nil (This is unset by default) |
Available since version | 2.6.0 |
An upgrade to 2.6.1 or higher is recommended when using this option. | |
2.9.13 : Auto detection for Heroku deploys with the Dyno Metadata labs feature enabled. | |
2.9.14 : Do not use this release if you depend on the Heroku dyno metadata detection. |
Description
Set the app revision for the currently running version of your app. Used to create deploy markers and tag all incoming data to a certain deploy for the host.
When using Heroku with the Heroku Labs: Dyno Metadata enabled it will automatically set the revision
config option to to the HEROKU_SLUG_COMMIT
system environment variable. This will automatically report new deploys when the Heroku app gets deployed. The revision can still be overwritten by setting the revision
config option yourself.
Read more about deploy markers on the deploy markers.
running_in_container
Config file key | running_in_container |
---|---|
System environment key | APPSIGNAL_RUNNING_IN_CONTAINER |
Required | no |
Type | Boolean (true / false ) |
Default value | detected by Ruby gem |
Available since version | 1.0.0 |
Automatically detected since version 2.0 |
Description
AppSignal expects to be running on the same machine between different deploys. Set this key to true
if you use a container based deployment system such as 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 key | send_environment_metadata |
---|---|
System environment key | APPSIGNAL_SEND_ENVIRONMENT_METADATA |
Required | no |
Type | Boolean (true / false ) |
Default value | true |
Available since version | 2.11.0 |
Description
Send environment metadata about the app.
For more information please read about environment metadata.
send_params
Config file key | send_params |
---|---|
System environment key | APPSIGNAL_SEND_PARAMS |
Required | no |
Type | Boolean (true / false ) |
Default value | true |
Available since version | 0.9.0 |
1.3.0 : Support added for the system environment option. |
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 key | send_session_data |
---|---|
System environment key | APPSIGNAL_SEND_SESSION_DATA |
Required | no |
Type | Boolean (true / false ) |
Default value | true |
Available since version | 3.0.20 |
Description
Set this option to false
to not send any session data with exception traces and performance issue samples.
skip_session_data
Config file key | skip_session_data |
---|---|
System environment key | APPSIGNAL_SKIP_SESSION_DATA |
Required | no |
Type | Boolean (true / false ) |
Default value | false |
Available since version | 0.11.0 |
3.0.20 : Deprecated in favor of send_session_data . |
Description
transaction_debug_mode
Config file key | transaction_debug_mode |
---|---|
System environment key | APPSIGNAL_TRANSACTION_DEBUG_MODE |
Required | no |
Type | Boolean (true / false ) |
Default value | false |
Available since version | 2.9.18 |
Deprecated since version 3.0.16 in favor of the log_level config option. |
Description
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.
working_dir_path
Config file key | working_dir_path |
---|---|
System environment key | APPSIGNAL_WORKING_DIR_PATH |
Required | no |
Type | String |
Default value | detected by agent |
Description
working_directory_path
Config file key | working_directory_path |
---|---|
System environment key | APPSIGNAL_WORKING_DIRECTORY_PATH |
Required | no |
Type | String |
Default value | detected by agent |
Available since version | 2.7.0 |
2.10.12 : Support added for the system environment option. | |
Please use the working_dir_path option on versions older than 2.7.0. |
Description
Override the location where AppSignal for Ruby 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.
# config/appsignal.yml
default: &defaults
working_directory_path: "/tmp/project_1/"