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:
export OTEL_RESOURCE_ATTRIBUTES="\ attribute_key=attribute_value,\ ...,\ last_attribute_key=last_attribute_value"
Available options
- Required options
- Options
- app_path
- filter_attributes
- filter_function_parameters
- filter_request_payload
- filter_request_query_parameters
- filter_request_session_data
- ignore_actions
- ignore_errors
- ignore_namespaces
- request_headers
- response_headers
- send_function_parameters
- send_request_payload
- send_request_query_parameters
- send_request_session_data
environment
Resource attribute key | appsignal.config.environment |
---|---|
Required | yes |
Type | String |
Default value | nil (This is unset by default) |
Description
The environment of the app to be reported to AppSignal.
export OTEL_RESOURCE_ATTRIBUTES="\ appsignal.config.environment=production,\ ..."
host.name
Resource attribute key | host.name |
---|---|
Required | yes |
Type | String |
Default value | detected from system |
Description
The host.name
resource attribute helps AppSignal recognize different hosts for traces and tag the traces automatically with the hostname.
HOST_NAME=$(hostname || echo unknown) export OTEL_RESOURCE_ATTRIBUTES="\ host.name=$HOST_NAME,\ ..."
language_integration
Resource attribute key | appsignal.config.language_integration |
---|---|
Required | yes |
Type | String |
Default value | undefined |
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
.
export OTEL_RESOURCE_ATTRIBUTES="\ appsignal.config.language_integration=php,\ ..."
name
Resource attribute key | appsignal.config.name |
---|---|
Required | yes |
Type | String |
Default value | nil (This is unset by default) |
Description
Name of your application as it should be displayed on AppSignal.com.
export OTEL_RESOURCE_ATTRIBUTES="\ appsignal.config.name=My awesome app,\ ..."
push_api_key
Resource attribute key | appsignal.config.push_api_key |
---|---|
Required | yes |
Type | String |
Default value | nil (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.
export OTEL_RESOURCE_ATTRIBUTES="\ appsignal.config.push_api_key=00000000-0000-0000-0000-000000000000,\ ..."
revision
Resource attribute key | appsignal.config.revision |
---|---|
Required | yes |
Type | String |
Default value | nil (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.
REVISION=$(git rev-parse --short HEAD 2>/dev/null || echo unknown) export OTEL_RESOURCE_ATTRIBUTES="\ appsignal.config.revision=$REVISION,\ ..."
service.name
Resource attribute key | service.name |
---|---|
Required | yes |
Type | String |
Default value | undefined |
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.
export OTEL_RESOURCE_ATTRIBUTES="\ service.name=My service name,\ ..."
app_path
Resource attribute key | appsignal.config.app_path |
---|---|
Required | no |
Type | String |
Default value | undefined |
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.
export OTEL_RESOURCE_ATTRIBUTES="\ appsignal.config.app_path=$PWD,\ ..."
filter_attributes
Resource attribute key | appsignal.config.filter_attributes |
---|---|
Required | no |
Type | list(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:
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 key | appsignal.config.filter_function_parameters |
---|---|
Required | no |
Type | list(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:
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 key | appsignal.config.filter_request_payload |
---|---|
Required | no |
Type | list(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:
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 key | appsignal.config.filter_request_query_parameters |
---|---|
Required | no |
Type | list(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:
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 key | appsignal.config.filter_request_session_data |
---|---|
Required | no |
Type | list(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:
function encode() { echo -n "$@" | sed 's/,/%2C/g' } export OTEL_RESOURCE_ATTRIBUTES="\ appsignal.config.filter_session_data=$(encode "password,cvv"),\ ..."
ignore_actions
Resource attribute key | appsignal.config.ignore_actions |
---|---|
Required | no |
Type | list(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:
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 key | appsignal.config.ignore_errors |
---|---|
Required | no |
Type | list(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:
function encode() { echo -n "$@" | sed 's/,/%2C/g' } export OTEL_RESOURCE_ATTRIBUTES="\ appsignal.config.ignore_errors=$(encode "MyCustomError,ExpectedError"),\ ..."
ignore_namespaces
Resource attribute key | appsignal.config.ignore_namespaces |
---|---|
Required | no |
Type | list(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:
function encode() { echo -n "$@" | sed 's/,/%2C/g' } export OTEL_RESOURCE_ATTRIBUTES="\ appsignal.config.ignore_namespaces=$(encode "admin,secret"),\ ..."
request_headers
Resource attribute key | appsignal.config.request_headers |
---|---|
Required | no |
Type | list(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:
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 key | appsignal.config.response_headers |
---|---|
Required | no |
Type | list(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:
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 key | appsignal.config.send_function_parameters |
---|---|
Required | no |
Type | Boolean (true / false ) |
Default value | true |
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.
export OTEL_RESOURCE_ATTRIBUTES="\ appsignal.config.send_function_parameters=false,\ ..."
send_request_payload
Resource attribute key | appsignal.config.send_request_payload |
---|---|
Required | no |
Type | Boolean (true / false ) |
Default value | true |
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.
export OTEL_RESOURCE_ATTRIBUTES="\ appsignal.config.send_request_payload=false,\ ..."
send_request_query_parameters
Resource attribute key | appsignal.config.send_request_query_parameters |
---|---|
Required | no |
Type | Boolean (true / false ) |
Default value | true |
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.
export OTEL_RESOURCE_ATTRIBUTES="\ appsignal.config.send_request_query_parameters=false,\ ..."
send_request_session_data
Resource attribute key | appsignal.config.send_request_session_data |
---|---|
Required | no |
Type | Boolean (true / false ) |
Default value | true |
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.
export OTEL_RESOURCE_ATTRIBUTES="\ appsignal.config.send_request_session_data=false,\ ..."