uuid.proto 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. syntax = "proto3";
  2. package envoy.extensions.request_id.uuid.v3;
  3. import "google/protobuf/wrappers.proto";
  4. import "udpa/annotations/status.proto";
  5. option java_package = "io.envoyproxy.envoy.extensions.request_id.uuid.v3";
  6. option java_outer_classname = "UuidProto";
  7. option java_multiple_files = true;
  8. option go_package = "github.com/envoyproxy/go-control-plane/envoy/extensions/request_id/uuid/v3;uuidv3";
  9. option (udpa.annotations.file_status).package_version_status = ACTIVE;
  10. // [#protodoc-title: UUID]
  11. // [#extension: envoy.request_id.uuid]
  12. // Configuration for the default UUID request ID extension which has the following behavior:
  13. //
  14. // 1. Request ID is propagated using the :ref:`x-request-id
  15. // <config_http_conn_man_headers_x-request-id>` header.
  16. //
  17. // 2. Request ID is a universally unique identifier `(UUID4)
  18. // <https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_4_(random)>`_.
  19. //
  20. // 3. Tracing decision (sampled, forced, etc) is set in 14th nibble of the UUID. By default this will
  21. // overwrite existing UUIDs received in the *x-request-id* header if the trace sampling decision
  22. // is changed. The 14th nibble of the UUID4 has been chosen because it is fixed to '4' by the
  23. // standard. Thus, '4' indicates a default UUID and no trace status. This nibble is swapped to:
  24. //
  25. // a. '9': Sampled.
  26. // b. 'a': Force traced due to server-side override.
  27. // c. 'b': Force traced due to client-side request ID joining.
  28. //
  29. // See the :ref:`x-request-id <config_http_conn_man_headers_x-request-id>` documentation for
  30. // more information.
  31. message UuidRequestIdConfig {
  32. // Whether the implementation alters the UUID to contain the trace sampling decision as per the
  33. // `UuidRequestIdConfig` message documentation. This defaults to true. If disabled no
  34. // modification to the UUID will be performed. It is important to note that if disabled,
  35. // stable sampling of traces, access logs, etc. will no longer work and only random sampling will
  36. // be possible.
  37. google.protobuf.BoolValue pack_trace_reason = 1;
  38. // Set whether to use :ref:`x-request-id<config_http_conn_man_headers_x-request-id>` for sampling or not.
  39. // This defaults to true. See the :ref:`context propagation <arch_overview_tracing_context_propagation>`
  40. // overview for more information.
  41. google.protobuf.BoolValue use_request_id_for_trace_sampling = 2;
  42. }