xds_api/generated/envoy.config.trace.v3.rs
1// This file is @generated by prost-build.
2/// The tracing configuration specifies settings for an HTTP tracer provider used by Envoy.
3///
4/// Envoy may support other tracers in the future, but right now the HTTP tracer is the only one
5/// supported.
6///
7/// .. attention::
8///
9/// Use of this message type has been deprecated in favor of direct use of
10/// :ref:`Tracing.Http <envoy_v3_api_msg_config.trace.v3.Tracing.Http>`.
11#[derive(Clone, PartialEq, ::prost::Message)]
12pub struct Tracing {
13 /// Provides configuration for the HTTP tracer.
14 #[prost(message, optional, tag = "1")]
15 pub http: ::core::option::Option<tracing::Http>,
16}
17/// Nested message and enum types in `Tracing`.
18pub mod tracing {
19 /// Configuration for an HTTP tracer provider used by Envoy.
20 ///
21 /// The configuration is defined by the
22 /// :ref:`HttpConnectionManager.Tracing <envoy_v3_api_msg_extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.Tracing>`
23 /// :ref:`provider <envoy_v3_api_field_extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.Tracing.provider>`
24 /// field.
25 #[derive(Clone, PartialEq, ::prost::Message)]
26 pub struct Http {
27 /// The name of the HTTP trace driver to instantiate. The name must match a
28 /// supported HTTP trace driver.
29 /// See the :ref:`extensions listed in typed_config below <extension_category_envoy.tracers>` for the default list of the HTTP trace driver.
30 #[prost(string, tag = "1")]
31 pub name: ::prost::alloc::string::String,
32 /// Trace driver specific configuration which must be set according to the driver being instantiated.
33 /// \[#extension-category: envoy.tracers\]
34 #[prost(oneof = "http::ConfigType", tags = "3")]
35 pub config_type: ::core::option::Option<http::ConfigType>,
36 }
37 /// Nested message and enum types in `Http`.
38 pub mod http {
39 /// Trace driver specific configuration which must be set according to the driver being instantiated.
40 /// \[#extension-category: envoy.tracers\]
41 #[derive(Clone, PartialEq, ::prost::Oneof)]
42 pub enum ConfigType {
43 #[prost(message, tag = "3")]
44 TypedConfig(super::super::super::super::super::super::google::protobuf::Any),
45 }
46 }
47 impl ::prost::Name for Http {
48 const NAME: &'static str = "Http";
49 const PACKAGE: &'static str = "envoy.config.trace.v3";
50 fn full_name() -> ::prost::alloc::string::String {
51 "envoy.config.trace.v3.Tracing.Http".into()
52 }
53 fn type_url() -> ::prost::alloc::string::String {
54 "type.googleapis.com/envoy.config.trace.v3.Tracing.Http".into()
55 }
56 }
57}
58impl ::prost::Name for Tracing {
59 const NAME: &'static str = "Tracing";
60 const PACKAGE: &'static str = "envoy.config.trace.v3";
61 fn full_name() -> ::prost::alloc::string::String {
62 "envoy.config.trace.v3.Tracing".into()
63 }
64 fn type_url() -> ::prost::alloc::string::String {
65 "type.googleapis.com/envoy.config.trace.v3.Tracing".into()
66 }
67}
68/// Configuration for the Datadog tracer.
69/// \[#extension: envoy.tracers.datadog\]
70#[derive(Clone, PartialEq, ::prost::Message)]
71pub struct DatadogConfig {
72 /// The cluster to use for submitting traces to the Datadog agent.
73 #[prost(string, tag = "1")]
74 pub collector_cluster: ::prost::alloc::string::String,
75 /// The name used for the service when traces are generated by envoy.
76 #[prost(string, tag = "2")]
77 pub service_name: ::prost::alloc::string::String,
78 /// Optional hostname to use when sending spans to the collector_cluster. Useful for collectors
79 /// that require a specific hostname. Defaults to :ref:`collector_cluster <envoy_v3_api_field_config.trace.v3.DatadogConfig.collector_cluster>` above.
80 #[prost(string, tag = "3")]
81 pub collector_hostname: ::prost::alloc::string::String,
82}
83impl ::prost::Name for DatadogConfig {
84 const NAME: &'static str = "DatadogConfig";
85 const PACKAGE: &'static str = "envoy.config.trace.v3";
86 fn full_name() -> ::prost::alloc::string::String {
87 "envoy.config.trace.v3.DatadogConfig".into()
88 }
89 fn type_url() -> ::prost::alloc::string::String {
90 "type.googleapis.com/envoy.config.trace.v3.DatadogConfig".into()
91 }
92}
93/// DynamicOtConfig is used to dynamically load a tracer from a shared library
94/// that implements the `OpenTracing dynamic loading API
95/// <<https://github.com/opentracing/opentracing-cpp>`_.>
96/// \[#extension: envoy.tracers.dynamic_ot\]
97#[derive(Clone, PartialEq, ::prost::Message)]
98pub struct DynamicOtConfig {
99 /// Dynamic library implementing the `OpenTracing API
100 /// <<https://github.com/opentracing/opentracing-cpp>`_.>
101 #[deprecated]
102 #[prost(string, tag = "1")]
103 pub library: ::prost::alloc::string::String,
104 /// The configuration to use when creating a tracer from the given dynamic
105 /// library.
106 #[deprecated]
107 #[prost(message, optional, tag = "2")]
108 pub config: ::core::option::Option<
109 super::super::super::super::google::protobuf::Struct,
110 >,
111}
112impl ::prost::Name for DynamicOtConfig {
113 const NAME: &'static str = "DynamicOtConfig";
114 const PACKAGE: &'static str = "envoy.config.trace.v3";
115 fn full_name() -> ::prost::alloc::string::String {
116 "envoy.config.trace.v3.DynamicOtConfig".into()
117 }
118 fn type_url() -> ::prost::alloc::string::String {
119 "type.googleapis.com/envoy.config.trace.v3.DynamicOtConfig".into()
120 }
121}
122/// Configuration for the LightStep tracer.
123/// \[#extension: envoy.tracers.lightstep\]
124/// \[#not-implemented-hide:\]
125#[derive(Clone, PartialEq, ::prost::Message)]
126pub struct LightstepConfig {
127 /// The cluster manager cluster that hosts the LightStep collectors.
128 #[prost(string, tag = "1")]
129 pub collector_cluster: ::prost::alloc::string::String,
130 /// File containing the access token to the `LightStep
131 /// <<https://lightstep.com/>`_> API.
132 #[deprecated]
133 #[prost(string, tag = "2")]
134 pub access_token_file: ::prost::alloc::string::String,
135 /// Access token to the `LightStep <<https://lightstep.com/>`_> API.
136 #[prost(message, optional, tag = "4")]
137 pub access_token: ::core::option::Option<super::super::core::v3::DataSource>,
138 /// Propagation modes to use by LightStep's tracer.
139 #[prost(
140 enumeration = "lightstep_config::PropagationMode",
141 repeated,
142 packed = "false",
143 tag = "3"
144 )]
145 pub propagation_modes: ::prost::alloc::vec::Vec<i32>,
146}
147/// Nested message and enum types in `LightstepConfig`.
148pub mod lightstep_config {
149 /// Available propagation modes
150 #[derive(
151 Clone,
152 Copy,
153 Debug,
154 PartialEq,
155 Eq,
156 Hash,
157 PartialOrd,
158 Ord,
159 ::prost::Enumeration
160 )]
161 #[repr(i32)]
162 pub enum PropagationMode {
163 /// Propagate trace context in the single header x-ot-span-context.
164 Envoy = 0,
165 /// Propagate trace context using LightStep's native format.
166 Lightstep = 1,
167 /// Propagate trace context using the b3 format.
168 B3 = 2,
169 /// Propagation trace context using the w3 trace-context standard.
170 TraceContext = 3,
171 }
172 impl PropagationMode {
173 /// String value of the enum field names used in the ProtoBuf definition.
174 ///
175 /// The values are not transformed in any way and thus are considered stable
176 /// (if the ProtoBuf definition does not change) and safe for programmatic use.
177 pub fn as_str_name(&self) -> &'static str {
178 match self {
179 Self::Envoy => "ENVOY",
180 Self::Lightstep => "LIGHTSTEP",
181 Self::B3 => "B3",
182 Self::TraceContext => "TRACE_CONTEXT",
183 }
184 }
185 /// Creates an enum from field names used in the ProtoBuf definition.
186 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
187 match value {
188 "ENVOY" => Some(Self::Envoy),
189 "LIGHTSTEP" => Some(Self::Lightstep),
190 "B3" => Some(Self::B3),
191 "TRACE_CONTEXT" => Some(Self::TraceContext),
192 _ => None,
193 }
194 }
195 }
196}
197impl ::prost::Name for LightstepConfig {
198 const NAME: &'static str = "LightstepConfig";
199 const PACKAGE: &'static str = "envoy.config.trace.v3";
200 fn full_name() -> ::prost::alloc::string::String {
201 "envoy.config.trace.v3.LightstepConfig".into()
202 }
203 fn type_url() -> ::prost::alloc::string::String {
204 "type.googleapis.com/envoy.config.trace.v3.LightstepConfig".into()
205 }
206}
207/// Configuration for the OpenCensus tracer.
208/// \[#next-free-field: 15\]
209/// \[#extension: envoy.tracers.opencensus\]
210#[derive(Clone, PartialEq, ::prost::Message)]
211pub struct OpenCensusConfig {
212 /// Configures tracing, e.g. the sampler, max number of annotations, etc.
213 #[deprecated]
214 #[prost(message, optional, tag = "1")]
215 pub trace_config: ::core::option::Option<
216 super::super::super::super::opencensus::proto::trace::v1::TraceConfig,
217 >,
218 /// Enables the stdout exporter if set to true. This is intended for debugging
219 /// purposes.
220 #[deprecated]
221 #[prost(bool, tag = "2")]
222 pub stdout_exporter_enabled: bool,
223 /// Enables the Stackdriver exporter if set to true. The project_id must also
224 /// be set.
225 #[deprecated]
226 #[prost(bool, tag = "3")]
227 pub stackdriver_exporter_enabled: bool,
228 /// The Cloud project_id to use for Stackdriver tracing.
229 #[deprecated]
230 #[prost(string, tag = "4")]
231 pub stackdriver_project_id: ::prost::alloc::string::String,
232 /// (optional) By default, the Stackdriver exporter will connect to production
233 /// Stackdriver. If stackdriver_address is non-empty, it will instead connect
234 /// to this address, which is in the gRPC format:
235 /// <https://github.com/grpc/grpc/blob/master/doc/naming.md>
236 #[deprecated]
237 #[prost(string, tag = "10")]
238 pub stackdriver_address: ::prost::alloc::string::String,
239 /// (optional) The gRPC server that hosts Stackdriver tracing service. Only
240 /// Google gRPC is supported. If :ref:`target_uri <envoy_v3_api_field_config.core.v3.GrpcService.GoogleGrpc.target_uri>`
241 /// is not provided, the default production Stackdriver address will be used.
242 #[deprecated]
243 #[prost(message, optional, tag = "13")]
244 pub stackdriver_grpc_service: ::core::option::Option<
245 super::super::core::v3::GrpcService,
246 >,
247 /// Enables the Zipkin exporter if set to true. The url and service name must
248 /// also be set. This is deprecated, prefer to use Envoy's :ref:`native Zipkin
249 /// tracer <envoy_v3_api_msg_config.trace.v3.ZipkinConfig>`.
250 #[deprecated]
251 #[prost(bool, tag = "5")]
252 pub zipkin_exporter_enabled: bool,
253 /// The URL to Zipkin, e.g. "<http://127.0.0.1:9411/api/v2/spans".> This is
254 /// deprecated, prefer to use Envoy's :ref:`native Zipkin tracer
255 /// <envoy_v3_api_msg_config.trace.v3.ZipkinConfig>`.
256 #[deprecated]
257 #[prost(string, tag = "6")]
258 pub zipkin_url: ::prost::alloc::string::String,
259 /// Enables the OpenCensus Agent exporter if set to true. The ocagent_address or
260 /// ocagent_grpc_service must also be set.
261 #[deprecated]
262 #[prost(bool, tag = "11")]
263 pub ocagent_exporter_enabled: bool,
264 /// The address of the OpenCensus Agent, if its exporter is enabled, in gRPC
265 /// format: <https://github.com/grpc/grpc/blob/master/doc/naming.md>
266 /// \[#comment:TODO: deprecate this field\]
267 #[deprecated]
268 #[prost(string, tag = "12")]
269 pub ocagent_address: ::prost::alloc::string::String,
270 /// (optional) The gRPC server hosted by the OpenCensus Agent. Only Google gRPC is supported.
271 /// This is only used if the ocagent_address is left empty.
272 #[deprecated]
273 #[prost(message, optional, tag = "14")]
274 pub ocagent_grpc_service: ::core::option::Option<
275 super::super::core::v3::GrpcService,
276 >,
277 /// List of incoming trace context headers we will accept. First one found
278 /// wins.
279 #[deprecated]
280 #[prost(
281 enumeration = "open_census_config::TraceContext",
282 repeated,
283 packed = "false",
284 tag = "8"
285 )]
286 pub incoming_trace_context: ::prost::alloc::vec::Vec<i32>,
287 /// List of outgoing trace context headers we will produce.
288 #[deprecated]
289 #[prost(
290 enumeration = "open_census_config::TraceContext",
291 repeated,
292 packed = "false",
293 tag = "9"
294 )]
295 pub outgoing_trace_context: ::prost::alloc::vec::Vec<i32>,
296}
297/// Nested message and enum types in `OpenCensusConfig`.
298pub mod open_census_config {
299 #[derive(
300 Clone,
301 Copy,
302 Debug,
303 PartialEq,
304 Eq,
305 Hash,
306 PartialOrd,
307 Ord,
308 ::prost::Enumeration
309 )]
310 #[repr(i32)]
311 pub enum TraceContext {
312 /// No-op default, no trace context is utilized.
313 None = 0,
314 /// W3C Trace-Context format "traceparent:" header.
315 TraceContext = 1,
316 /// Binary "grpc-trace-bin:" header.
317 GrpcTraceBin = 2,
318 /// "X-Cloud-Trace-Context:" header.
319 CloudTraceContext = 3,
320 /// X-B3-* headers.
321 B3 = 4,
322 }
323 impl TraceContext {
324 /// String value of the enum field names used in the ProtoBuf definition.
325 ///
326 /// The values are not transformed in any way and thus are considered stable
327 /// (if the ProtoBuf definition does not change) and safe for programmatic use.
328 pub fn as_str_name(&self) -> &'static str {
329 match self {
330 Self::None => "NONE",
331 Self::TraceContext => "TRACE_CONTEXT",
332 Self::GrpcTraceBin => "GRPC_TRACE_BIN",
333 Self::CloudTraceContext => "CLOUD_TRACE_CONTEXT",
334 Self::B3 => "B3",
335 }
336 }
337 /// Creates an enum from field names used in the ProtoBuf definition.
338 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
339 match value {
340 "NONE" => Some(Self::None),
341 "TRACE_CONTEXT" => Some(Self::TraceContext),
342 "GRPC_TRACE_BIN" => Some(Self::GrpcTraceBin),
343 "CLOUD_TRACE_CONTEXT" => Some(Self::CloudTraceContext),
344 "B3" => Some(Self::B3),
345 _ => None,
346 }
347 }
348 }
349}
350impl ::prost::Name for OpenCensusConfig {
351 const NAME: &'static str = "OpenCensusConfig";
352 const PACKAGE: &'static str = "envoy.config.trace.v3";
353 fn full_name() -> ::prost::alloc::string::String {
354 "envoy.config.trace.v3.OpenCensusConfig".into()
355 }
356 fn type_url() -> ::prost::alloc::string::String {
357 "type.googleapis.com/envoy.config.trace.v3.OpenCensusConfig".into()
358 }
359}
360/// Configuration for the OpenTelemetry tracer.
361/// \[#extension: envoy.tracers.opentelemetry\]
362/// \[#next-free-field: 6\]
363#[derive(Clone, PartialEq, ::prost::Message)]
364pub struct OpenTelemetryConfig {
365 /// The upstream gRPC cluster that will receive OTLP traces.
366 /// Note that the tracer drops traces if the server does not read data fast enough.
367 /// This field can be left empty to disable reporting traces to the gRPC service.
368 /// Only one of ``grpc_service``, ``http_service`` may be used.
369 #[prost(message, optional, tag = "1")]
370 pub grpc_service: ::core::option::Option<super::super::core::v3::GrpcService>,
371 /// The upstream HTTP cluster that will receive OTLP traces.
372 /// This field can be left empty to disable reporting traces to the HTTP service.
373 /// Only one of ``grpc_service``, ``http_service`` may be used.
374 ///
375 /// .. note::
376 ///
377 /// Note: The ``request_headers_to_add`` property in the OTLP HTTP exporter service
378 /// does not support the :ref:`format specifier <config_access_log_format>` as used for
379 /// :ref:`HTTP access logging <config_access_log>`.
380 /// The values configured are added as HTTP headers on the OTLP export request
381 /// without any formatting applied.
382 #[prost(message, optional, tag = "3")]
383 pub http_service: ::core::option::Option<super::super::core::v3::HttpService>,
384 /// The name for the service. This will be populated in the ResourceSpan Resource attributes.
385 /// If it is not provided, it will default to "unknown_service:envoy".
386 #[prost(string, tag = "2")]
387 pub service_name: ::prost::alloc::string::String,
388 /// An ordered list of resource detectors
389 /// \[#extension-category: envoy.tracers.opentelemetry.resource_detectors\]
390 #[prost(message, repeated, tag = "4")]
391 pub resource_detectors: ::prost::alloc::vec::Vec<
392 super::super::core::v3::TypedExtensionConfig,
393 >,
394 /// Specifies the sampler to be used by the OpenTelemetry tracer.
395 /// The configured sampler implements the Sampler interface defined by the OpenTelemetry specification.
396 /// This field can be left empty. In this case, the default Envoy sampling decision is used.
397 ///
398 /// See: `OpenTelemetry sampler specification <<https://opentelemetry.io/docs/specs/otel/trace/sdk/#sampler>`_>
399 /// \[#extension-category: envoy.tracers.opentelemetry.samplers\]
400 #[prost(message, optional, tag = "5")]
401 pub sampler: ::core::option::Option<super::super::core::v3::TypedExtensionConfig>,
402}
403impl ::prost::Name for OpenTelemetryConfig {
404 const NAME: &'static str = "OpenTelemetryConfig";
405 const PACKAGE: &'static str = "envoy.config.trace.v3";
406 fn full_name() -> ::prost::alloc::string::String {
407 "envoy.config.trace.v3.OpenTelemetryConfig".into()
408 }
409 fn type_url() -> ::prost::alloc::string::String {
410 "type.googleapis.com/envoy.config.trace.v3.OpenTelemetryConfig".into()
411 }
412}
413/// Configuration structure.
414#[derive(Clone, PartialEq, ::prost::Message)]
415pub struct TraceServiceConfig {
416 /// The upstream gRPC cluster that hosts the metrics service.
417 #[prost(message, optional, tag = "1")]
418 pub grpc_service: ::core::option::Option<super::super::core::v3::GrpcService>,
419}
420impl ::prost::Name for TraceServiceConfig {
421 const NAME: &'static str = "TraceServiceConfig";
422 const PACKAGE: &'static str = "envoy.config.trace.v3";
423 fn full_name() -> ::prost::alloc::string::String {
424 "envoy.config.trace.v3.TraceServiceConfig".into()
425 }
426 fn type_url() -> ::prost::alloc::string::String {
427 "type.googleapis.com/envoy.config.trace.v3.TraceServiceConfig".into()
428 }
429}
430/// Configuration for the SkyWalking tracer. Please note that if SkyWalking tracer is used as the
431/// provider of tracing, then
432/// :ref:`spawn_upstream_span <envoy_v3_api_field_extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.Tracing.spawn_upstream_span>`
433/// in the tracing config must be set to true to get the correct topology and tracing data. Moreover, SkyWalking
434/// Tracer does not support SkyWalking extension header (``sw8-x``) temporarily.
435/// \[#extension: envoy.tracers.skywalking\]
436#[derive(Clone, PartialEq, ::prost::Message)]
437pub struct SkyWalkingConfig {
438 /// SkyWalking collector service.
439 #[prost(message, optional, tag = "1")]
440 pub grpc_service: ::core::option::Option<super::super::core::v3::GrpcService>,
441 #[prost(message, optional, tag = "2")]
442 pub client_config: ::core::option::Option<ClientConfig>,
443}
444impl ::prost::Name for SkyWalkingConfig {
445 const NAME: &'static str = "SkyWalkingConfig";
446 const PACKAGE: &'static str = "envoy.config.trace.v3";
447 fn full_name() -> ::prost::alloc::string::String {
448 "envoy.config.trace.v3.SkyWalkingConfig".into()
449 }
450 fn type_url() -> ::prost::alloc::string::String {
451 "type.googleapis.com/envoy.config.trace.v3.SkyWalkingConfig".into()
452 }
453}
454/// Client config for SkyWalking tracer.
455#[derive(Clone, PartialEq, ::prost::Message)]
456pub struct ClientConfig {
457 /// Service name for SkyWalking tracer. If this field is empty, then local service cluster name
458 /// that configured by :ref:`Bootstrap node <envoy_v3_api_field_config.bootstrap.v3.Bootstrap.node>`
459 /// message's :ref:`cluster <envoy_v3_api_field_config.core.v3.Node.cluster>` field or command line
460 /// option :option:`--service-cluster` will be used. If both this field and local service cluster
461 /// name are empty, ``EnvoyProxy`` is used as the service name by default.
462 #[prost(string, tag = "1")]
463 pub service_name: ::prost::alloc::string::String,
464 /// Service instance name for SkyWalking tracer. If this field is empty, then local service node
465 /// that configured by :ref:`Bootstrap node <envoy_v3_api_field_config.bootstrap.v3.Bootstrap.node>`
466 /// message's :ref:`id <envoy_v3_api_field_config.core.v3.Node.id>` field or command line option
467 /// :option:`--service-node` will be used. If both this field and local service node are empty,
468 /// ``EnvoyProxy`` is used as the instance name by default.
469 #[prost(string, tag = "2")]
470 pub instance_name: ::prost::alloc::string::String,
471 /// Envoy caches the segment in memory when the SkyWalking backend service is temporarily unavailable.
472 /// This field specifies the maximum number of segments that can be cached. If not specified, the
473 /// default is 1024.
474 #[prost(message, optional, tag = "4")]
475 pub max_cache_size: ::core::option::Option<
476 super::super::super::super::google::protobuf::UInt32Value,
477 >,
478 /// Authentication token config for SkyWalking. SkyWalking can use token authentication to secure
479 /// that monitoring application data can be trusted. In current version, Token is considered as a
480 /// simple string.
481 /// \[#comment:TODO(wbpcode): Get backend token through the SDS API.\]
482 #[prost(oneof = "client_config::BackendTokenSpecifier", tags = "3")]
483 pub backend_token_specifier: ::core::option::Option<
484 client_config::BackendTokenSpecifier,
485 >,
486}
487/// Nested message and enum types in `ClientConfig`.
488pub mod client_config {
489 /// Authentication token config for SkyWalking. SkyWalking can use token authentication to secure
490 /// that monitoring application data can be trusted. In current version, Token is considered as a
491 /// simple string.
492 /// \[#comment:TODO(wbpcode): Get backend token through the SDS API.\]
493 #[derive(Clone, PartialEq, ::prost::Oneof)]
494 pub enum BackendTokenSpecifier {
495 /// Inline authentication token string.
496 #[prost(string, tag = "3")]
497 BackendToken(::prost::alloc::string::String),
498 }
499}
500impl ::prost::Name for ClientConfig {
501 const NAME: &'static str = "ClientConfig";
502 const PACKAGE: &'static str = "envoy.config.trace.v3";
503 fn full_name() -> ::prost::alloc::string::String {
504 "envoy.config.trace.v3.ClientConfig".into()
505 }
506 fn type_url() -> ::prost::alloc::string::String {
507 "type.googleapis.com/envoy.config.trace.v3.ClientConfig".into()
508 }
509}
510/// Configuration for the Zipkin tracer.
511/// \[#extension: envoy.tracers.zipkin\]
512/// \[#next-free-field: 8\]
513#[derive(Clone, PartialEq, ::prost::Message)]
514pub struct ZipkinConfig {
515 /// The cluster manager cluster that hosts the Zipkin collectors.
516 #[prost(string, tag = "1")]
517 pub collector_cluster: ::prost::alloc::string::String,
518 /// The API endpoint of the Zipkin service where the spans will be sent. When
519 /// using a standard Zipkin installation.
520 #[prost(string, tag = "2")]
521 pub collector_endpoint: ::prost::alloc::string::String,
522 /// Determines whether a 128bit trace id will be used when creating a new
523 /// trace instance. The default value is false, which will result in a 64 bit trace id being used.
524 #[prost(bool, tag = "3")]
525 pub trace_id_128bit: bool,
526 /// Determines whether client and server spans will share the same span context.
527 /// The default value is true.
528 #[prost(message, optional, tag = "4")]
529 pub shared_span_context: ::core::option::Option<
530 super::super::super::super::google::protobuf::BoolValue,
531 >,
532 /// Determines the selected collector endpoint version.
533 #[prost(enumeration = "zipkin_config::CollectorEndpointVersion", tag = "5")]
534 pub collector_endpoint_version: i32,
535 /// Optional hostname to use when sending spans to the collector_cluster. Useful for collectors
536 /// that require a specific hostname. Defaults to :ref:`collector_cluster <envoy_v3_api_field_config.trace.v3.ZipkinConfig.collector_cluster>` above.
537 #[prost(string, tag = "6")]
538 pub collector_hostname: ::prost::alloc::string::String,
539 /// 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
540 /// request. Server span will be created for the downstream request and client span will be created for the related upstream request.
541 /// This should be set to true in the following cases:
542 ///
543 /// * The Envoy Proxy is used as gateway or ingress.
544 /// * The Envoy Proxy is used as sidecar but inbound traffic capturing or outbound traffic capturing is disabled.
545 /// * Any case that the :ref:`start_child_span of router <envoy_v3_api_field_extensions.filters.http.router.v3.Router.start_child_span>` is set to true.
546 ///
547 /// .. attention::
548 ///
549 /// If this is set to true, then the
550 /// :ref:`start_child_span of router <envoy_v3_api_field_extensions.filters.http.router.v3.Router.start_child_span>`
551 /// SHOULD be set to true also to ensure the correctness of trace chain.
552 ///
553 /// Both this field and ``start_child_span`` are deprecated by the
554 /// :ref:`spawn_upstream_span <envoy_v3_api_field_extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.Tracing.spawn_upstream_span>`.
555 /// Please use that ``spawn_upstream_span`` field to control the span creation.
556 #[deprecated]
557 #[prost(bool, tag = "7")]
558 pub split_spans_for_request: bool,
559}
560/// Nested message and enum types in `ZipkinConfig`.
561pub mod zipkin_config {
562 /// Available Zipkin collector endpoint versions.
563 #[derive(
564 Clone,
565 Copy,
566 Debug,
567 PartialEq,
568 Eq,
569 Hash,
570 PartialOrd,
571 Ord,
572 ::prost::Enumeration
573 )]
574 #[repr(i32)]
575 pub enum CollectorEndpointVersion {
576 /// Zipkin API v1, JSON over HTTP.
577 /// [#comment: The default implementation of Zipkin client before this field is added was only v1
578 /// and the way user configure this was by not explicitly specifying the version. Consequently,
579 /// before this is added, the corresponding Zipkin collector expected to receive v1 payload.
580 /// Hence the motivation of adding HTTP_JSON_V1 as the default is to avoid a breaking change when
581 /// user upgrading Envoy with this change. Furthermore, we also immediately deprecate this field,
582 /// since in Zipkin realm this v1 version is considered to be not preferable anymore.]
583 DeprecatedAndUnavailableDoNotUse = 0,
584 /// Zipkin API v2, JSON over HTTP.
585 HttpJson = 1,
586 /// Zipkin API v2, protobuf over HTTP.
587 HttpProto = 2,
588 /// \[#not-implemented-hide:\]
589 Grpc = 3,
590 }
591 impl CollectorEndpointVersion {
592 /// String value of the enum field names used in the ProtoBuf definition.
593 ///
594 /// The values are not transformed in any way and thus are considered stable
595 /// (if the ProtoBuf definition does not change) and safe for programmatic use.
596 pub fn as_str_name(&self) -> &'static str {
597 match self {
598 Self::DeprecatedAndUnavailableDoNotUse => {
599 "DEPRECATED_AND_UNAVAILABLE_DO_NOT_USE"
600 }
601 Self::HttpJson => "HTTP_JSON",
602 Self::HttpProto => "HTTP_PROTO",
603 Self::Grpc => "GRPC",
604 }
605 }
606 /// Creates an enum from field names used in the ProtoBuf definition.
607 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
608 match value {
609 "DEPRECATED_AND_UNAVAILABLE_DO_NOT_USE" => {
610 Some(Self::DeprecatedAndUnavailableDoNotUse)
611 }
612 "HTTP_JSON" => Some(Self::HttpJson),
613 "HTTP_PROTO" => Some(Self::HttpProto),
614 "GRPC" => Some(Self::Grpc),
615 _ => None,
616 }
617 }
618 }
619}
620impl ::prost::Name for ZipkinConfig {
621 const NAME: &'static str = "ZipkinConfig";
622 const PACKAGE: &'static str = "envoy.config.trace.v3";
623 fn full_name() -> ::prost::alloc::string::String {
624 "envoy.config.trace.v3.ZipkinConfig".into()
625 }
626 fn type_url() -> ::prost::alloc::string::String {
627 "type.googleapis.com/envoy.config.trace.v3.ZipkinConfig".into()
628 }
629}
630/// \[#extension: envoy.tracers.xray\]
631#[derive(Clone, PartialEq, ::prost::Message)]
632pub struct XRayConfig {
633 /// The UDP endpoint of the X-Ray Daemon where the spans will be sent.
634 /// If this value is not set, the default value of 127.0.0.1:2000 will be used.
635 #[prost(message, optional, tag = "1")]
636 pub daemon_endpoint: ::core::option::Option<super::super::core::v3::SocketAddress>,
637 /// The name of the X-Ray segment.
638 #[prost(string, tag = "2")]
639 pub segment_name: ::prost::alloc::string::String,
640 /// The location of a local custom sampling rules JSON file.
641 /// For an example of the sampling rules see:
642 /// `X-Ray SDK documentation
643 /// <<https://docs.aws.amazon.com/xray/latest/devguide/xray-sdk-go-configuration.html#xray-sdk-go-configuration-sampling>`_>
644 #[prost(message, optional, tag = "3")]
645 pub sampling_rule_manifest: ::core::option::Option<
646 super::super::core::v3::DataSource,
647 >,
648 /// Optional custom fields to be added to each trace segment.
649 /// see: `X-Ray Segment Document documentation
650 /// <<https://docs.aws.amazon.com/xray/latest/devguide/xray-api-segmentdocuments.html>`__>
651 #[prost(message, optional, tag = "4")]
652 pub segment_fields: ::core::option::Option<x_ray_config::SegmentFields>,
653}
654/// Nested message and enum types in `XRayConfig`.
655pub mod x_ray_config {
656 #[derive(Clone, PartialEq, ::prost::Message)]
657 pub struct SegmentFields {
658 /// The type of AWS resource, e.g. "AWS::AppMesh::Proxy".
659 #[prost(string, tag = "1")]
660 pub origin: ::prost::alloc::string::String,
661 /// AWS resource metadata dictionary.
662 /// See: `X-Ray Segment Document documentation <<https://docs.aws.amazon.com/xray/latest/devguide/xray-api-segmentdocuments.html#api-segmentdocuments-aws>`__>
663 #[prost(message, optional, tag = "2")]
664 pub aws: ::core::option::Option<
665 super::super::super::super::super::google::protobuf::Struct,
666 >,
667 }
668 impl ::prost::Name for SegmentFields {
669 const NAME: &'static str = "SegmentFields";
670 const PACKAGE: &'static str = "envoy.config.trace.v3";
671 fn full_name() -> ::prost::alloc::string::String {
672 "envoy.config.trace.v3.XRayConfig.SegmentFields".into()
673 }
674 fn type_url() -> ::prost::alloc::string::String {
675 "type.googleapis.com/envoy.config.trace.v3.XRayConfig.SegmentFields".into()
676 }
677 }
678}
679impl ::prost::Name for XRayConfig {
680 const NAME: &'static str = "XRayConfig";
681 const PACKAGE: &'static str = "envoy.config.trace.v3";
682 fn full_name() -> ::prost::alloc::string::String {
683 "envoy.config.trace.v3.XRayConfig".into()
684 }
685 fn type_url() -> ::prost::alloc::string::String {
686 "type.googleapis.com/envoy.config.trace.v3.XRayConfig".into()
687 }
688}