Request tracing for your Application Load Balancer - Elastic Load Balancing

Request tracing for your Application Load Balancer

When the load balancer receives a request from a client, it adds or updates the X-Amzn-Trace-Id header before sending the request to the target. Any services or applications between the load balancer and the target can also add or update this header.

You can use request tracing to track HTTP requests from clients to targets or other services. If you enable access logs, the contents of the X-Amzn-Trace-Id header are logged. For more information, see Access logs for your Application Load Balancer.

Syntax

The X-Amzn-Trace-Id header contains fields with the following format:

Field=version-time-id
Field

The name of the field. The supported values are Root and Self.

An application can add arbitrary fields for its own purposes. The load balancer preserves these fields but does not use them.

version

The version number.

time

The epoch time, in seconds.

id

The trace identifier.

Examples

If the X-Amzn-Trace-Id header is not present on an incoming request, the load balancer generates a header with a Root field and forwards the request. For example:

X-Amzn-Trace-Id: Root=1-67891233-abcdef012345678912345678

If the X-Amzn-Trace-Id header is present and has a Root field, the load balancer inserts a Self field and forwards the request. For example:

X-Amzn-Trace-Id: Self=1-67891233-12456789abcdef012345678;Root=1-67891233-abcdef012345678912345678

If an application adds a header with a Root field and a custom field, the load balancer preserves both fields, inserts a Self field, and forwards the request:

X-Amzn-Trace-Id: Self=1-67891233-12456789abcdef012345678;Root=1-67891233-abcdef012345678912345678;CalledFrom=app

If the X-Amzn-Trace-Id header is present and has a Self field, the load balancer updates the value of the Self field.

Limitations

  • The load balancer updates the header when it receives an incoming request, not when it receives a response.

  • If the HTTP headers are greater than 7 KB, the load balancer rewrites the X-Amzn-Trace-Id header with a Root field.

  • With WebSockets, you can trace only until the upgrade request is successful.