PHP config options

AppSignal for PHP can be configured through OpenTelemetry resource attributes.

Resource attributes are attributes that apply that every trace reported from the application using OpenTelemetry.

These resource attributes should be configured in your application using environment variables, where you also configure the OpenTelemetry exporter to export to the AppSignal collector.

To configure the resource attributes, set an OTEL_RESOURCE_ATTRIBUTES environment variable, as shown below:

Shell
export OTEL_RESOURCE_ATTRIBUTES="\ attribute_key=attribute_value,\ ...,\ last_attribute_key=last_attribute_value"

Available options

environment

Resource attribute keyappsignal.config.environment
Requiredyes
TypeString
Default valuenil (This is unset by default)

Description

The environment of the app to be reported to AppSignal.

Shell
export OTEL_RESOURCE_ATTRIBUTES="\ appsignal.config.environment=production,\ ..."

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

host.name

Resource attribute keyhost.name
Requiredyes
TypeString
Default valuedetected from system

Description

The host.name resource attribute helps AppSignal recognize different hosts for traces and tag the traces automatically with the hostname.

Shell
HOST_NAME=$(hostname || echo unknown) export OTEL_RESOURCE_ATTRIBUTES="\ host.name=$HOST_NAME,\ ..."

language_integration

Resource attribute keyappsignal.config.language_integration
Requiredyes
TypeString
Default valueundefined

Description

AppSignal uses the language_integration resource attribute to detect the language of a trace and correctly parse exception backtraces.

To set this option, specify the language name in lowercase format: php.

Shell
export OTEL_RESOURCE_ATTRIBUTES="\ appsignal.config.language_integration=php,\ ..."

name

Resource attribute keyappsignal.config.name
Requiredyes
TypeString
Default valuenil (This is unset by default)

Description

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

Shell
export OTEL_RESOURCE_ATTRIBUTES="\ appsignal.config.name=My awesome app,\ ..."

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

push_api_key

Resource attribute keyappsignal.config.push_api_key
Requiredyes
TypeString
Default valuenil (This is unset by default)

Description

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

Read more about the AppSignal Push API key.

Shell
export OTEL_RESOURCE_ATTRIBUTES="\ appsignal.config.push_api_key=00000000-0000-0000-0000-000000000000,\ ..."

revision

Resource attribute keyappsignal.config.revision
Requiredyes
TypeString
Default valuenil (This is unset by default)

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.

Read more about deploy markers in the deploy markers topic.

Shell
REVISION=$(git rev-parse --short HEAD 2>/dev/null || echo unknown) export OTEL_RESOURCE_ATTRIBUTES="\ appsignal.config.revision=$REVISION,\ ..."

service.name

Resource attribute keyservice.name
Requiredyes
TypeString
Default valueundefined

Description

The service.name resource attribute helps AppSignal recognize different services for traces and groups the traces automatically in a namespace based on the service name.

Choose a name that fits your application, like "Web server", "Background worker", "Email service", "Authentication service", etc.

Shell
export OTEL_RESOURCE_ATTRIBUTES="\ service.name=My service name,\ ..."

app_path

Resource attribute keyappsignal.config.app_path
Requiredno
TypeString
Default valueundefined

Description

The location of the app on the host's file system.

The app_path resource attribute helps AppSignal clean up backtraces by stripping away the absolute app path of backtrace lines. This way only paths within the context of the project directory is shown. This makes our Backtrace links feature possible.

Shell
export OTEL_RESOURCE_ATTRIBUTES="\ appsignal.config.app_path=$PWD,\ ..."

filter_attributes

Resource attribute keyappsignal.config.filter_attributes
Requiredno
Typelist(String)
Default value[]

Description

The filter_attributes resource attribute allows you to filter out specific attributes from being reported to AppSignal. This can be useful to filter out sensitive or non-relevant information from being reported.

If an attribute is filtered out this way, it will not show up in the interface at all.

The expected format is a comma-separated list of values. The commas must be percent-encoded (replaced with %2C) in the environment variable. You can use the encode function provided in the snippet below to encode the list of values:

Shell
function encode() { echo -n "$@" | sed 's/,/%2C/g' } export OTEL_RESOURCE_ATTRIBUTES="\ appsignal.config.filter_attributes=$(encode "my.secret.attribute,some.opentelemetry.attribute"),\ ..."

filter_function_parameters

Resource attribute keyappsignal.config.filter_function_parameters
Requiredno
Typelist(String)
Default value[]

Description

This resource attribute allows you to filter out any function parameters set in the appsignal.function.parameters span attribute.

