1syntax = "proto3"; 2 3package envoy.config.trace.v3; 4 5import "google/protobuf/wrappers.proto"; 6 7import "envoy/annotations/deprecation.proto"; 8import "udpa/annotations/migrate.proto"; 9import "udpa/annotations/status.proto"; 10import "udpa/annotations/versioning.proto"; 11import "validate/validate.proto"; 12 13option java_package = "io.envoyproxy.envoy.config.trace.v3"; 14option java_outer_classname = "ZipkinProto"; 15option java_multiple_files = true; 16option go_package = "github.com/envoyproxy/go-control-plane/envoy/config/trace/v3;tracev3"; 17option (udpa.annotations.file_migrate).move_to_package = "envoy.extensions.tracers.zipkin.v4alpha"; 18option (udpa.annotations.file_status).package_version_status = ACTIVE; 19 20// [#protodoc-title: Zipkin tracer] 21 22// Configuration for the Zipkin tracer. 23// [#extension: envoy.tracers.zipkin] 24// [#next-free-field: 8] 25message ZipkinConfig { 26 option (udpa.annotations.versioning).previous_message_type = "envoy.config.trace.v2.ZipkinConfig"; 27 28 // Available Zipkin collector endpoint versions. 29 enum CollectorEndpointVersion { 30 // Zipkin API v1, JSON over HTTP. 31 // [#comment: The default implementation of Zipkin client before this field is added was only v1 32 // and the way user configure this was by not explicitly specifying the version. Consequently, 33 // before this is added, the corresponding Zipkin collector expected to receive v1 payload. 34 // Hence the motivation of adding HTTP_JSON_V1 as the default is to avoid a breaking change when 35 // user upgrading Envoy with this change. Furthermore, we also immediately deprecate this field, 36 // since in Zipkin realm this v1 version is considered to be not preferable anymore.] 37 DEPRECATED_AND_UNAVAILABLE_DO_NOT_USE = 0 38 [deprecated = true, (envoy.annotations.disallowed_by_default_enum) = true]; 39 40 // Zipkin API v2, JSON over HTTP. 41 HTTP_JSON = 1; 42 43 // Zipkin API v2, protobuf over HTTP. 44 HTTP_PROTO = 2; 45 46 // [#not-implemented-hide:] 47 GRPC = 3; 48 } 49 50 // The cluster manager cluster that hosts the Zipkin collectors. 51 string collector_cluster = 1 [(validate.rules).string = {min_len: 1}]; 52 53 // The API endpoint of the Zipkin service where the spans will be sent. When 54 // using a standard Zipkin installation. 55 string collector_endpoint = 2 [(validate.rules).string = {min_len: 1}]; 56 57 // Determines whether a 128bit trace id will be used when creating a new 58 // trace instance. The default value is false, which will result in a 64 bit trace id being used. 59 bool trace_id_128bit = 3; 60 61 // Determines whether client and server spans will share the same span context. 62 // The default value is true. 63 google.protobuf.BoolValue shared_span_context = 4; 64 65 // Determines the selected collector endpoint version. 66 CollectorEndpointVersion collector_endpoint_version = 5; 67 68 // Optional hostname to use when sending spans to the collector_cluster. Useful for collectors 69 // that require a specific hostname. Defaults to :ref:`collector_cluster <envoy_v3_api_field_config.trace.v3.ZipkinConfig.collector_cluster>` above. 70 string collector_hostname = 6; 71 72 // If this is set to true, then Envoy will be treated as an independent hop in trace chain. A complete span pair will be created for a single 73 // request. Server span will be created for the downstream request and client span will be created for the related upstream request. 74 // This should be set to true in the following cases: 75 // 76 // * The Envoy Proxy is used as gateway or ingress. 77 // * The Envoy Proxy is used as sidecar but inbound traffic capturing or outbound traffic capturing is disabled. 78 // * Any case that the `start_child_span of router <envoy_v3_api_field_extensions.filters.http.router.v3.Router.start_child_span>` is set to true. 79 // 80 // .. attention:: 81 // 82 // If this is set to true, then the 83 // :ref:`start_child_span of router <envoy_v3_api_field_extensions.filters.http.router.v3.Router.start_child_span>` 84 // SHOULD be set to true also to ensure the correctness of trace chain. 85 bool split_spans_for_request = 7; 86} 87