api: move configuration of tracer provider implementations out of `config.trace` into `extensions.tracers.<provider>` (#10743)
Split Tracing.Http and provider-specific configurations out of trace.proto Risk Level: Medium Testing: unit tests Docs Changes: N/A Release Notes: N/A Fixes: #10576, #10737 Signed-off-by: Yaroslav Skopets <yaroslav@tetrate.io> Mirrored from https://github.com/envoyproxy/envoy @ 4325949734fa10e4725bab5e096aa77cc8f85b06master-ci-test
parent
bbc765afe5
commit
5467393763
38 changed files with 1194 additions and 810 deletions
@ -0,0 +1,23 @@ |
||||
syntax = "proto3"; |
||||
|
||||
package envoy.config.trace.v2; |
||||
|
||||
import "udpa/annotations/status.proto"; |
||||
import "validate/validate.proto"; |
||||
|
||||
option java_package = "io.envoyproxy.envoy.config.trace.v2"; |
||||
option java_outer_classname = "DatadogProto"; |
||||
option java_multiple_files = true; |
||||
option (udpa.annotations.file_status).package_version_status = FROZEN; |
||||
|
||||
// [#protodoc-title: Datadog tracer] |
||||
|
||||
// Configuration for the Datadog tracer. |
||||
// [#extension: envoy.tracers.datadog] |
||||
message DatadogConfig { |
||||
// The cluster to use for submitting traces to the Datadog agent. |
||||
string collector_cluster = 1 [(validate.rules).string = {min_bytes: 1}]; |
||||
|
||||
// The name used for the service when traces are generated by envoy. |
||||
string service_name = 2 [(validate.rules).string = {min_bytes: 1}]; |
||||
} |
@ -0,0 +1,29 @@ |
||||
syntax = "proto3"; |
||||
|
||||
package envoy.config.trace.v2; |
||||
|
||||
import "google/protobuf/struct.proto"; |
||||
|
||||
import "udpa/annotations/status.proto"; |
||||
import "validate/validate.proto"; |
||||
|
||||
option java_package = "io.envoyproxy.envoy.config.trace.v2"; |
||||
option java_outer_classname = "DynamicOtProto"; |
||||
option java_multiple_files = true; |
||||
option (udpa.annotations.file_status).package_version_status = FROZEN; |
||||
|
||||
// [#protodoc-title: Dynamically loadable OpenTracing tracer] |
||||
|
||||
// DynamicOtConfig is used to dynamically load a tracer from a shared library |
||||
// that implements the `OpenTracing dynamic loading API |
||||
// <https://github.com/opentracing/opentracing-cpp>`_. |
||||
// [#extension: envoy.tracers.dynamic_ot] |
||||
message DynamicOtConfig { |
||||
// Dynamic library implementing the `OpenTracing API |
||||
// <https://github.com/opentracing/opentracing-cpp>`_. |
||||
string library = 1 [(validate.rules).string = {min_bytes: 1}]; |
||||
|
||||
// The configuration to use when creating a tracer from the given dynamic |
||||
// library. |
||||
google.protobuf.Struct config = 2; |
||||
} |
@ -0,0 +1,65 @@ |
||||
syntax = "proto3"; |
||||
|
||||
package envoy.config.trace.v2; |
||||
|
||||
import "google/protobuf/any.proto"; |
||||
import "google/protobuf/struct.proto"; |
||||
|
||||
import "udpa/annotations/status.proto"; |
||||
import "validate/validate.proto"; |
||||
|
||||
option java_package = "io.envoyproxy.envoy.config.trace.v2"; |
||||
option java_outer_classname = "HttpTracerProto"; |
||||
option java_multiple_files = true; |
||||
option (udpa.annotations.file_status).package_version_status = FROZEN; |
||||
|
||||
// [#protodoc-title: Tracing] |
||||
// Tracing :ref:`architecture overview <arch_overview_tracing>`. |
||||
|
||||
// The tracing configuration specifies settings for an HTTP tracer provider used by Envoy. |
||||
// |
||||
// Envoy may support other tracers in the future, but right now the HTTP tracer is the only one |
||||
// supported. |
||||
// |
||||
// .. attention:: |
||||
// |
||||
// Use of this message type has been deprecated in favor of direct use of |
||||
// :ref:`Tracing.Http <envoy_api_msg_config.trace.v2.Tracing.Http>`. |
||||
message Tracing { |
||||
// Configuration for an HTTP tracer provider used by Envoy. |
||||
// |
||||
// The configuration is defined by the |
||||
// :ref:`HttpConnectionManager.Tracing <envoy_api_msg_config.filter.network.http_connection_manager.v2.HttpConnectionManager.Tracing>` |
||||
// :ref:`provider <envoy_api_field_config.filter.network.http_connection_manager.v2.HttpConnectionManager.Tracing.provider>` |
||||
// field. |
||||
message Http { |
||||
// The name of the HTTP trace driver to instantiate. The name must match a |
||||
// supported HTTP trace driver. Built-in trace drivers: |
||||
// |
||||
// - *envoy.tracers.lightstep* |
||||
// - *envoy.tracers.zipkin* |
||||
// - *envoy.tracers.dynamic_ot* |
||||
// - *envoy.tracers.datadog* |
||||
// - *envoy.tracers.opencensus* |
||||
// - *envoy.tracers.xray* |
||||
string name = 1 [(validate.rules).string = {min_bytes: 1}]; |
||||
|
||||
// Trace driver specific configuration which depends on the driver being instantiated. |
||||
// See the trace drivers for examples: |
||||
// |
||||
// - :ref:`LightstepConfig <envoy_api_msg_config.trace.v2.LightstepConfig>` |
||||
// - :ref:`ZipkinConfig <envoy_api_msg_config.trace.v2.ZipkinConfig>` |
||||
// - :ref:`DynamicOtConfig <envoy_api_msg_config.trace.v2.DynamicOtConfig>` |
||||
// - :ref:`DatadogConfig <envoy_api_msg_config.trace.v2.DatadogConfig>` |
||||
// - :ref:`OpenCensusConfig <envoy_api_msg_config.trace.v2.OpenCensusConfig>` |
||||
// - :ref:`AWS X-Ray <envoy_api_msg_config.trace.v2alpha.XRayConfig>` |
||||
oneof config_type { |
||||
google.protobuf.Struct config = 2 [deprecated = true]; |
||||
|
||||
google.protobuf.Any typed_config = 3; |
||||
} |
||||
} |
||||
|
||||
// Provides configuration for the HTTP tracer. |
||||
Http http = 1; |
||||
} |
@ -0,0 +1,43 @@ |
||||
syntax = "proto3"; |
||||
|
||||
package envoy.config.trace.v2; |
||||
|
||||
import "udpa/annotations/status.proto"; |
||||
import "validate/validate.proto"; |
||||
|
||||
option java_package = "io.envoyproxy.envoy.config.trace.v2"; |
||||
option java_outer_classname = "LightstepProto"; |
||||
option java_multiple_files = true; |
||||
option (udpa.annotations.file_status).package_version_status = FROZEN; |
||||
|
||||
// [#protodoc-title: LightStep tracer] |
||||
|
||||
// Configuration for the LightStep tracer. |
||||
// [#extension: envoy.tracers.lightstep] |
||||
message LightstepConfig { |
||||
// Available propagation modes |
||||
enum PropagationMode { |
||||
// Propagate trace context in the single header x-ot-span-context. |
||||
ENVOY = 0; |
||||
|
||||
// Propagate trace context using LightStep's native format. |
||||
LIGHTSTEP = 1; |
||||
|
||||
// Propagate trace context using the b3 format. |
||||
B3 = 2; |
||||
|
||||
// Propagation trace context using the w3 trace-context standard. |
||||
TRACE_CONTEXT = 3; |
||||
} |
||||
|
||||
// The cluster manager cluster that hosts the LightStep collectors. |
||||
string collector_cluster = 1 [(validate.rules).string = {min_bytes: 1}]; |
||||
|
||||
// File containing the access token to the `LightStep |
||||
// <https://lightstep.com/>`_ API. |
||||
string access_token_file = 2 [(validate.rules).string = {min_bytes: 1}]; |
||||
|
||||
// Propagation modes to use by LightStep's tracer. |
||||
repeated PropagationMode propagation_modes = 3 |
||||
[(validate.rules).repeated = {items {enum {defined_only: true}}}]; |
||||
} |
@ -0,0 +1,93 @@ |
||||
syntax = "proto3"; |
||||
|
||||
package envoy.config.trace.v2; |
||||
|
||||
import "envoy/api/v2/core/grpc_service.proto"; |
||||
|
||||
import "opencensus/proto/trace/v1/trace_config.proto"; |
||||
|
||||
import "udpa/annotations/status.proto"; |
||||
import "validate/validate.proto"; |
||||
|
||||
option java_package = "io.envoyproxy.envoy.config.trace.v2"; |
||||
option java_outer_classname = "OpencensusProto"; |
||||
option java_multiple_files = true; |
||||
option (udpa.annotations.file_status).package_version_status = FROZEN; |
||||
|
||||
// [#protodoc-title: OpenCensus tracer] |
||||
|
||||
// Configuration for the OpenCensus tracer. |
||||
// [#next-free-field: 15] |
||||
// [#extension: envoy.tracers.opencensus] |
||||
message OpenCensusConfig { |
||||
enum TraceContext { |
||||
// No-op default, no trace context is utilized. |
||||
NONE = 0; |
||||
|
||||
// W3C Trace-Context format "traceparent:" header. |
||||
TRACE_CONTEXT = 1; |
||||
|
||||
// Binary "grpc-trace-bin:" header. |
||||
GRPC_TRACE_BIN = 2; |
||||
|
||||
// "X-Cloud-Trace-Context:" header. |
||||
CLOUD_TRACE_CONTEXT = 3; |
||||
|
||||
// X-B3-* headers. |
||||
B3 = 4; |
||||
} |
||||
|
||||
reserved 7; |
||||
|
||||
// Configures tracing, e.g. the sampler, max number of annotations, etc. |
||||
opencensus.proto.trace.v1.TraceConfig trace_config = 1; |
||||
|
||||
// Enables the stdout exporter if set to true. This is intended for debugging |
||||
// purposes. |
||||
bool stdout_exporter_enabled = 2; |
||||
|
||||
// Enables the Stackdriver exporter if set to true. The project_id must also |
||||
// be set. |
||||
bool stackdriver_exporter_enabled = 3; |
||||
|
||||
// The Cloud project_id to use for Stackdriver tracing. |
||||
string stackdriver_project_id = 4; |
||||
|
||||
// (optional) By default, the Stackdriver exporter will connect to production |
||||
// Stackdriver. If stackdriver_address is non-empty, it will instead connect |
||||
// to this address, which is in the gRPC format: |
||||
// https://github.com/grpc/grpc/blob/master/doc/naming.md |
||||
string stackdriver_address = 10; |
||||
|
||||
// (optional) The gRPC server that hosts Stackdriver tracing service. Only |
||||
// Google gRPC is supported. If :ref:`target_uri <envoy_v3_api_field_config.core.v3.GrpcService.GoogleGrpc.target_uri>` |
||||
// is not provided, the default production Stackdriver address will be used. |
||||
api.v2.core.GrpcService stackdriver_grpc_service = 13; |
||||
|
||||
// Enables the Zipkin exporter if set to true. The url and service name must |
||||
// also be set. |
||||
bool zipkin_exporter_enabled = 5; |
||||
|
||||
// The URL to Zipkin, e.g. "http://127.0.0.1:9411/api/v2/spans" |
||||
string zipkin_url = 6; |
||||
|
||||
// Enables the OpenCensus Agent exporter if set to true. The ocagent_address or |
||||
// ocagent_grpc_service must also be set. |
||||
bool ocagent_exporter_enabled = 11; |
||||
|
||||
// The address of the OpenCensus Agent, if its exporter is enabled, in gRPC |
||||
// format: https://github.com/grpc/grpc/blob/master/doc/naming.md |
||||
// [#comment:TODO: deprecate this field] |
||||
string ocagent_address = 12; |
||||
|
||||
// (optional) The gRPC server hosted by the OpenCensus Agent. Only Google gRPC is supported. |
||||
// This is only used if the ocagent_address is left empty. |
||||
api.v2.core.GrpcService ocagent_grpc_service = 14; |
||||
|
||||
// List of incoming trace context headers we will accept. First one found |
||||
// wins. |
||||
repeated TraceContext incoming_trace_context = 8; |
||||
|
||||
// List of outgoing trace context headers we will produce. |
||||
repeated TraceContext outgoing_trace_context = 9; |
||||
} |
@ -0,0 +1,21 @@ |
||||
syntax = "proto3"; |
||||
|
||||
package envoy.config.trace.v2; |
||||
|
||||
import "envoy/api/v2/core/grpc_service.proto"; |
||||
|
||||
import "udpa/annotations/status.proto"; |
||||
import "validate/validate.proto"; |
||||
|
||||
option java_package = "io.envoyproxy.envoy.config.trace.v2"; |
||||
option java_outer_classname = "ServiceProto"; |
||||
option java_multiple_files = true; |
||||
option (udpa.annotations.file_status).package_version_status = FROZEN; |
||||
|
||||
// [#protodoc-title: Trace Service] |
||||
|
||||
// Configuration structure. |
||||
message TraceServiceConfig { |
||||
// The upstream gRPC cluster that hosts the metrics service. |
||||
api.v2.core.GrpcService grpc_service = 1 [(validate.rules).message = {required: true}]; |
||||
} |
@ -0,0 +1,64 @@ |
||||
syntax = "proto3"; |
||||
|
||||
package envoy.config.trace.v2; |
||||
|
||||
import "google/protobuf/wrappers.proto"; |
||||
|
||||
import "envoy/annotations/deprecation.proto"; |
||||
import "udpa/annotations/status.proto"; |
||||
import "validate/validate.proto"; |
||||
|
||||
option java_package = "io.envoyproxy.envoy.config.trace.v2"; |
||||
option java_outer_classname = "ZipkinProto"; |
||||
option java_multiple_files = true; |
||||
option (udpa.annotations.file_status).package_version_status = FROZEN; |
||||
|
||||
// [#protodoc-title: Zipkin tracer] |
||||
|
||||
// Configuration for the Zipkin tracer. |
||||
// [#extension: envoy.tracers.zipkin] |
||||
// [#next-free-field: 6] |
||||
message ZipkinConfig { |
||||
// Available Zipkin collector endpoint versions. |
||||
enum CollectorEndpointVersion { |
||||
// Zipkin API v1, JSON over HTTP. |
||||
// [#comment: The default implementation of Zipkin client before this field is added was only v1 |
||||
// and the way user configure this was by not explicitly specifying the version. Consequently, |
||||
// before this is added, the corresponding Zipkin collector expected to receive v1 payload. |
||||
// Hence the motivation of adding HTTP_JSON_V1 as the default is to avoid a breaking change when |
||||
// user upgrading Envoy with this change. Furthermore, we also immediately deprecate this field, |
||||
// since in Zipkin realm this v1 version is considered to be not preferable anymore.] |
||||
HTTP_JSON_V1 = 0 [deprecated = true, (envoy.annotations.disallowed_by_default_enum) = true]; |
||||
|
||||
// Zipkin API v2, JSON over HTTP. |
||||
HTTP_JSON = 1; |
||||
|
||||
// Zipkin API v2, protobuf over HTTP. |
||||
HTTP_PROTO = 2; |
||||
|
||||
// [#not-implemented-hide:] |
||||
GRPC = 3; |
||||
} |
||||
|
||||
// The cluster manager cluster that hosts the Zipkin collectors. Note that the |
||||
// Zipkin cluster must be defined in the :ref:`Bootstrap static cluster |
||||
// resources <envoy_api_field_config.bootstrap.v2.Bootstrap.StaticResources.clusters>`. |
||||
string collector_cluster = 1 [(validate.rules).string = {min_bytes: 1}]; |
||||
|
||||
// The API endpoint of the Zipkin service where the spans will be sent. When |
||||
// using a standard Zipkin installation, the API endpoint is typically |
||||
// /api/v1/spans, which is the default value. |
||||
string collector_endpoint = 2 [(validate.rules).string = {min_bytes: 1}]; |
||||
|
||||
// Determines whether a 128bit trace id will be used when creating a new |
||||
// trace instance. The default value is false, which will result in a 64 bit trace id being used. |
||||
bool trace_id_128bit = 3; |
||||
|
||||
// Determines whether client and server spans will share the same span context. |
||||
// The default value is true. |
||||
google.protobuf.BoolValue shared_span_context = 4; |
||||
|
||||
// Determines the selected collector endpoint version. By default, the ``HTTP_JSON_V1`` will be |
||||
// used. |
||||
CollectorEndpointVersion collector_endpoint_version = 5; |
||||
} |
@ -0,0 +1,29 @@ |
||||
syntax = "proto3"; |
||||
|
||||
package envoy.config.trace.v3; |
||||
|
||||
import "udpa/annotations/migrate.proto"; |
||||
import "udpa/annotations/status.proto"; |
||||
import "udpa/annotations/versioning.proto"; |
||||
import "validate/validate.proto"; |
||||
|
||||
option java_package = "io.envoyproxy.envoy.config.trace.v3"; |
||||
option java_outer_classname = "DatadogProto"; |
||||
option java_multiple_files = true; |
||||
option (udpa.annotations.file_migrate).move_to_package = "envoy.extensions.tracers.datadog.v4alpha"; |
||||
option (udpa.annotations.file_status).package_version_status = ACTIVE; |
||||
|
||||
// [#protodoc-title: Datadog tracer] |
||||
|
||||
// Configuration for the Datadog tracer. |
||||
// [#extension: envoy.tracers.datadog] |
||||
message DatadogConfig { |
||||
option (udpa.annotations.versioning).previous_message_type = |
||||
"envoy.config.trace.v2.DatadogConfig"; |
||||
|
||||
// The cluster to use for submitting traces to the Datadog agent. |
||||
string collector_cluster = 1 [(validate.rules).string = {min_bytes: 1}]; |
||||
|
||||
// The name used for the service when traces are generated by envoy. |
||||
string service_name = 2 [(validate.rules).string = {min_bytes: 1}]; |
||||
} |
@ -0,0 +1,36 @@ |
||||
syntax = "proto3"; |
||||
|
||||
package envoy.config.trace.v3; |
||||
|
||||
import "google/protobuf/struct.proto"; |
||||
|
||||
import "udpa/annotations/migrate.proto"; |
||||
import "udpa/annotations/status.proto"; |
||||
import "udpa/annotations/versioning.proto"; |
||||
import "validate/validate.proto"; |
||||
|
||||
option java_package = "io.envoyproxy.envoy.config.trace.v3"; |
||||
option java_outer_classname = "DynamicOtProto"; |
||||
option java_multiple_files = true; |
||||
option (udpa.annotations.file_migrate).move_to_package = |
||||
"envoy.extensions.tracers.dynamic_ot.v4alpha"; |
||||
option (udpa.annotations.file_status).package_version_status = ACTIVE; |
||||
|
||||
// [#protodoc-title: Dynamically loadable OpenTracing tracer] |
||||
|
||||
// DynamicOtConfig is used to dynamically load a tracer from a shared library |
||||
// that implements the `OpenTracing dynamic loading API |
||||
// <https://github.com/opentracing/opentracing-cpp>`_. |
||||
// [#extension: envoy.tracers.dynamic_ot] |
||||
message DynamicOtConfig { |
||||
option (udpa.annotations.versioning).previous_message_type = |
||||
"envoy.config.trace.v2.DynamicOtConfig"; |
||||
|
||||
// Dynamic library implementing the `OpenTracing API |
||||
// <https://github.com/opentracing/opentracing-cpp>`_. |
||||
string library = 1 [(validate.rules).string = {min_bytes: 1}]; |
||||
|
||||
// The configuration to use when creating a tracer from the given dynamic |
||||
// library. |
||||
google.protobuf.Struct config = 2; |
||||
} |
@ -0,0 +1,73 @@ |
||||
syntax = "proto3"; |
||||
|
||||
package envoy.config.trace.v3; |
||||
|
||||
import "google/protobuf/any.proto"; |
||||
import "google/protobuf/struct.proto"; |
||||
|
||||
import "udpa/annotations/status.proto"; |
||||
import "udpa/annotations/versioning.proto"; |
||||
import "validate/validate.proto"; |
||||
|
||||
option java_package = "io.envoyproxy.envoy.config.trace.v3"; |
||||
option java_outer_classname = "HttpTracerProto"; |
||||
option java_multiple_files = true; |
||||
option (udpa.annotations.file_status).package_version_status = ACTIVE; |
||||
|
||||
// [#protodoc-title: Tracing] |
||||
// Tracing :ref:`architecture overview <arch_overview_tracing>`. |
||||
|
||||
// The tracing configuration specifies settings for an HTTP tracer provider used by Envoy. |
||||
// |
||||
// Envoy may support other tracers in the future, but right now the HTTP tracer is the only one |
||||
// supported. |
||||
// |
||||
// .. attention:: |
||||
// |
||||
// Use of this message type has been deprecated in favor of direct use of |
||||
// :ref:`Tracing.Http <envoy_api_msg_config.trace.v3.Tracing.Http>`. |
||||
message Tracing { |
||||
option (udpa.annotations.versioning).previous_message_type = "envoy.config.trace.v2.Tracing"; |
||||
|
||||
// Configuration for an HTTP tracer provider used by Envoy. |
||||
// |
||||
// The configuration is defined by the |
||||
// :ref:`HttpConnectionManager.Tracing <envoy_api_msg_extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.Tracing>` |
||||
// :ref:`provider <envoy_api_field_extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.Tracing.provider>` |
||||
// field. |
||||
message Http { |
||||
option (udpa.annotations.versioning).previous_message_type = |
||||
"envoy.config.trace.v2.Tracing.Http"; |
||||
|
||||
reserved 2; |
||||
|
||||
reserved "config"; |
||||
|
||||
// The name of the HTTP trace driver to instantiate. The name must match a |
||||
// supported HTTP trace driver. Built-in trace drivers: |
||||
// |
||||
// - *envoy.tracers.lightstep* |
||||
// - *envoy.tracers.zipkin* |
||||
// - *envoy.tracers.dynamic_ot* |
||||
// - *envoy.tracers.datadog* |
||||
// - *envoy.tracers.opencensus* |
||||
// - *envoy.tracers.xray* |
||||
string name = 1 [(validate.rules).string = {min_bytes: 1}]; |
||||
|
||||
// Trace driver specific configuration which depends on the driver being instantiated. |
||||
// See the trace drivers for examples: |
||||
// |
||||
// - :ref:`LightstepConfig <envoy_api_msg_config.trace.v3.LightstepConfig>` |
||||
// - :ref:`ZipkinConfig <envoy_api_msg_config.trace.v3.ZipkinConfig>` |
||||
// - :ref:`DynamicOtConfig <envoy_api_msg_config.trace.v3.DynamicOtConfig>` |
||||
// - :ref:`DatadogConfig <envoy_api_msg_config.trace.v3.DatadogConfig>` |
||||
// - :ref:`OpenCensusConfig <envoy_api_msg_config.trace.v3.OpenCensusConfig>` |
||||
// - :ref:`AWS X-Ray <envoy_api_msg_config.trace.v3.XRayConfig>` |
||||
oneof config_type { |
||||
google.protobuf.Any typed_config = 3; |
||||
} |
||||
} |
||||
|
||||
// Provides configuration for the HTTP tracer. |
||||
Http http = 1; |
||||
} |
@ -0,0 +1,50 @@ |
||||
syntax = "proto3"; |
||||
|
||||
package envoy.config.trace.v3; |
||||
|
||||
import "udpa/annotations/migrate.proto"; |
||||
import "udpa/annotations/status.proto"; |
||||
import "udpa/annotations/versioning.proto"; |
||||
import "validate/validate.proto"; |
||||
|
||||
option java_package = "io.envoyproxy.envoy.config.trace.v3"; |
||||
option java_outer_classname = "LightstepProto"; |
||||
option java_multiple_files = true; |
||||
option (udpa.annotations.file_migrate).move_to_package = |
||||
"envoy.extensions.tracers.lightstep.v4alpha"; |
||||
option (udpa.annotations.file_status).package_version_status = ACTIVE; |
||||
|
||||
// [#protodoc-title: LightStep tracer] |
||||
|
||||
// Configuration for the LightStep tracer. |
||||
// [#extension: envoy.tracers.lightstep] |
||||
message LightstepConfig { |
||||
option (udpa.annotations.versioning).previous_message_type = |
||||
"envoy.config.trace.v2.LightstepConfig"; |
||||
|
||||
// Available propagation modes |
||||
enum PropagationMode { |
||||
// Propagate trace context in the single header x-ot-span-context. |
||||
ENVOY = 0; |
||||
|
||||
// Propagate trace context using LightStep's native format. |
||||
LIGHTSTEP = 1; |
||||
|
||||
// Propagate trace context using the b3 format. |
||||
B3 = 2; |
||||
|
||||
// Propagation trace context using the w3 trace-context standard. |
||||
TRACE_CONTEXT = 3; |
||||
} |
||||
|
||||
// The cluster manager cluster that hosts the LightStep collectors. |
||||
string collector_cluster = 1 [(validate.rules).string = {min_bytes: 1}]; |
||||
|
||||
// File containing the access token to the `LightStep |
||||
// <https://lightstep.com/>`_ API. |
||||
string access_token_file = 2 [(validate.rules).string = {min_bytes: 1}]; |
||||
|
||||
// Propagation modes to use by LightStep's tracer. |
||||
repeated PropagationMode propagation_modes = 3 |
||||
[(validate.rules).repeated = {items {enum {defined_only: true}}}]; |
||||
} |
@ -0,0 +1,100 @@ |
||||
syntax = "proto3"; |
||||
|
||||
package envoy.config.trace.v3; |
||||
|
||||
import "envoy/config/core/v3/grpc_service.proto"; |
||||
|
||||
import "opencensus/proto/trace/v1/trace_config.proto"; |
||||
|
||||
import "udpa/annotations/migrate.proto"; |
||||
import "udpa/annotations/status.proto"; |
||||
import "udpa/annotations/versioning.proto"; |
||||
import "validate/validate.proto"; |
||||
|
||||
option java_package = "io.envoyproxy.envoy.config.trace.v3"; |
||||
option java_outer_classname = "OpencensusProto"; |
||||
option java_multiple_files = true; |
||||
option (udpa.annotations.file_migrate).move_to_package = |
||||
"envoy.extensions.tracers.opencensus.v4alpha"; |
||||
option (udpa.annotations.file_status).package_version_status = ACTIVE; |
||||
|
||||
// [#protodoc-title: OpenCensus tracer] |
||||
|
||||
// Configuration for the OpenCensus tracer. |
||||
// [#next-free-field: 15] |
||||
// [#extension: envoy.tracers.opencensus] |
||||
message OpenCensusConfig { |
||||
option (udpa.annotations.versioning).previous_message_type = |
||||
"envoy.config.trace.v2.OpenCensusConfig"; |
||||
|
||||
enum TraceContext { |
||||
// No-op default, no trace context is utilized. |
||||
NONE = 0; |
||||
|
||||
// W3C Trace-Context format "traceparent:" header. |
||||
TRACE_CONTEXT = 1; |
||||
|
||||
// Binary "grpc-trace-bin:" header. |
||||
GRPC_TRACE_BIN = 2; |
||||
|
||||
// "X-Cloud-Trace-Context:" header. |
||||
CLOUD_TRACE_CONTEXT = 3; |
||||
|
||||
// X-B3-* headers. |
||||
B3 = 4; |
||||
} |
||||
|
||||
reserved 7; |
||||
|
||||
// Configures tracing, e.g. the sampler, max number of annotations, etc. |
||||
opencensus.proto.trace.v1.TraceConfig trace_config = 1; |
||||
|
||||
// Enables the stdout exporter if set to true. This is intended for debugging |
||||
// purposes. |
||||
bool stdout_exporter_enabled = 2; |
||||
|
||||
// Enables the Stackdriver exporter if set to true. The project_id must also |
||||
// be set. |
||||
bool stackdriver_exporter_enabled = 3; |
||||
|
||||
// The Cloud project_id to use for Stackdriver tracing. |
||||
string stackdriver_project_id = 4; |
||||
|
||||
// (optional) By default, the Stackdriver exporter will connect to production |
||||
// Stackdriver. If stackdriver_address is non-empty, it will instead connect |
||||
// to this address, which is in the gRPC format: |
||||
// https://github.com/grpc/grpc/blob/master/doc/naming.md |
||||
string stackdriver_address = 10; |
||||
|
||||
// (optional) The gRPC server that hosts Stackdriver tracing service. Only |
||||
// Google gRPC is supported. If :ref:`target_uri <envoy_v3_api_field_config.core.v3.GrpcService.GoogleGrpc.target_uri>` |
||||
// is not provided, the default production Stackdriver address will be used. |
||||
core.v3.GrpcService stackdriver_grpc_service = 13; |
||||
|
||||
// Enables the Zipkin exporter if set to true. The url and service name must |
||||
// also be set. |
||||
bool zipkin_exporter_enabled = 5; |
||||
|
||||
// The URL to Zipkin, e.g. "http://127.0.0.1:9411/api/v2/spans" |
||||
string zipkin_url = 6; |
||||
|
||||
// Enables the OpenCensus Agent exporter if set to true. The ocagent_address or |
||||
// ocagent_grpc_service must also be set. |
||||
bool ocagent_exporter_enabled = 11; |
||||
|
||||
// The address of the OpenCensus Agent, if its exporter is enabled, in gRPC |
||||
// format: https://github.com/grpc/grpc/blob/master/doc/naming.md |
||||
// [#comment:TODO: deprecate this field] |
||||
string ocagent_address = 12; |
||||
|
||||
// (optional) The gRPC server hosted by the OpenCensus Agent. Only Google gRPC is supported. |
||||
// This is only used if the ocagent_address is left empty. |
||||
core.v3.GrpcService ocagent_grpc_service = 14; |
||||
|
||||
// List of incoming trace context headers we will accept. First one found |
||||
// wins. |
||||
repeated TraceContext incoming_trace_context = 8; |
||||
|
||||
// List of outgoing trace context headers we will produce. |
||||
repeated TraceContext outgoing_trace_context = 9; |
||||
} |
@ -0,0 +1,25 @@ |
||||
syntax = "proto3"; |
||||
|
||||
package envoy.config.trace.v3; |
||||
|
||||
import "envoy/config/core/v3/grpc_service.proto"; |
||||
|
||||
import "udpa/annotations/status.proto"; |
||||
import "udpa/annotations/versioning.proto"; |
||||
import "validate/validate.proto"; |
||||
|
||||
option java_package = "io.envoyproxy.envoy.config.trace.v3"; |
||||
option java_outer_classname = "ServiceProto"; |
||||
option java_multiple_files = true; |
||||
option (udpa.annotations.file_status).package_version_status = ACTIVE; |
||||
|
||||
// [#protodoc-title: Trace Service] |
||||
|
||||
// Configuration structure. |
||||
message TraceServiceConfig { |
||||
option (udpa.annotations.versioning).previous_message_type = |
||||
"envoy.config.trace.v2.TraceServiceConfig"; |
||||
|
||||
// The upstream gRPC cluster that hosts the metrics service. |
||||
core.v3.GrpcService grpc_service = 1 [(validate.rules).message = {required: true}]; |
||||
} |
@ -0,0 +1,70 @@ |
||||
syntax = "proto3"; |
||||
|
||||
package envoy.config.trace.v3; |
||||
|
||||
import "google/protobuf/wrappers.proto"; |
||||
|
||||
import "envoy/annotations/deprecation.proto"; |
||||
import "udpa/annotations/migrate.proto"; |
||||
import "udpa/annotations/status.proto"; |
||||
import "udpa/annotations/versioning.proto"; |
||||
import "validate/validate.proto"; |
||||
|
||||
option java_package = "io.envoyproxy.envoy.config.trace.v3"; |
||||
option java_outer_classname = "ZipkinProto"; |
||||
option java_multiple_files = true; |
||||
option (udpa.annotations.file_migrate).move_to_package = "envoy.extensions.tracers.zipkin.v4alpha"; |
||||
option (udpa.annotations.file_status).package_version_status = ACTIVE; |
||||
|
||||
// [#protodoc-title: Zipkin tracer] |
||||
|
||||
// Configuration for the Zipkin tracer. |
||||
// [#extension: envoy.tracers.zipkin] |
||||
// [#next-free-field: 6] |
||||
message ZipkinConfig { |
||||
option (udpa.annotations.versioning).previous_message_type = "envoy.config.trace.v2.ZipkinConfig"; |
||||
|
||||
// Available Zipkin collector endpoint versions. |
||||
enum CollectorEndpointVersion { |
||||
// Zipkin API v1, JSON over HTTP. |
||||
// [#comment: The default implementation of Zipkin client before this field is added was only v1 |
||||
// and the way user configure this was by not explicitly specifying the version. Consequently, |
||||
// before this is added, the corresponding Zipkin collector expected to receive v1 payload. |
||||
// Hence the motivation of adding HTTP_JSON_V1 as the default is to avoid a breaking change when |
||||
// user upgrading Envoy with this change. Furthermore, we also immediately deprecate this field, |
||||
// since in Zipkin realm this v1 version is considered to be not preferable anymore.] |
||||
DEPRECATED_AND_UNAVAILABLE_DO_NOT_USE = 0 |
||||
[deprecated = true, (envoy.annotations.disallowed_by_default_enum) = true]; |
||||
|
||||
// Zipkin API v2, JSON over HTTP. |
||||
HTTP_JSON = 1; |
||||
|
||||
// Zipkin API v2, protobuf over HTTP. |
||||
HTTP_PROTO = 2; |
||||
|
||||
// [#not-implemented-hide:] |
||||
GRPC = 3; |
||||
} |
||||
|
||||
// The cluster manager cluster that hosts the Zipkin collectors. Note that the |
||||
// Zipkin cluster must be defined in the :ref:`Bootstrap static cluster |
||||
// resources <envoy_api_field_config.bootstrap.v3.Bootstrap.StaticResources.clusters>`. |
||||
string collector_cluster = 1 [(validate.rules).string = {min_bytes: 1}]; |
||||
|
||||
// The API endpoint of the Zipkin service where the spans will be sent. When |
||||
// using a standard Zipkin installation, the API endpoint is typically |
||||
// /api/v1/spans, which is the default value. |
||||
string collector_endpoint = 2 [(validate.rules).string = {min_bytes: 1}]; |
||||
|
||||
// Determines whether a 128bit trace id will be used when creating a new |
||||
// trace instance. The default value is false, which will result in a 64 bit trace id being used. |
||||
bool trace_id_128bit = 3; |
||||
|
||||
// Determines whether client and server spans will share the same span context. |
||||
// The default value is true. |
||||
google.protobuf.BoolValue shared_span_context = 4; |
||||
|
||||
// Determines the selected collector endpoint version. By default, the ``HTTP_JSON_V1`` will be |
||||
// used. |
||||
CollectorEndpointVersion collector_endpoint_version = 5; |
||||
} |
@ -0,0 +1,73 @@ |
||||
syntax = "proto3"; |
||||
|
||||
package envoy.config.trace.v4alpha; |
||||
|
||||
import "google/protobuf/any.proto"; |
||||
import "google/protobuf/struct.proto"; |
||||
|
||||
import "udpa/annotations/status.proto"; |
||||
import "udpa/annotations/versioning.proto"; |
||||
import "validate/validate.proto"; |
||||
|
||||
option java_package = "io.envoyproxy.envoy.config.trace.v4alpha"; |
||||
option java_outer_classname = "HttpTracerProto"; |
||||
option java_multiple_files = true; |
||||
option (udpa.annotations.file_status).package_version_status = NEXT_MAJOR_VERSION_CANDIDATE; |
||||
|
||||
// [#protodoc-title: Tracing] |
||||
// Tracing :ref:`architecture overview <arch_overview_tracing>`. |
||||
|
||||
// The tracing configuration specifies settings for an HTTP tracer provider used by Envoy. |
||||
// |
||||
// Envoy may support other tracers in the future, but right now the HTTP tracer is the only one |
||||
// supported. |
||||
// |
||||
// .. attention:: |
||||
// |
||||
// Use of this message type has been deprecated in favor of direct use of |
||||
// :ref:`Tracing.Http <envoy_api_msg_config.trace.v4alpha.Tracing.Http>`. |
||||
message Tracing { |
||||
option (udpa.annotations.versioning).previous_message_type = "envoy.config.trace.v3.Tracing"; |
||||
|
||||
// Configuration for an HTTP tracer provider used by Envoy. |
||||
// |
||||
// The configuration is defined by the |
||||
// :ref:`HttpConnectionManager.Tracing <envoy_api_msg_extensions.filters.network.http_connection_manager.v4alpha.HttpConnectionManager.Tracing>` |
||||
// :ref:`provider <envoy_api_field_extensions.filters.network.http_connection_manager.v4alpha.HttpConnectionManager.Tracing.provider>` |
||||
// field. |
||||
message Http { |
||||
option (udpa.annotations.versioning).previous_message_type = |
||||
"envoy.config.trace.v3.Tracing.Http"; |
||||
|
||||
reserved 2; |
||||
|
||||
reserved "config"; |
||||
|
||||
// The name of the HTTP trace driver to instantiate. The name must match a |
||||
// supported HTTP trace driver. Built-in trace drivers: |
||||
// |
||||
// - *envoy.tracers.lightstep* |
||||
// - *envoy.tracers.zipkin* |
||||
// - *envoy.tracers.dynamic_ot* |
||||
// - *envoy.tracers.datadog* |
||||
// - *envoy.tracers.opencensus* |
||||
// - *envoy.tracers.xray* |
||||
string name = 1 [(validate.rules).string = {min_bytes: 1}]; |
||||
|
||||
// Trace driver specific configuration which depends on the driver being instantiated. |
||||
// See the trace drivers for examples: |
||||
// |
||||
// - :ref:`LightstepConfig <envoy_api_msg_extensions.tracers.lightstep.v4alpha.LightstepConfig>` |
||||
// - :ref:`ZipkinConfig <envoy_api_msg_extensions.tracers.zipkin.v4alpha.ZipkinConfig>` |
||||
// - :ref:`DynamicOtConfig <envoy_api_msg_extensions.tracers.dynamic_ot.v4alpha.DynamicOtConfig>` |
||||
// - :ref:`DatadogConfig <envoy_api_msg_extensions.tracers.datadog.v4alpha.DatadogConfig>` |
||||
// - :ref:`OpenCensusConfig <envoy_api_msg_extensions.tracers.opencensus.v4alpha.OpenCensusConfig>` |
||||
// - :ref:`AWS X-Ray <envoy_api_msg_extensions.tracers.xray.v4alpha.XRayConfig>` |
||||
oneof config_type { |
||||
google.protobuf.Any typed_config = 3; |
||||
} |
||||
} |
||||
|
||||
// Provides configuration for the HTTP tracer. |
||||
Http http = 1; |
||||
} |
@ -0,0 +1,25 @@ |
||||
syntax = "proto3"; |
||||
|
||||
package envoy.config.trace.v4alpha; |
||||
|
||||
import "envoy/config/core/v4alpha/grpc_service.proto"; |
||||
|
||||
import "udpa/annotations/status.proto"; |
||||
import "udpa/annotations/versioning.proto"; |
||||
import "validate/validate.proto"; |
||||
|
||||
option java_package = "io.envoyproxy.envoy.config.trace.v4alpha"; |
||||
option java_outer_classname = "ServiceProto"; |
||||
option java_multiple_files = true; |
||||
option (udpa.annotations.file_status).package_version_status = NEXT_MAJOR_VERSION_CANDIDATE; |
||||
|
||||
// [#protodoc-title: Trace Service] |
||||
|
||||
// Configuration structure. |
||||
message TraceServiceConfig { |
||||
option (udpa.annotations.versioning).previous_message_type = |
||||
"envoy.config.trace.v3.TraceServiceConfig"; |
||||
|
||||
// The upstream gRPC cluster that hosts the metrics service. |
||||
core.v4alpha.GrpcService grpc_service = 1 [(validate.rules).message = {required: true}]; |
||||
} |
@ -1,281 +0,0 @@ |
||||
syntax = "proto3"; |
||||
|
||||
package envoy.config.trace.v4alpha; |
||||
|
||||
import "envoy/config/core/v4alpha/grpc_service.proto"; |
||||
|
||||
import "google/protobuf/any.proto"; |
||||
import "google/protobuf/struct.proto"; |
||||
import "google/protobuf/wrappers.proto"; |
||||
|
||||
import "opencensus/proto/trace/v1/trace_config.proto"; |
||||
|
||||
import "envoy/annotations/deprecation.proto"; |
||||
import "udpa/annotations/status.proto"; |
||||
import "udpa/annotations/versioning.proto"; |
||||
import "validate/validate.proto"; |
||||
|
||||
option java_package = "io.envoyproxy.envoy.config.trace.v4alpha"; |
||||
option java_outer_classname = "TraceProto"; |
||||
option java_multiple_files = true; |
||||
option (udpa.annotations.file_status).package_version_status = NEXT_MAJOR_VERSION_CANDIDATE; |
||||
|
||||
// [#protodoc-title: Tracing] |
||||
// Tracing :ref:`architecture overview <arch_overview_tracing>`. |
||||
|
||||
// The tracing configuration specifies settings for an HTTP tracer provider used by Envoy. |
||||
// |
||||
// Envoy may support other tracers in the future, but right now the HTTP tracer is the only one |
||||
// supported. |
||||
// |
||||
// .. attention:: |
||||
// |
||||
// Use of this message type has been deprecated in favor of direct use of |
||||
// :ref:`Tracing.Http <envoy_api_msg_config.trace.v4alpha.Tracing.Http>`. |
||||
message Tracing { |
||||
option (udpa.annotations.versioning).previous_message_type = "envoy.config.trace.v3.Tracing"; |
||||
|
||||
// Configuration for an HTTP tracer provider used by Envoy. |
||||
// |
||||
// The configuration is defined by the |
||||
// :ref:`HttpConnectionManager.Tracing <envoy_api_msg_extensions.filters.network.http_connection_manager.v4alpha.HttpConnectionManager.Tracing>` |
||||
// :ref:`provider <envoy_api_field_extensions.filters.network.http_connection_manager.v4alpha.HttpConnectionManager.Tracing.provider>` |
||||
// field. |
||||
message Http { |
||||
option (udpa.annotations.versioning).previous_message_type = |
||||
"envoy.config.trace.v3.Tracing.Http"; |
||||
|
||||
reserved 2; |
||||
|
||||
reserved "config"; |
||||
|
||||
// The name of the HTTP trace driver to instantiate. The name must match a |
||||
// supported HTTP trace driver. Built-in trace drivers: |
||||
// |
||||
// - *envoy.tracers.lightstep* |
||||
// - *envoy.tracers.zipkin* |
||||
// - *envoy.tracers.dynamic_ot* |
||||
// - *envoy.tracers.datadog* |
||||
// - *envoy.tracers.opencensus* |
||||
// - *envoy.tracers.xray* |
||||
string name = 1 [(validate.rules).string = {min_bytes: 1}]; |
||||
|
||||
// Trace driver specific configuration which depends on the driver being instantiated. |
||||
// See the trace drivers for examples: |
||||
// |
||||
// - :ref:`LightstepConfig <envoy_api_msg_config.trace.v4alpha.LightstepConfig>` |
||||
// - :ref:`ZipkinConfig <envoy_api_msg_config.trace.v4alpha.ZipkinConfig>` |
||||
// - :ref:`DynamicOtConfig <envoy_api_msg_config.trace.v4alpha.DynamicOtConfig>` |
||||
// - :ref:`DatadogConfig <envoy_api_msg_config.trace.v4alpha.DatadogConfig>` |
||||
// - :ref:`OpenCensusConfig <envoy_api_msg_config.trace.v4alpha.OpenCensusConfig>` |
||||
// - :ref:`AWS X-Ray <envoy_api_msg_config.trace.v4alpha.XRayConfig>` |
||||
oneof config_type { |
||||
google.protobuf.Any typed_config = 3; |
||||
} |
||||
} |
||||
|
||||
// Provides configuration for the HTTP tracer. |
||||
Http http = 1; |
||||
} |
||||
|
||||
// Configuration for the LightStep tracer. |
||||
// [#extension: envoy.tracers.lightstep] |
||||
message LightstepConfig { |
||||
option (udpa.annotations.versioning).previous_message_type = |
||||
"envoy.config.trace.v3.LightstepConfig"; |
||||
|
||||
// Available propagation modes |
||||
enum PropagationMode { |
||||
// Propagate trace context in the single header x-ot-span-context. |
||||
ENVOY = 0; |
||||
|
||||
// Propagate trace context using LightStep's native format. |
||||
LIGHTSTEP = 1; |
||||
|
||||
// Propagate trace context using the b3 format. |
||||
B3 = 2; |
||||
|
||||
// Propagation trace context using the w3 trace-context standard. |
||||
TRACE_CONTEXT = 3; |
||||
} |
||||
|
||||
// The cluster manager cluster that hosts the LightStep collectors. |
||||
string collector_cluster = 1 [(validate.rules).string = {min_bytes: 1}]; |
||||
|
||||
// File containing the access token to the `LightStep |
||||
// <https://lightstep.com/>`_ API. |
||||
string access_token_file = 2 [(validate.rules).string = {min_bytes: 1}]; |
||||
|
||||
// Propagation modes to use by LightStep's tracer. |
||||
repeated PropagationMode propagation_modes = 3 |
||||
[(validate.rules).repeated = {items {enum {defined_only: true}}}]; |
||||
} |
||||
|
||||
// Configuration for the Zipkin tracer. |
||||
// [#extension: envoy.tracers.zipkin] |
||||
// [#next-free-field: 6] |
||||
message ZipkinConfig { |
||||
option (udpa.annotations.versioning).previous_message_type = "envoy.config.trace.v3.ZipkinConfig"; |
||||
|
||||
// Available Zipkin collector endpoint versions. |
||||
enum CollectorEndpointVersion { |
||||
// Zipkin API v1, JSON over HTTP. |
||||
// [#comment: The default implementation of Zipkin client before this field is added was only v1 |
||||
// and the way user configure this was by not explicitly specifying the version. Consequently, |
||||
// before this is added, the corresponding Zipkin collector expected to receive v1 payload. |
||||
// Hence the motivation of adding HTTP_JSON_V1 as the default is to avoid a breaking change when |
||||
// user upgrading Envoy with this change. Furthermore, we also immediately deprecate this field, |
||||
// since in Zipkin realm this v1 version is considered to be not preferable anymore.] |
||||
DEPRECATED_AND_UNAVAILABLE_DO_NOT_USE = 0 |
||||
[deprecated = true, (envoy.annotations.disallowed_by_default_enum) = true]; |
||||
|
||||
// Zipkin API v2, JSON over HTTP. |
||||
HTTP_JSON = 1; |
||||
|
||||
// Zipkin API v2, protobuf over HTTP. |
||||
HTTP_PROTO = 2; |
||||
|
||||
// [#not-implemented-hide:] |
||||
GRPC = 3; |
||||
} |
||||
|
||||
// The cluster manager cluster that hosts the Zipkin collectors. Note that the |
||||
// Zipkin cluster must be defined in the :ref:`Bootstrap static cluster |
||||
// resources <envoy_api_field_config.bootstrap.v4alpha.Bootstrap.StaticResources.clusters>`. |
||||
string collector_cluster = 1 [(validate.rules).string = {min_bytes: 1}]; |
||||
|
||||
// The API endpoint of the Zipkin service where the spans will be sent. When |
||||
// using a standard Zipkin installation, the API endpoint is typically |
||||
// /api/v1/spans, which is the default value. |
||||
string collector_endpoint = 2 [(validate.rules).string = {min_bytes: 1}]; |
||||
|
||||
// Determines whether a 128bit trace id will be used when creating a new |
||||
// trace instance. The default value is false, which will result in a 64 bit trace id being used. |
||||
bool trace_id_128bit = 3; |
||||
|
||||
// Determines whether client and server spans will share the same span context. |
||||
// The default value is true. |
||||
google.protobuf.BoolValue shared_span_context = 4; |
||||
|
||||
// Determines the selected collector endpoint version. By default, the ``HTTP_JSON_V1`` will be |
||||
// used. |
||||
CollectorEndpointVersion collector_endpoint_version = 5; |
||||
} |
||||
|
||||
// DynamicOtConfig is used to dynamically load a tracer from a shared library |
||||
// that implements the `OpenTracing dynamic loading API |
||||
// <https://github.com/opentracing/opentracing-cpp>`_. |
||||
// [#extension: envoy.tracers.dynamic_ot] |
||||
message DynamicOtConfig { |
||||
option (udpa.annotations.versioning).previous_message_type = |
||||
"envoy.config.trace.v3.DynamicOtConfig"; |
||||
|
||||
// Dynamic library implementing the `OpenTracing API |
||||
// <https://github.com/opentracing/opentracing-cpp>`_. |
||||
string library = 1 [(validate.rules).string = {min_bytes: 1}]; |
||||
|
||||
// The configuration to use when creating a tracer from the given dynamic |
||||
// library. |
||||
google.protobuf.Struct config = 2; |
||||
} |
||||
|
||||
// Configuration for the Datadog tracer. |
||||
// [#extension: envoy.tracers.datadog] |
||||
message DatadogConfig { |
||||
option (udpa.annotations.versioning).previous_message_type = |
||||
"envoy.config.trace.v3.DatadogConfig"; |
||||
|
||||
// The cluster to use for submitting traces to the Datadog agent. |
||||
string collector_cluster = 1 [(validate.rules).string = {min_bytes: 1}]; |
||||
|
||||
// The name used for the service when traces are generated by envoy. |
||||
string service_name = 2 [(validate.rules).string = {min_bytes: 1}]; |
||||
} |
||||
|
||||
// Configuration for the OpenCensus tracer. |
||||
// [#next-free-field: 15] |
||||
// [#extension: envoy.tracers.opencensus] |
||||
message OpenCensusConfig { |
||||
option (udpa.annotations.versioning).previous_message_type = |
||||
"envoy.config.trace.v3.OpenCensusConfig"; |
||||
|
||||
enum TraceContext { |
||||
// No-op default, no trace context is utilized. |
||||
NONE = 0; |
||||
|
||||
// W3C Trace-Context format "traceparent:" header. |
||||
TRACE_CONTEXT = 1; |
||||
|
||||
// Binary "grpc-trace-bin:" header. |
||||
GRPC_TRACE_BIN = 2; |
||||
|
||||
// "X-Cloud-Trace-Context:" header. |
||||
CLOUD_TRACE_CONTEXT = 3; |
||||
|
||||
// X-B3-* headers. |
||||
B3 = 4; |
||||
} |
||||
|
||||
reserved 7; |
||||
|
||||
// Configures tracing, e.g. the sampler, max number of annotations, etc. |
||||
opencensus.proto.trace.v1.TraceConfig trace_config = 1; |
||||
|
||||
// Enables the stdout exporter if set to true. This is intended for debugging |
||||
// purposes. |
||||
bool stdout_exporter_enabled = 2; |
||||
|
||||
// Enables the Stackdriver exporter if set to true. The project_id must also |
||||
// be set. |
||||
bool stackdriver_exporter_enabled = 3; |
||||
|
||||
// The Cloud project_id to use for Stackdriver tracing. |
||||
string stackdriver_project_id = 4; |
||||
|
||||
// (optional) By default, the Stackdriver exporter will connect to production |
||||
// Stackdriver. If stackdriver_address is non-empty, it will instead connect |
||||
// to this address, which is in the gRPC format: |
||||
// https://github.com/grpc/grpc/blob/master/doc/naming.md |
||||
string stackdriver_address = 10; |
||||
|
||||
// (optional) The gRPC server that hosts Stackdriver tracing service. Only |
||||
// Google gRPC is supported. If :ref:`target_uri <envoy_v3_api_field_config.core.v3.GrpcService.GoogleGrpc.target_uri>` |
||||
// is not provided, the default production Stackdriver address will be used. |
||||
core.v4alpha.GrpcService stackdriver_grpc_service = 13; |
||||
|
||||
// Enables the Zipkin exporter if set to true. The url and service name must |
||||
// also be set. |
||||
bool zipkin_exporter_enabled = 5; |
||||
|
||||
// The URL to Zipkin, e.g. "http://127.0.0.1:9411/api/v2/spans" |
||||
string zipkin_url = 6; |
||||
|
||||
// Enables the OpenCensus Agent exporter if set to true. The ocagent_address or |
||||
// ocagent_grpc_service must also be set. |
||||
bool ocagent_exporter_enabled = 11; |
||||
|
||||
// The address of the OpenCensus Agent, if its exporter is enabled, in gRPC |
||||
// format: https://github.com/grpc/grpc/blob/master/doc/naming.md |
||||
// [#comment:TODO: deprecate this field] |
||||
string ocagent_address = 12; |
||||
|
||||
// (optional) The gRPC server hosted by the OpenCensus Agent. Only Google gRPC is supported. |
||||
// This is only used if the ocagent_address is left empty. |
||||
core.v4alpha.GrpcService ocagent_grpc_service = 14; |
||||
|
||||
// List of incoming trace context headers we will accept. First one found |
||||
// wins. |
||||
repeated TraceContext incoming_trace_context = 8; |
||||
|
||||
// List of outgoing trace context headers we will produce. |
||||
repeated TraceContext outgoing_trace_context = 9; |
||||
} |
||||
|
||||
// Configuration structure. |
||||
message TraceServiceConfig { |
||||
option (udpa.annotations.versioning).previous_message_type = |
||||
"envoy.config.trace.v3.TraceServiceConfig"; |
||||
|
||||
// The upstream gRPC cluster that hosts the metrics service. |
||||
core.v4alpha.GrpcService grpc_service = 1 [(validate.rules).message = {required: true}]; |
||||
} |
@ -0,0 +1,12 @@ |
||||
# DO NOT EDIT. This file is generated by tools/proto_sync.py. |
||||
|
||||
load("@envoy_api//bazel:api_build_system.bzl", "api_proto_package") |
||||
|
||||
licenses(["notice"]) # Apache 2 |
||||
|
||||
api_proto_package( |
||||
deps = [ |
||||
"//envoy/config/trace/v3:pkg", |
||||
"@com_github_cncf_udpa//udpa/annotations:pkg", |
||||
], |
||||
) |
@ -0,0 +1,27 @@ |
||||
syntax = "proto3"; |
||||
|
||||
package envoy.extensions.tracers.datadog.v4alpha; |
||||
|
||||
import "udpa/annotations/status.proto"; |
||||
import "udpa/annotations/versioning.proto"; |
||||
import "validate/validate.proto"; |
||||
|
||||
option java_package = "io.envoyproxy.envoy.extensions.tracers.datadog.v4alpha"; |
||||
option java_outer_classname = "DatadogProto"; |
||||
option java_multiple_files = true; |
||||
option (udpa.annotations.file_status).package_version_status = NEXT_MAJOR_VERSION_CANDIDATE; |
||||
|
||||
// [#protodoc-title: Datadog tracer] |
||||
|
||||
// Configuration for the Datadog tracer. |
||||
// [#extension: envoy.tracers.datadog] |
||||
message DatadogConfig { |
||||
option (udpa.annotations.versioning).previous_message_type = |
||||
"envoy.config.trace.v3.DatadogConfig"; |
||||
|
||||
// The cluster to use for submitting traces to the Datadog agent. |
||||
string collector_cluster = 1 [(validate.rules).string = {min_bytes: 1}]; |
||||
|
||||
// The name used for the service when traces are generated by envoy. |
||||
string service_name = 2 [(validate.rules).string = {min_bytes: 1}]; |
||||
} |
@ -0,0 +1,12 @@ |
||||
# DO NOT EDIT. This file is generated by tools/proto_sync.py. |
||||
|
||||
load("@envoy_api//bazel:api_build_system.bzl", "api_proto_package") |
||||
|
||||
licenses(["notice"]) # Apache 2 |
||||
|
||||
api_proto_package( |
||||
deps = [ |
||||
"//envoy/config/trace/v3:pkg", |
||||
"@com_github_cncf_udpa//udpa/annotations:pkg", |
||||
], |
||||
) |
@ -0,0 +1,33 @@ |
||||
syntax = "proto3"; |
||||
|
||||
package envoy.extensions.tracers.dynamic_ot.v4alpha; |
||||
|
||||
import "google/protobuf/struct.proto"; |
||||
|
||||
import "udpa/annotations/status.proto"; |
||||
import "udpa/annotations/versioning.proto"; |
||||
import "validate/validate.proto"; |
||||
|
||||
option java_package = "io.envoyproxy.envoy.extensions.tracers.dynamic_ot.v4alpha"; |
||||
option java_outer_classname = "DynamicOtProto"; |
||||
option java_multiple_files = true; |
||||
option (udpa.annotations.file_status).package_version_status = NEXT_MAJOR_VERSION_CANDIDATE; |
||||
|
||||
// [#protodoc-title: Dynamically loadable OpenTracing tracer] |
||||
|
||||
// DynamicOtConfig is used to dynamically load a tracer from a shared library |
||||
// that implements the `OpenTracing dynamic loading API |
||||
// <https://github.com/opentracing/opentracing-cpp>`_. |
||||
// [#extension: envoy.tracers.dynamic_ot] |
||||
message DynamicOtConfig { |
||||
option (udpa.annotations.versioning).previous_message_type = |
||||
"envoy.config.trace.v3.DynamicOtConfig"; |
||||
|
||||
// Dynamic library implementing the `OpenTracing API |
||||
// <https://github.com/opentracing/opentracing-cpp>`_. |
||||
string library = 1 [(validate.rules).string = {min_bytes: 1}]; |
||||
|
||||
// The configuration to use when creating a tracer from the given dynamic |
||||
// library. |
||||
google.protobuf.Struct config = 2; |
||||
} |
@ -0,0 +1,12 @@ |
||||
# DO NOT EDIT. This file is generated by tools/proto_sync.py. |
||||
|
||||
load("@envoy_api//bazel:api_build_system.bzl", "api_proto_package") |
||||
|
||||
licenses(["notice"]) # Apache 2 |
||||
|
||||
api_proto_package( |
||||
deps = [ |
||||
"//envoy/config/trace/v3:pkg", |
||||
"@com_github_cncf_udpa//udpa/annotations:pkg", |
||||
], |
||||
) |
@ -0,0 +1,47 @@ |
||||
syntax = "proto3"; |
||||
|
||||
package envoy.extensions.tracers.lightstep.v4alpha; |
||||
|
||||
import "udpa/annotations/status.proto"; |
||||
import "udpa/annotations/versioning.proto"; |
||||
import "validate/validate.proto"; |
||||
|
||||
option java_package = "io.envoyproxy.envoy.extensions.tracers.lightstep.v4alpha"; |
||||
option java_outer_classname = "LightstepProto"; |
||||
option java_multiple_files = true; |
||||
option (udpa.annotations.file_status).package_version_status = NEXT_MAJOR_VERSION_CANDIDATE; |
||||
|
||||
// [#protodoc-title: LightStep tracer] |
||||
|
||||
// Configuration for the LightStep tracer. |
||||
// [#extension: envoy.tracers.lightstep] |
||||
message LightstepConfig { |
||||
option (udpa.annotations.versioning).previous_message_type = |
||||
"envoy.config.trace.v3.LightstepConfig"; |
||||
|
||||
// Available propagation modes |
||||
enum PropagationMode { |
||||
// Propagate trace context in the single header x-ot-span-context. |
||||
ENVOY = 0; |
||||
|
||||
// Propagate trace context using LightStep's native format. |
||||
LIGHTSTEP = 1; |
||||
|
||||
// Propagate trace context using the b3 format. |
||||
B3 = 2; |
||||
|
||||
// Propagation trace context using the w3 trace-context standard. |
||||
TRACE_CONTEXT = 3; |
||||
} |
||||
|
||||
// The cluster manager cluster that hosts the LightStep collectors. |
||||
string collector_cluster = 1 [(validate.rules).string = {min_bytes: 1}]; |
||||
|
||||
// File containing the access token to the `LightStep |
||||
// <https://lightstep.com/>`_ API. |
||||
string access_token_file = 2 [(validate.rules).string = {min_bytes: 1}]; |
||||
|
||||
// Propagation modes to use by LightStep's tracer. |
||||
repeated PropagationMode propagation_modes = 3 |
||||
[(validate.rules).repeated = {items {enum {defined_only: true}}}]; |
||||
} |
@ -0,0 +1,14 @@ |
||||
# DO NOT EDIT. This file is generated by tools/proto_sync.py. |
||||
|
||||
load("@envoy_api//bazel:api_build_system.bzl", "api_proto_package") |
||||
|
||||
licenses(["notice"]) # Apache 2 |
||||
|
||||
api_proto_package( |
||||
deps = [ |
||||
"//envoy/config/core/v4alpha:pkg", |
||||
"//envoy/config/trace/v3:pkg", |
||||
"@com_github_cncf_udpa//udpa/annotations:pkg", |
||||
"@opencensus_proto//opencensus/proto/trace/v1:trace_config_proto", |
||||
], |
||||
) |
@ -0,0 +1,97 @@ |
||||
syntax = "proto3"; |
||||
|
||||
package envoy.extensions.tracers.opencensus.v4alpha; |
||||
|
||||
import "envoy/config/core/v4alpha/grpc_service.proto"; |
||||
|
||||
import "opencensus/proto/trace/v1/trace_config.proto"; |
||||
|
||||
import "udpa/annotations/status.proto"; |
||||
import "udpa/annotations/versioning.proto"; |
||||
import "validate/validate.proto"; |
||||
|
||||
option java_package = "io.envoyproxy.envoy.extensions.tracers.opencensus.v4alpha"; |
||||
option java_outer_classname = "OpencensusProto"; |
||||
option java_multiple_files = true; |
||||
option (udpa.annotations.file_status).package_version_status = NEXT_MAJOR_VERSION_CANDIDATE; |
||||
|
||||
// [#protodoc-title: OpenCensus tracer] |
||||
|
||||
// Configuration for the OpenCensus tracer. |
||||
// [#next-free-field: 15] |
||||
// [#extension: envoy.tracers.opencensus] |
||||
message OpenCensusConfig { |
||||
option (udpa.annotations.versioning).previous_message_type = |
||||
"envoy.config.trace.v3.OpenCensusConfig"; |
||||
|
||||
enum TraceContext { |
||||
// No-op default, no trace context is utilized. |
||||
NONE = 0; |
||||
|
||||
// W3C Trace-Context format "traceparent:" header. |
||||
TRACE_CONTEXT = 1; |
||||
|
||||
// Binary "grpc-trace-bin:" header. |
||||
GRPC_TRACE_BIN = 2; |
||||
|
||||
// "X-Cloud-Trace-Context:" header. |
||||
CLOUD_TRACE_CONTEXT = 3; |
||||
|
||||
// X-B3-* headers. |
||||
B3 = 4; |
||||
} |
||||
|
||||
reserved 7; |
||||
|
||||
// Configures tracing, e.g. the sampler, max number of annotations, etc. |
||||
.opencensus.proto.trace.v1.TraceConfig trace_config = 1; |
||||
|
||||
// Enables the stdout exporter if set to true. This is intended for debugging |
||||
// purposes. |
||||
bool stdout_exporter_enabled = 2; |
||||
|
||||
// Enables the Stackdriver exporter if set to true. The project_id must also |
||||
// be set. |
||||
bool stackdriver_exporter_enabled = 3; |
||||
|
||||
// The Cloud project_id to use for Stackdriver tracing. |
||||
string stackdriver_project_id = 4; |
||||
|
||||
// (optional) By default, the Stackdriver exporter will connect to production |
||||
// Stackdriver. If stackdriver_address is non-empty, it will instead connect |
||||
// to this address, which is in the gRPC format: |
||||
// https://github.com/grpc/grpc/blob/master/doc/naming.md |
||||
string stackdriver_address = 10; |
||||
|
||||
// (optional) The gRPC server that hosts Stackdriver tracing service. Only |
||||
// Google gRPC is supported. If :ref:`target_uri <envoy_v3_api_field_config.core.v3.GrpcService.GoogleGrpc.target_uri>` |
||||
// is not provided, the default production Stackdriver address will be used. |
||||
config.core.v4alpha.GrpcService stackdriver_grpc_service = 13; |
||||
|
||||
// Enables the Zipkin exporter if set to true. The url and service name must |
||||
// also be set. |
||||
bool zipkin_exporter_enabled = 5; |
||||
|
||||
// The URL to Zipkin, e.g. "http://127.0.0.1:9411/api/v2/spans" |
||||
string zipkin_url = 6; |
||||
|
||||
// Enables the OpenCensus Agent exporter if set to true. The ocagent_address or |
||||
// ocagent_grpc_service must also be set. |
||||
bool ocagent_exporter_enabled = 11; |
||||
|
||||
// The address of the OpenCensus Agent, if its exporter is enabled, in gRPC |
||||
// format: https://github.com/grpc/grpc/blob/master/doc/naming.md |
||||
// [#comment:TODO: deprecate this field] |
||||
string ocagent_address = 12; |
||||
|
||||
// (optional) The gRPC server hosted by the OpenCensus Agent. Only Google gRPC is supported. |
||||
// This is only used if the ocagent_address is left empty. |
||||
config.core.v4alpha.GrpcService ocagent_grpc_service = 14; |
||||
|
||||
// List of incoming trace context headers we will accept. First one found |
||||
// wins. |
||||
repeated TraceContext incoming_trace_context = 8; |
||||
|
||||
// List of outgoing trace context headers we will produce. |
||||
repeated TraceContext outgoing_trace_context = 9; |
||||
} |
@ -0,0 +1,13 @@ |
||||
# DO NOT EDIT. This file is generated by tools/proto_sync.py. |
||||
|
||||
load("@envoy_api//bazel:api_build_system.bzl", "api_proto_package") |
||||
|
||||
licenses(["notice"]) # Apache 2 |
||||
|
||||
api_proto_package( |
||||
deps = [ |
||||
"//envoy/config/core/v4alpha:pkg", |
||||
"//envoy/config/trace/v3:pkg", |
||||
"@com_github_cncf_udpa//udpa/annotations:pkg", |
||||
], |
||||
) |
@ -0,0 +1,13 @@ |
||||
# DO NOT EDIT. This file is generated by tools/proto_sync.py. |
||||
|
||||
load("@envoy_api//bazel:api_build_system.bzl", "api_proto_package") |
||||
|
||||
licenses(["notice"]) # Apache 2 |
||||
|
||||
api_proto_package( |
||||
deps = [ |
||||
"//envoy/annotations:pkg", |
||||
"//envoy/config/trace/v3:pkg", |
||||
"@com_github_cncf_udpa//udpa/annotations:pkg", |
||||
], |
||||
) |
@ -0,0 +1,68 @@ |
||||
syntax = "proto3"; |
||||
|
||||
package envoy.extensions.tracers.zipkin.v4alpha; |
||||
|
||||
import "google/protobuf/wrappers.proto"; |
||||
|
||||
import "envoy/annotations/deprecation.proto"; |
||||
import "udpa/annotations/status.proto"; |
||||
import "udpa/annotations/versioning.proto"; |
||||
import "validate/validate.proto"; |
||||
|
||||
option java_package = "io.envoyproxy.envoy.extensions.tracers.zipkin.v4alpha"; |
||||
option java_outer_classname = "ZipkinProto"; |
||||
option java_multiple_files = true; |
||||
option (udpa.annotations.file_status).package_version_status = NEXT_MAJOR_VERSION_CANDIDATE; |
||||
|
||||
// [#protodoc-title: Zipkin tracer] |
||||
|
||||
// Configuration for the Zipkin tracer. |
||||
// [#extension: envoy.tracers.zipkin] |
||||
// [#next-free-field: 6] |
||||
message ZipkinConfig { |
||||
option (udpa.annotations.versioning).previous_message_type = "envoy.config.trace.v3.ZipkinConfig"; |
||||
|
||||
// Available Zipkin collector endpoint versions. |
||||
enum CollectorEndpointVersion { |
||||
// Zipkin API v1, JSON over HTTP. |
||||
// [#comment: The default implementation of Zipkin client before this field is added was only v1 |
||||
// and the way user configure this was by not explicitly specifying the version. Consequently, |
||||
// before this is added, the corresponding Zipkin collector expected to receive v1 payload. |
||||
// Hence the motivation of adding HTTP_JSON_V1 as the default is to avoid a breaking change when |
||||
// user upgrading Envoy with this change. Furthermore, we also immediately deprecate this field, |
||||
// since in Zipkin realm this v1 version is considered to be not preferable anymore.] |
||||
DEPRECATED_AND_UNAVAILABLE_DO_NOT_USE = 0 |
||||
[deprecated = true, (envoy.annotations.disallowed_by_default_enum) = true]; |
||||
|
||||
// Zipkin API v2, JSON over HTTP. |
||||
HTTP_JSON = 1; |
||||
|
||||
// Zipkin API v2, protobuf over HTTP. |
||||
HTTP_PROTO = 2; |
||||
|
||||
// [#not-implemented-hide:] |
||||
GRPC = 3; |
||||
} |
||||
|
||||
// The cluster manager cluster that hosts the Zipkin collectors. Note that the |
||||
// Zipkin cluster must be defined in the :ref:`Bootstrap static cluster |
||||
// resources <envoy_api_field_config.bootstrap.v4alpha.Bootstrap.StaticResources.clusters>`. |
||||
string collector_cluster = 1 [(validate.rules).string = {min_bytes: 1}]; |
||||
|
||||
// The API endpoint of the Zipkin service where the spans will be sent. When |
||||
// using a standard Zipkin installation, the API endpoint is typically |
||||
// /api/v1/spans, which is the default value. |
||||
string collector_endpoint = 2 [(validate.rules).string = {min_bytes: 1}]; |
||||
|
||||
// Determines whether a 128bit trace id will be used when creating a new |
||||
// trace instance. The default value is false, which will result in a 64 bit trace id being used. |
||||
bool trace_id_128bit = 3; |
||||
|
||||
// Determines whether client and server spans will share the same span context. |
||||
// The default value is true. |
||||
google.protobuf.BoolValue shared_span_context = 4; |
||||
|
||||
// Determines the selected collector endpoint version. By default, the ``HTTP_JSON_V1`` will be |
||||
// used. |
||||
CollectorEndpointVersion collector_endpoint_version = 5; |
||||
} |
Loading…
Reference in new issue