1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508
/// 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_v3_api_msg_config.trace.v3.Tracing.Http>`.
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Tracing {
/// Provides configuration for the HTTP tracer.
#[prost(message, optional, tag = "1")]
pub http: ::core::option::Option<tracing::Http>,
}
/// Nested message and enum types in `Tracing`.
pub mod tracing {
/// Configuration for an HTTP tracer provider used by Envoy.
///
/// The configuration is defined by the
/// :ref:`HttpConnectionManager.Tracing <envoy_v3_api_msg_extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.Tracing>`
/// :ref:`provider <envoy_v3_api_field_extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.Tracing.provider>`
/// field.
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Http {
/// The name of the HTTP trace driver to instantiate. The name must match a
/// supported HTTP trace driver.
/// See the :ref:`extensions listed in typed_config below <extension_category_envoy.tracers>` for the default list of the HTTP trace driver.
#[prost(string, tag = "1")]
pub name: ::prost::alloc::string::String,
/// Trace driver specific configuration which must be set according to the driver being instantiated.
/// \[\#extension-category: envoy.tracers\]
#[prost(oneof = "http::ConfigType", tags = "3")]
pub config_type: ::core::option::Option<http::ConfigType>,
}
/// Nested message and enum types in `Http`.
pub mod http {
/// Trace driver specific configuration which must be set according to the driver being instantiated.
/// \[\#extension-category: envoy.tracers\]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Oneof)]
pub enum ConfigType {
#[prost(message, tag = "3")]
TypedConfig(super::super::super::super::super::super::google::protobuf::Any),
}
}
}
/// Configuration for the Datadog tracer.
/// \[\#extension: envoy.tracers.datadog\]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DatadogConfig {
/// The cluster to use for submitting traces to the Datadog agent.
#[prost(string, tag = "1")]
pub collector_cluster: ::prost::alloc::string::String,
/// The name used for the service when traces are generated by envoy.
#[prost(string, tag = "2")]
pub service_name: ::prost::alloc::string::String,
/// Optional hostname to use when sending spans to the collector_cluster. Useful for collectors
/// that require a specific hostname. Defaults to :ref:`collector_cluster <envoy_v3_api_field_config.trace.v3.DatadogConfig.collector_cluster>` above.
#[prost(string, tag = "3")]
pub collector_hostname: ::prost::alloc::string::String,
}
/// 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\]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DynamicOtConfig {
/// Dynamic library implementing the `OpenTracing API <<https://github.com/opentracing/opentracing-cpp>`\_.>
#[prost(string, tag = "1")]
pub library: ::prost::alloc::string::String,
/// The configuration to use when creating a tracer from the given dynamic
/// library.
#[prost(message, optional, tag = "2")]
pub config: ::core::option::Option<
super::super::super::super::google::protobuf::Struct,
>,
}
/// Configuration for the LightStep tracer.
/// \[\#extension: envoy.tracers.lightstep\]
/// \\[\#not-implemented-hide:\\]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct LightstepConfig {
/// The cluster manager cluster that hosts the LightStep collectors.
#[prost(string, tag = "1")]
pub collector_cluster: ::prost::alloc::string::String,
/// File containing the access token to the `LightStep <<https://lightstep.com/>`\_> API.
#[deprecated]
#[prost(string, tag = "2")]
pub access_token_file: ::prost::alloc::string::String,
/// Access token to the `LightStep <<https://lightstep.com/>`\_> API.
#[prost(message, optional, tag = "4")]
pub access_token: ::core::option::Option<super::super::core::v3::DataSource>,
/// Propagation modes to use by LightStep's tracer.
#[prost(
enumeration = "lightstep_config::PropagationMode",
repeated,
packed = "false",
tag = "3"
)]
pub propagation_modes: ::prost::alloc::vec::Vec<i32>,
}
/// Nested message and enum types in `LightstepConfig`.
pub mod lightstep_config {
/// Available propagation modes
#[derive(
Clone,
Copy,
Debug,
PartialEq,
Eq,
Hash,
PartialOrd,
Ord,
::prost::Enumeration
)]
#[repr(i32)]
pub 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.
TraceContext = 3,
}
impl PropagationMode {
/// String value of the enum field names used in the ProtoBuf definition.
///
/// The values are not transformed in any way and thus are considered stable
/// (if the ProtoBuf definition does not change) and safe for programmatic use.
pub fn as_str_name(&self) -> &'static str {
match self {
PropagationMode::Envoy => "ENVOY",
PropagationMode::Lightstep => "LIGHTSTEP",
PropagationMode::B3 => "B3",
PropagationMode::TraceContext => "TRACE_CONTEXT",
}
}
/// Creates an enum from field names used in the ProtoBuf definition.
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"ENVOY" => Some(Self::Envoy),
"LIGHTSTEP" => Some(Self::Lightstep),
"B3" => Some(Self::B3),
"TRACE_CONTEXT" => Some(Self::TraceContext),
_ => None,
}
}
}
}
/// Configuration for the OpenCensus tracer.
/// \[\#next-free-field: 15\]
/// \[\#extension: envoy.tracers.opencensus\]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct OpenCensusConfig {
/// Configures tracing, e.g. the sampler, max number of annotations, etc.
#[prost(message, optional, tag = "1")]
pub trace_config: ::core::option::Option<
super::super::super::super::opencensus::proto::trace::v1::TraceConfig,
>,
/// Enables the stdout exporter if set to true. This is intended for debugging
/// purposes.
#[prost(bool, tag = "2")]
pub stdout_exporter_enabled: bool,
/// Enables the Stackdriver exporter if set to true. The project_id must also
/// be set.
#[prost(bool, tag = "3")]
pub stackdriver_exporter_enabled: bool,
/// The Cloud project_id to use for Stackdriver tracing.
#[prost(string, tag = "4")]
pub stackdriver_project_id: ::prost::alloc::string::String,
/// (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>
#[prost(string, tag = "10")]
pub stackdriver_address: ::prost::alloc::string::String,
/// (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.
#[prost(message, optional, tag = "13")]
pub stackdriver_grpc_service: ::core::option::Option<
super::super::core::v3::GrpcService,
>,
/// Enables the Zipkin exporter if set to true. The url and service name must
/// also be set. This is deprecated, prefer to use Envoy's :ref:`native Zipkin tracer <envoy_v3_api_msg_config.trace.v3.ZipkinConfig>`.
#[deprecated]
#[prost(bool, tag = "5")]
pub zipkin_exporter_enabled: bool,
/// The URL to Zipkin, e.g. "<http://127.0.0.1:9411/api/v2/spans".> This is
/// deprecated, prefer to use Envoy's :ref:`native Zipkin tracer <envoy_v3_api_msg_config.trace.v3.ZipkinConfig>`.
#[deprecated]
#[prost(string, tag = "6")]
pub zipkin_url: ::prost::alloc::string::String,
/// Enables the OpenCensus Agent exporter if set to true. The ocagent_address or
/// ocagent_grpc_service must also be set.
#[prost(bool, tag = "11")]
pub ocagent_exporter_enabled: bool,
/// 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\]
#[prost(string, tag = "12")]
pub ocagent_address: ::prost::alloc::string::String,
/// (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.
#[prost(message, optional, tag = "14")]
pub ocagent_grpc_service: ::core::option::Option<
super::super::core::v3::GrpcService,
>,
/// List of incoming trace context headers we will accept. First one found
/// wins.
#[prost(enumeration = "open_census_config::TraceContext", repeated, tag = "8")]
pub incoming_trace_context: ::prost::alloc::vec::Vec<i32>,
/// List of outgoing trace context headers we will produce.
#[prost(enumeration = "open_census_config::TraceContext", repeated, tag = "9")]
pub outgoing_trace_context: ::prost::alloc::vec::Vec<i32>,
}
/// Nested message and enum types in `OpenCensusConfig`.
pub mod open_census_config {
#[derive(
Clone,
Copy,
Debug,
PartialEq,
Eq,
Hash,
PartialOrd,
Ord,
::prost::Enumeration
)]
#[repr(i32)]
pub enum TraceContext {
/// No-op default, no trace context is utilized.
None = 0,
/// W3C Trace-Context format "traceparent:" header.
TraceContext = 1,
/// Binary "grpc-trace-bin:" header.
GrpcTraceBin = 2,
/// "X-Cloud-Trace-Context:" header.
CloudTraceContext = 3,
/// X-B3-\* headers.
B3 = 4,
}
impl TraceContext {
/// String value of the enum field names used in the ProtoBuf definition.
///
/// The values are not transformed in any way and thus are considered stable
/// (if the ProtoBuf definition does not change) and safe for programmatic use.
pub fn as_str_name(&self) -> &'static str {
match self {
TraceContext::None => "NONE",
TraceContext::TraceContext => "TRACE_CONTEXT",
TraceContext::GrpcTraceBin => "GRPC_TRACE_BIN",
TraceContext::CloudTraceContext => "CLOUD_TRACE_CONTEXT",
TraceContext::B3 => "B3",
}
}
/// Creates an enum from field names used in the ProtoBuf definition.
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"NONE" => Some(Self::None),
"TRACE_CONTEXT" => Some(Self::TraceContext),
"GRPC_TRACE_BIN" => Some(Self::GrpcTraceBin),
"CLOUD_TRACE_CONTEXT" => Some(Self::CloudTraceContext),
"B3" => Some(Self::B3),
_ => None,
}
}
}
}
/// Configuration for the OpenTelemetry tracer.
/// \[\#extension: envoy.tracers.opentelemetry\]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct OpenTelemetryConfig {
/// The upstream gRPC cluster that will receive OTLP traces.
/// Note that the tracer drops traces if the server does not read data fast enough.
/// This field can be left empty to disable reporting traces to the collector.
#[prost(message, optional, tag = "1")]
pub grpc_service: ::core::option::Option<super::super::core::v3::GrpcService>,
/// The name for the service. This will be populated in the ResourceSpan Resource attributes.
/// If it is not provided, it will default to "unknown_service:envoy".
#[prost(string, tag = "2")]
pub service_name: ::prost::alloc::string::String,
}
/// Configuration structure.
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TraceServiceConfig {
/// The upstream gRPC cluster that hosts the metrics service.
#[prost(message, optional, tag = "1")]
pub grpc_service: ::core::option::Option<super::super::core::v3::GrpcService>,
}
/// Configuration for the SkyWalking tracer. Please note that if SkyWalking tracer is used as the
/// provider of http tracer, then
/// :ref:`start_child_span <envoy_v3_api_field_extensions.filters.http.router.v3.Router.start_child_span>`
/// in the router must be set to true to get the correct topology and tracing data. Moreover, SkyWalking
/// Tracer does not support SkyWalking extension header (`sw8-x`) temporarily.
/// \[\#extension: envoy.tracers.skywalking\]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SkyWalkingConfig {
/// SkyWalking collector service.
#[prost(message, optional, tag = "1")]
pub grpc_service: ::core::option::Option<super::super::core::v3::GrpcService>,
#[prost(message, optional, tag = "2")]
pub client_config: ::core::option::Option<ClientConfig>,
}
/// Client config for SkyWalking tracer.
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ClientConfig {
/// Service name for SkyWalking tracer. If this field is empty, then local service cluster name
/// that configured by :ref:`Bootstrap node <envoy_v3_api_field_config.bootstrap.v3.Bootstrap.node>`
/// message's :ref:`cluster <envoy_v3_api_field_config.core.v3.Node.cluster>` field or command line
/// option :option:`--service-cluster` will be used. If both this field and local service cluster
/// name are empty, `EnvoyProxy` is used as the service name by default.
#[prost(string, tag = "1")]
pub service_name: ::prost::alloc::string::String,
/// Service instance name for SkyWalking tracer. If this field is empty, then local service node
/// that configured by :ref:`Bootstrap node <envoy_v3_api_field_config.bootstrap.v3.Bootstrap.node>`
/// message's :ref:`id <envoy_v3_api_field_config.core.v3.Node.id>` field or command line option
/// :option:`--service-node` will be used. If both this field and local service node are empty,
/// `EnvoyProxy` is used as the instance name by default.
#[prost(string, tag = "2")]
pub instance_name: ::prost::alloc::string::String,
/// Envoy caches the segment in memory when the SkyWalking backend service is temporarily unavailable.
/// This field specifies the maximum number of segments that can be cached. If not specified, the
/// default is 1024.
#[prost(message, optional, tag = "4")]
pub max_cache_size: ::core::option::Option<
super::super::super::super::google::protobuf::UInt32Value,
>,
/// Authentication token config for SkyWalking. SkyWalking can use token authentication to secure
/// that monitoring application data can be trusted. In current version, Token is considered as a
/// simple string.
/// \[\#comment:TODO(wbpcode): Get backend token through the SDS API.\]
#[prost(oneof = "client_config::BackendTokenSpecifier", tags = "3")]
pub backend_token_specifier: ::core::option::Option<
client_config::BackendTokenSpecifier,
>,
}
/// Nested message and enum types in `ClientConfig`.
pub mod client_config {
/// Authentication token config for SkyWalking. SkyWalking can use token authentication to secure
/// that monitoring application data can be trusted. In current version, Token is considered as a
/// simple string.
/// \[\#comment:TODO(wbpcode): Get backend token through the SDS API.\]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Oneof)]
pub enum BackendTokenSpecifier {
/// Inline authentication token string.
#[prost(string, tag = "3")]
BackendToken(::prost::alloc::string::String),
}
}
/// Configuration for the Zipkin tracer.
/// \[\#extension: envoy.tracers.zipkin\]
/// \[\#next-free-field: 8\]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ZipkinConfig {
/// The cluster manager cluster that hosts the Zipkin collectors.
#[prost(string, tag = "1")]
pub collector_cluster: ::prost::alloc::string::String,
/// The API endpoint of the Zipkin service where the spans will be sent. When
/// using a standard Zipkin installation.
#[prost(string, tag = "2")]
pub collector_endpoint: ::prost::alloc::string::String,
/// 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.
#[prost(bool, tag = "3")]
pub trace_id_128bit: bool,
/// Determines whether client and server spans will share the same span context.
/// The default value is true.
#[prost(message, optional, tag = "4")]
pub shared_span_context: ::core::option::Option<
super::super::super::super::google::protobuf::BoolValue,
>,
/// Determines the selected collector endpoint version.
#[prost(enumeration = "zipkin_config::CollectorEndpointVersion", tag = "5")]
pub collector_endpoint_version: i32,
/// Optional hostname to use when sending spans to the collector_cluster. Useful for collectors
/// that require a specific hostname. Defaults to :ref:`collector_cluster <envoy_v3_api_field_config.trace.v3.ZipkinConfig.collector_cluster>` above.
#[prost(string, tag = "6")]
pub collector_hostname: ::prost::alloc::string::String,
/// 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
/// request. Server span will be created for the downstream request and client span will be created for the related upstream request.
/// This should be set to true in the following cases:
///
/// * The Envoy Proxy is used as gateway or ingress.
/// * The Envoy Proxy is used as sidecar but inbound traffic capturing or outbound traffic capturing is disabled.
/// * Any case that the `start_child_span of router <envoy_v3_api_field_extensions.filters.http.router.v3.Router.start_child_span>` is set to true.
///
/// .. attention::
///
/// If this is set to true, then the
/// :ref:`start_child_span of router <envoy_v3_api_field_extensions.filters.http.router.v3.Router.start_child_span>`
/// SHOULD be set to true also to ensure the correctness of trace chain.
#[prost(bool, tag = "7")]
pub split_spans_for_request: bool,
}
/// Nested message and enum types in `ZipkinConfig`.
pub mod zipkin_config {
/// Available Zipkin collector endpoint versions.
#[derive(
Clone,
Copy,
Debug,
PartialEq,
Eq,
Hash,
PartialOrd,
Ord,
::prost::Enumeration
)]
#[repr(i32)]
pub 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.\]
DeprecatedAndUnavailableDoNotUse = 0,
/// Zipkin API v2, JSON over HTTP.
HttpJson = 1,
/// Zipkin API v2, protobuf over HTTP.
HttpProto = 2,
/// \\[\#not-implemented-hide:\\]
Grpc = 3,
}
impl CollectorEndpointVersion {
/// String value of the enum field names used in the ProtoBuf definition.
///
/// The values are not transformed in any way and thus are considered stable
/// (if the ProtoBuf definition does not change) and safe for programmatic use.
pub fn as_str_name(&self) -> &'static str {
match self {
CollectorEndpointVersion::DeprecatedAndUnavailableDoNotUse => {
"DEPRECATED_AND_UNAVAILABLE_DO_NOT_USE"
}
CollectorEndpointVersion::HttpJson => "HTTP_JSON",
CollectorEndpointVersion::HttpProto => "HTTP_PROTO",
CollectorEndpointVersion::Grpc => "GRPC",
}
}
/// Creates an enum from field names used in the ProtoBuf definition.
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"DEPRECATED_AND_UNAVAILABLE_DO_NOT_USE" => {
Some(Self::DeprecatedAndUnavailableDoNotUse)
}
"HTTP_JSON" => Some(Self::HttpJson),
"HTTP_PROTO" => Some(Self::HttpProto),
"GRPC" => Some(Self::Grpc),
_ => None,
}
}
}
}
/// \[\#extension: envoy.tracers.xray\]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct XRayConfig {
/// The UDP endpoint of the X-Ray Daemon where the spans will be sent.
/// If this value is not set, the default value of 127.0.0.1:2000 will be used.
#[prost(message, optional, tag = "1")]
pub daemon_endpoint: ::core::option::Option<super::super::core::v3::SocketAddress>,
/// The name of the X-Ray segment.
#[prost(string, tag = "2")]
pub segment_name: ::prost::alloc::string::String,
/// The location of a local custom sampling rules JSON file.
/// For an example of the sampling rules see:
/// `X-Ray SDK documentation <<https://docs.aws.amazon.com/xray/latest/devguide/xray-sdk-go-configuration.html#xray-sdk-go-configuration-sampling>`\_>
#[prost(message, optional, tag = "3")]
pub sampling_rule_manifest: ::core::option::Option<
super::super::core::v3::DataSource,
>,
/// Optional custom fields to be added to each trace segment.
/// see: `X-Ray Segment Document documentation <<https://docs.aws.amazon.com/xray/latest/devguide/xray-api-segmentdocuments.html>`\_\_>
#[prost(message, optional, tag = "4")]
pub segment_fields: ::core::option::Option<x_ray_config::SegmentFields>,
}
/// Nested message and enum types in `XRayConfig`.
pub mod x_ray_config {
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SegmentFields {
/// The type of AWS resource, e.g. "AWS::AppMesh::Proxy".
#[prost(string, tag = "1")]
pub origin: ::prost::alloc::string::String,
/// AWS resource metadata dictionary.
/// See: `X-Ray Segment Document documentation <<https://docs.aws.amazon.com/xray/latest/devguide/xray-api-segmentdocuments.html#api-segmentdocuments-aws>`\_\_>
#[prost(message, optional, tag = "2")]
pub aws: ::core::option::Option<
super::super::super::super::super::google::protobuf::Struct,
>,
}
}