UUID

This extension may be referenced by the qualified name envoy.request_id.uuid

Note

This extension is intended to be robust against both untrusted downstream and upstream traffic.

Tip

This extension extends and can be used with the following extension category:

extensions.request_id.uuid.v3.UuidRequestIdConfig

[extensions.request_id.uuid.v3.UuidRequestIdConfig proto]

Configuration for the default UUID request ID extension which has the following behavior:

  1. Request ID is propagated using the x-request-id header.

  2. Request ID is a universally unique identifier (UUID4).

  3. Tracing decision (sampled, forced, etc) is set in 14th nibble of the UUID. By default this will overwrite existing UUIDs received in the x-request-id header if the trace sampling decision is changed. The 14th nibble of the UUID4 has been chosen because it is fixed to ‘4’ by the standard. Thus, ‘4’ indicates a default UUID and no trace status. This nibble is swapped to:

    1. ‘9’: Sampled.

    2. ‘a’: Force traced due to server-side override.

    3. ‘b’: Force traced due to client-side request ID joining.

    See the x-request-id documentation for more information.

{
  "pack_trace_reason": "{...}",
  "use_request_id_for_trace_sampling": "{...}"
}
pack_trace_reason

(BoolValue) Whether the implementation alters the UUID to contain the trace sampling decision as per the UuidRequestIdConfig message documentation. This defaults to true. If disabled no modification to the UUID will be performed. It is important to note that if disabled, stable sampling of traces, access logs, etc. will no longer work and only random sampling will be possible.

use_request_id_for_trace_sampling

(BoolValue) Set whether to use x-request-id for sampling or not. This defaults to true. See the context propagation overview for more information.