In the example below, the keys set in the filter_function_parameters config option will be replaced with [FILTERED] before being sent to our servers.

The expected format is a comma-separated list of values. The commas must be percent-encoded (replaced with %2C) in the environment variable. You can use the encode function provided in the snippet below to encode the list of values:

Shell
function encode() { echo -n "$@" | sed 's/,/%2C/g' } export OTEL_RESOURCE_ATTRIBUTES="\ appsignal.config.filter_function_parameters=$(encode "api_token,secret"),\ ..."

filter_request_payload

Resource attribute keyappsignal.config.filter_request_payload
Requiredno
Typelist(String)
Default value[]

Description

This resource attribute allows you to filter out any request payload data set in the appsignal.request.payload span attribute.

In the example below, the keys set in the filter_request_payload config option will be replaced with [FILTERED] before being sent to our servers.

Read more about request query parameter filtering.

The expected format is a comma-separated list of values. The commas must be percent-encoded (replaced with %2C) in the environment variable. You can use the encode function provided in the snippet below to encode the list of values:

Shell
function encode() { echo -n "$@" | sed 's/,/%2C/g' } export OTEL_RESOURCE_ATTRIBUTES="\ appsignal.config.filter_request_payload=$(encode "password,cvv"),\ ..."

filter_request_query_parameters

Resource attribute keyappsignal.config.filter_request_query_parameters
Requiredno
Typelist(String)
Default value[]

Description

This resource attribute allows you to filter out any request query parameters set in the appsignal.request.query_parameters span attribute.

In the example below, the keys set in the filter_request_query_parameters config option will be replaced with [FILTERED] before being sent to our servers.

Read more about request query parameter filtering.

The expected format is a comma-separated list of values. The commas must be percent-encoded (replaced with %2C) in the environment variable. You can use the encode function provided in the snippet below to encode the list of values:

Shell
function encode() { echo -n "$@" | sed 's/,/%2C/g' } export OTEL_RESOURCE_ATTRIBUTES="\ appsignal.config.filter_request_query_parameters=$(encode "password,cvv"),\ ..."

filter_request_session_data

Resource attribute keyappsignal.config.filter_request_session_data
Requiredno
Typelist(String)
Default value[]

Description

The filter_request_session_data resource attribute allows you to filter out any request session data set in the appsignal.request.session_data span attribute.

In the example below, the keys set in the filter_request_session_data config option will be replaced with [FILTERED] before being sent to our servers.

Read more about request session data filtering.

The expected format is a comma-separated list of values. The commas must be percent-encoded (replaced with %2C) in the environment variable. You can use the encode function provided in the snippet below to encode the list of values:

Shell
function encode() { echo -n "$@" | sed 's/,/%2C/g' } export OTEL_RESOURCE_ATTRIBUTES="\ appsignal.config.filter_session_data=$(encode "password,cvv"),\ ..."

ignore_actions

Resource attribute keyappsignal.config.ignore_actions
Requiredno
Typelist(String)
Default value[]

Description

With this config option you can specify a list of actions that will be ignored by AppSignal. Everything that happens including exceptions will not be transmitted to AppSignal. This can be useful to ignore health check endpoints or other actions that you don't want to monitor.

Read more about ignoring actions.

The expected format is a comma-separated list of values. The commas must be percent-encoded (replaced with %2C) in the environment variable. You can use the encode function provided in the snippet below to encode the list of values:

Shell
function encode() { echo -n "$@" | sed 's/,/%2C/g' } export OTEL_RESOURCE_ATTRIBUTES="\ appsignal.config.ignore_actions=$(encode "GET /health_check,POST /ping"),\ ..."

ignore_errors

Resource attribute keyappsignal.config.ignore_errors
Requiredno
Typelist(String)
Default value[]

Description

This config option allows you to ignore specific errors from being reported to AppSignal. This can be useful to ignore expected errors or errors that can't be solved.

Read more about ignoring errors.

The expected format is a comma-separated list of values. The commas must be percent-encoded (replaced with %2C) in the environment variable. You can use the encode function provided in the snippet below to encode the list of values:

Shell
function encode() { echo -n "$@" | sed 's/,/%2C/g' } export OTEL_RESOURCE_ATTRIBUTES="\ appsignal.config.ignore_errors=$(encode "MyCustomError,ExpectedError"),\ ..."

ignore_namespaces

Resource attribute keyappsignal.config.ignore_namespaces
Requiredno
Typelist(String)
Default value[]

Description

