Request Header Collection

AppSignal collects headers for HTTP requests by default for supported frameworks. This data may help track down errors or performance issues that were caused by request header data a client is sending. In compliance with GDPR, AppSignal collects a minimal amount of headers by default. To comply with GDPR rules, collecting no user identifiable data, AppSignal collects a very limited amount of headers by default.

To further limit the collection of header data, you can configure which headers AppSignal collects.

Read more about request header filtering and what types of headers to set up filtering for in our Request Header Collection documentation.

Do not send Personal Identifiable Information (PII) to AppSignal. You must ensure that PII (such as personal names, email addresses, passwords, etc.) is filtered before data is sent to AppSignal. If you must identify a person, consider using a user ID, hash or pseudonymized identifier instead.

Configure Headers

An application's session data can be filtered by configuring keys in an allowlist. This allowlist system will filter out all the session data keys not in this list.

AppSignal does not collect the name or value of headers filtered out by your allowlist.

Example

For example, an application with this AppSignal config:

YAML
request_headers: ["Request-Method"]

Will only send the Request-Method header to AppSignal.com.

Ruby

AppSignal automatically stores the configured request headers in the Ruby integration for Rails apps and other frameworks. It has a built-in list of request headers to collect by default that you can customize with the request_headers config option.

To configure which request headers to collect for each request, add the following configuration to your config/appsignal.yml file in the environment group where you want it to apply. The request_headers

YAML
# Example: config/appsignal.yml production: request_headers: # Example list of headers - PATH_INFO - REQUEST_METHOD - REQUEST_PATH - SERVER_NAME - SERVER_PORT - SERVER_PROTOCOL

Elixir

AppSignal automatically stores the configured request headers for Phoenix apps and other frameworks in the Elixir integration. It has a built-in list of request headers collected by default which you can customize using the request_headers config option.

To configure which request headers to collect for each request, add the following configuration to your config/appsignal.exs file in the environment group where you want it to apply. The request_headers value is a list of strings.

YAML
# Example: config/appsignal.exs config :appsignal, :config, request_headers: ~w( path-info request-method request-uri server-name server-port server-protocol ) # Example list of headers

Node.js

In the Node.js integration, AppSignal automatically stores the configured request headers for Express apps and other frameworks. It has a built-in list of request headers to collect by default that you can customize with the requestHeaders config option.

To configure which request headers to collect for each request, add the following configuration to your AppSignal client instance creation. The requestHeaders value is an array of strings.

Node.js
// appsignal.cjs const { Appsignal } = require("@appsignal/nodejs"); new Appsignal({ requestHeaders: ["accept", "cache-control", "content-length", "range"], });

Python

In the Python integration, if an app sets request headers, AppSignal will automatically collect the configured request headers. It has a built-in list of request headers to collect by default that you can customize with the request_headers config option.

To configure which request headers to collect for each request, add the following configuration to your AppSignal client instance creation. The request_headers value is a list of strings.

Python
# __appsignal__.py from appsignal import Appsignal appsignal = Appsignal( # Other config request_headers: ["accept", "cache-control", "content-length", "range"], )