Configuring OpenTelemetry resource attributes
You can configure OpenTelemetry to send data to AppSignal using resource attributes. Resource attributes are attributes that apply to every trace reported from the application using OpenTelemetry. You can configure resource attributes in your OpenTelemetry configuration file, this is also where you need to set up the OpenTelemetry exporter to send data to the AppSignal collector.App name
- Attribute name:
appsignal.config.name - Or as request header:
Appsignal-Config-Name - Type: String
- Required: Yes
App environment
- Attribute name:
appsignal.config.environment - Or as request header:
Appsignal-Config-Environment - Type: String
- Required: Yes
Push API key
- Attribute name:
appsignal.config.push_api_key - Or as request header:
Appsignal-Config-PushApiKey - Type: String
- Required: Yes
App revision
- Attribute name:
appsignal.config.revision - Or as request header:
Appsignal-Config-Revision - Type: String
- Required: Yes
Language integration
- Attribute name:
appsignal.config.language_integration - Or as request header:
Appsignal-Config-LanguageIntegration - Type: String
- Required: Yes
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, e.g. “python”, “rust”, “ruby”, “elixir”, “go” and “nodejs”.
OTP app name
- Attribute name:
appsignal.config.otp_app - Type: String
- Required: Yes, for Elixir apps
appsignal.config.otp_app resource attribute to detect which backtrace lines from errors belong to the application.
You can find the OTP app name for your application by calling IO.inspect(:application.get_application()) in your application and checking the output.
Service name
- Attribute name:
service.name - Or as request header:
OpenTelemetry-ServiceName - Type: String
- Required: Yes
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.
Hostname
- Attribute name:
host.name - Or as request header:
OpenTelemetry-HostName - Type: String
- Required: Yes
host.name resource attribute helps AppSignal recognize different hosts for traces and tag the traces automatically with the hostname.
App path
- Attribute name:
appsignal.config.app_path - Type: String
- Required: No
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.
Filter attributes
- Attribute name:
appsignal.config.filter_attributes - Type: Array
- Required: No
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.
Filter function parameters
- Attribute name:
appsignal.config.filter_function_parameters - Type: Array
- Default value: Empty
- Required: No
filter_function_parameters resource attribute allows you to filter out any function parameters set in the appsignal.function.parameters span attribute.
In the example below, values for the keys listed in the filter_function_parameters config option are replaced with [FILTERED].
Filter request query parameters
- Attribute name:
appsignal.config.filter_request_query_parameters - Type: Array
- Default value: Empty
- Required: No
filter_request_query_parameters resource attribute allows you to filter out any request query parameters set in the appsignal.request.query_parameters span attribute.
In the example below, values for the keys listed in the filter_request_query_parameters config option are replaced with [FILTERED].
Filter request payload
- Attribute name:
appsignal.config.filter_request_payload - Type: Array
- Default value: Empty
- Required: No
filter_request_payload resource attribute allows you to filter out any request payload data set in the appsignal.request.payload span attribute.
In the example below, values for the keys listed in the filter_request_payload config option are replaced with [FILTERED].
Filter request session data
- Attribute name:
appsignal.config.filter_request_session_data - Type: Array
- Default value: Empty
- Required: No
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, values for the keys listed in the filter_request_session_data config option are replaced with [FILTERED].
Ignore actions
- Attribute name:
appsignal.config.ignore_actions - Type: Array of Strings
- Required: No
ignore_actions resource attribute allows you to ignore specific actions from being reported to AppSignal. This can be useful to ignore health check endpoints or other actions that you don’t want to monitor.
Ignore errors
- Attribute name:
appsignal.config.ignore_errors - Type: Array of Strings
- Required: No
ignore_errors resource attribute 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.
Ignore namespaces
- Attribute name:
appsignal.config.ignore_namespaces - Type: Array of Strings
- Required: No
ignore_namespaces resource attribute 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.
Response headers
- Attribute name:
appsignal.config.response_headers - Type: Array of Strings
- Default value:
["content-length", "accept", "accept-charset", "accept-encoding", "accept-language", "cache-control", "connection", "range", "host"] - Required: No
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.
Request headers
- Attribute name:
appsignal.config.request_headers - Type: Array of Strings
- Default value:
["content-length", "accept", "accept-charset", "accept-encoding", "accept-language", "cache-control", "connection", "range", "host"] - Required: No
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 array.
Send function parameters
- Attribute name:
appsignal.config.send_function_parameters - Type: Boolean
- Default value:
true - Required: No
false no such data is sent to our servers.
These values are set with the appsignal.function.parameters span attribute.
Send request query parameter
- Attribute name:
appsignal.config.send_request_query_parameters - Type: Boolean
- Default value:
true - Required: No
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.
Send request payload
- Attribute name:
appsignal.config.send_request_payload - Type: Boolean
- Default value:
true - Required: No
false no such data is sent to our servers.
These values are set with the appsignal.request.payload span attribute.
Send request session data
- Attribute name:
appsignal.config.send_request_session_data - Type: Boolean
- Default value:
true - Required: No
false no such data is sent to our servers.
These values are set with the appsignal.request.session_data span attribute.