This config option allows you to ignore specific namespaces from being reported to AppSignal. This can be useful to ignore specific parts of your application from being monitored.

Read more about namespaces.

The expected format is a comma-separated list of values. The commas must be percent-encoded (replaced with %2C) in the environment variable. You can use the encode function provided in the snippet below to encode the list of values:

Shell
function encode() { echo -n "$@" | sed 's/,/%2C/g' } export OTEL_RESOURCE_ATTRIBUTES="\ appsignal.config.ignore_namespaces=$(encode "admin,secret"),\ ..."

request_headers

Resource attribute keyappsignal.config.request_headers
Requiredno
Typelist(String)
Default value["accept", "accept-charset", "accept-encoding", "accept-language", "cache-control", "connection", "content-length", "host", "range"]

Description

Configure which request headers to include when a request is made to an HTTP server. This option is an allowlist. It only includes the headers that are configured. If the list is empty, no headers are included.

The request headers are read from the http.request.header.<key> OpenTelemetry span attributes, where <key> is the normalized header name (lowercase).

To not set any headers, explicitly set the resource attribute value to an empty value.

The expected format is a comma-separated list of values. The commas must be percent-encoded (replaced with %2C) in the environment variable. You can use the encode function provided in the snippet below to encode the list of values:

Shell
function encode() { echo -n "$@" | sed 's/,/%2C/g' } # Only send these specific headers export OTEL_RESOURCE_ATTRIBUTES="\ appsignal.config.request_headers=$(encode "accept,request_method,content_length"),\ ..." # Do not send any headers export OTEL_RESOURCE_ATTRIBUTES="\ appsignal.config.request_headers=,\ ..."

response_headers

Resource attribute keyappsignal.config.response_headers
Requiredno
Typelist(String)
Default value["accept", "accept-charset", "accept-encoding", "accept-language", "cache-control", "connection", "content-length", "host", "range"]

Description

Configure which response headers to include when a request is made by an HTTP client. This option is an allowlist. It only includes the headers that are configured. If the list is empty, no headers are included.

The response headers are read from the http.response.header.<key> OpenTelemetry span attributes, where <key> is the normalized header name (lowercase).

To not set any headers, explicitly set the resource attribute value to an empty array.

The expected format is a comma-separated list of values. The commas must be percent-encoded (replaced with %2C) in the environment variable. You can use the encode function provided in the snippet below to encode the list of values:

Shell
function encode() { echo -n "$@" | sed 's/,/%2C/g' } # Only send these specific headers export OTEL_RESOURCE_ATTRIBUTES="\ appsignal.config.response_headers=$(encode "accept,request_method,content_length"),\ ..." # Do not send any headers export OTEL_RESOURCE_ATTRIBUTES="\ appsignal.config.response_headers=,\ ..."

send_function_parameters

Resource attribute keyappsignal.config.send_function_parameters
Requiredno
TypeBoolean (true / false)
Default valuetrue

Description

Configure whether to include function parameters in traces. If set to false no such data is sent to our servers.

These values are set with the appsignal.function.parameters span attribute.

Shell
export OTEL_RESOURCE_ATTRIBUTES="\ appsignal.config.send_function_parameters=false,\ ..."

send_request_payload

Resource attribute keyappsignal.config.send_request_payload
Requiredno
TypeBoolean (true / false)
Default valuetrue

Description

Configure whether to send request payload data in traces. If set to false no such data is sent to our servers.

These values are set with the appsignal.request.payload span attribute.

For more information please read about request payload filtering.

Shell
export OTEL_RESOURCE_ATTRIBUTES="\ appsignal.config.send_request_payload=false,\ ..."

send_request_query_parameters

Resource attribute keyappsignal.config.send_request_query_parameters
Requiredno
TypeBoolean (true / false)
Default valuetrue

Description

Configure whether to include request query parameters in traces. If set to false no such data is sent to our servers.

These values are set with the appsignal.request.query_parameters span attribute.

For more information please read about request parameter filtering.

Shell
export OTEL_RESOURCE_ATTRIBUTES="\ appsignal.config.send_request_query_parameters=false,\ ..."

send_request_session_data

Resource attribute keyappsignal.config.send_request_session_data
Requiredno
TypeBoolean (true / false)
Default valuetrue

Description

Configure whether to send request session data in traces. If set to false no such data is sent to our servers.

These values are set with the appsignal.request.session_data span attribute.

For more information please read about request session data filtering.

Shell
export OTEL_RESOURCE_ATTRIBUTES="\ appsignal.config.send_request_session_data=false,\ ..."