PHP Configuration

Configuration Options

The PHP agent can be configured via either environment variables or code.

Environment Variables

You can also configure Scout APM via environment variables. To configure Scout via enviroment variables, uppercase the config key and prefix it with SCOUT_. For example, to set the key configuration via environment variables use: export SCOUT_KEY=YOURKEY

Code based

Scout APM variables can also be set via code:

For Laravel, you can use a skeleton configuration file

For Symfony, you can configure Scout in your config/packages/scoutapm.xml file

Common Configurations

Setting Name Description Default Required
key The organization API key. Yes
name Name of the application (ex: ‘Photos App’). Yes
monitor Whether monitoring data should be reported. false Yes
errors_enabled Whether Error Monitoring should be enabled. false No
log_level Override the SCOUT log level. Can only be used to quiet the agent, will not override the underlying logger’s level "info" No

Additional Configurations

Setting Name Description Default Required
revision_sha The Git SHA associated with this release. See docs No
uri_reporting Whether to include, exclude, or partially include parameters the reported URI. See below for more info path No
uri_filtered_params A string containing a JSON array of filtered_params when uri_reporting is set to filtered_params. See below for more info See default values below No
scm_subdirectory The relative path from the base of your Git repo to the directory which contains your application code. No
ignore A string containing a JSON array of endpoints that Scout should ignore. [] No
disabled_instruments A string containing a JSON array of instruments that Scout should not install. [] No
hostname The hostname the metrics should be aggregrated under. hostname No
log_payload_content Will log the payload that gets sent to the core agent. Useful for troubleshooting No
errors_ignored_exceptions Excludes certain exceptions from being reported [] No
errors_filtered_params Filtered parameters in exceptions [password, s3-key, scout_key] No

Core Agent Configurations

Setting Name Description Default Required
core_agent_dir Path to create the directory which will store the Core Agent. /tmp/scout_apm_core No
core_agent_download Whether to download the Core Agent automatically, if needed. True No
core_agent_launch Whether to start the Core Agent automatically, if needed. True No
core_agent_permissions The permission bits to set when creating the directory of the Core Agent. 700 No
core_agent_full_name The release/url we look for when downloading the core-agent. Auto-detected No
core_agent_triple If you are running a MUSL based Linux (such as ArchLinux), you may need to explicitly specify the platform triple. E.g. x86_64-unknown-linux-musl Auto detected No
core_agent_log_level The log level of the core agent process. This should be one of: "trace", "debug", "info", "warn", "error". This does not affect the log level of the PHP library. To change that, directly configure logging as per the documentation. "info" No
core_agent_log_file The log file for the Core Agent to write its logs to. If not set, it won’t be written. This does not affect the logging configuration of the Php library. To change that, directly configure the php logging module as per the below documentation "info" No
core_agent_config_file Point to a configuration file for the Core Agent. This may be useful for debugging your setup with files provided by Scout APM staff. No
core_agent_triple If you are running a MUSL based Linux (such as ArchLinux), you may need to explicitly specify the platform triple. E.g. x86_64-unknown-linux-musl Auto detected No
core_agent_socket_path The path to the socket to connect to the Core Agent, passed to it when launching. This may be either a TCP address, in the format tcp://<address>:<port>, or an absolute path to create as a Unix socket. The deafult is to use TCP. Prior to version 5.0.0, this defaulted to using a Unix socket in the same directoy as the core agent tcp://127.0.0.1:6590 No

Environments

It typically makes sense to treat each environment (production, staging, etc) as a separate application within Scout and ignore the development and test environments. Configure a unique app name for each environment as Scout aggregates data by the app name.

Ex:

export SCOUT_KEY=YOURKEY
export SCOUT_NAME=YOURAPPNAME (Production)

URI Reporting

Whether to include, exclude, or partially include parameters when reporting the URI. Possible values include, full_path (all parameters reported), filtered_params (see uri_filtered_params or below for more info), or path (remove all parameters). In 6.4+ the default is path, in 6.3 and lower the default is full_path

URI Filtered Parameters

By default, the value of uri_filtered_params is ['access', 'access_token', 'api_key' 'apikey', 'auth', 'auth_token', 'card', 'certificate', 'credentials', 'crypt', 'key', 'mysql_pwd', 'otp', 'passwd', 'password', 'private', 'protected', 'salt', 'secret', 'ssn', 'stripetoken', 'token']

When uri_filtered_params is set, we do not merge the default list and the new. To add or remove parameters from this filtering list, we suggest copying the above default list and making changes to it accordingly.

See the PHP agent’s repo for more info:

https://github.com/scoutapp/scout-apm-php/blob/master/src/Config/Source/DefaultSource.php