syntax = "proto3"; package envoy.extensions.request_id.uuid.v3; import "google/protobuf/wrappers.proto"; import "udpa/annotations/status.proto"; option java_package = "io.envoyproxy.envoy.extensions.request_id.uuid.v3"; option java_outer_classname = "UuidProto"; option java_multiple_files = true; option go_package = "github.com/envoyproxy/go-control-plane/envoy/extensions/request_id/uuid/v3;uuidv3"; option (udpa.annotations.file_status).package_version_status = ACTIVE; // [#protodoc-title: UUID] // [#extension: envoy.request_id.uuid] // Configuration for the default UUID request ID extension which has the following behavior: // // 1. Request ID is propagated using the :ref:`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: // // a. '9': Sampled. // b. 'a': Force traced due to server-side override. // c. 'b': Force traced due to client-side request ID joining. // // See the :ref:`x-request-id ` documentation for // more information. message UuidRequestIdConfig { // 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. google.protobuf.BoolValue pack_trace_reason = 1; // Set whether to use :ref:`x-request-id` for sampling or not. // This defaults to true. See the :ref:`context propagation ` // overview for more information. google.protobuf.BoolValue use_request_id_for_trace_sampling = 2; }