tracing: apply tracer provider configuration defined as part of `http_connection_manager` filter (#10405)

Signed-off-by: Yaroslav Skopets <yaroslav@tetrate.io>

Mirrored from https://github.com/envoyproxy/envoy @ 449be5e74768d781b71b9375fa0ec908a3cc9b92
master-ci-test
data-plane-api(CircleCI) 5 years ago
parent de0af2a314
commit 1d2af7862b
  1. 7
      envoy/config/bootstrap/v2/bootstrap.proto
  2. 9
      envoy/config/bootstrap/v3/bootstrap.proto
  3. 1
      envoy/config/bootstrap/v4alpha/BUILD
  4. 9
      envoy/config/bootstrap/v4alpha/bootstrap.proto
  5. 12
      envoy/config/filter/network/http_connection_manager/v2/http_connection_manager.proto
  6. 20
      envoy/config/trace/v2/trace.proto
  7. 20
      envoy/config/trace/v3/trace.proto
  8. 20
      envoy/config/trace/v4alpha/trace.proto
  9. 12
      envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.proto
  10. 12
      envoy/extensions/filters/network/http_connection_manager/v4alpha/http_connection_manager.proto

@ -117,8 +117,11 @@ message Bootstrap {
// Optional watchdog configuration. // Optional watchdog configuration.
Watchdog watchdog = 8; Watchdog watchdog = 8;
// Configuration for an external tracing provider. If not specified, no // Configuration for an external tracing provider.
// tracing will be performed. //
// .. attention::
// This field has been deprecated in favor of :ref:`HttpConnectionManager.Tracing.provider
// <envoy_api_field_config.filter.network.http_connection_manager.v2.HttpConnectionManager.Tracing.provider>`.
trace.v2.Tracing tracing = 9; trace.v2.Tracing tracing = 9;
// Configuration for the runtime configuration provider (deprecated). If not // Configuration for the runtime configuration provider (deprecated). If not

@ -129,9 +129,12 @@ message Bootstrap {
// Optional watchdog configuration. // Optional watchdog configuration.
Watchdog watchdog = 8; Watchdog watchdog = 8;
// Configuration for an external tracing provider. If not specified, no // Configuration for an external tracing provider.
// tracing will be performed. //
trace.v3.Tracing tracing = 9; // .. attention::
// This field has been deprecated in favor of :ref:`HttpConnectionManager.Tracing.provider
// <envoy_api_field_extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.Tracing.provider>`.
trace.v3.Tracing tracing = 9 [deprecated = true];
// Configuration for the runtime configuration provider. If not // Configuration for the runtime configuration provider. If not
// specified, a null provider will be used which will result in all defaults // specified, a null provider will be used which will result in all defaults

@ -13,7 +13,6 @@ api_proto_package(
"//envoy/config/listener/v3:pkg", "//envoy/config/listener/v3:pkg",
"//envoy/config/metrics/v3:pkg", "//envoy/config/metrics/v3:pkg",
"//envoy/config/overload/v3:pkg", "//envoy/config/overload/v3:pkg",
"//envoy/config/trace/v4alpha:pkg",
"//envoy/extensions/transport_sockets/tls/v4alpha:pkg", "//envoy/extensions/transport_sockets/tls/v4alpha:pkg",
"@com_github_cncf_udpa//udpa/annotations:pkg", "@com_github_cncf_udpa//udpa/annotations:pkg",
], ],

@ -11,7 +11,6 @@ import "envoy/config/core/v4alpha/socket_option.proto";
import "envoy/config/listener/v3/listener.proto"; import "envoy/config/listener/v3/listener.proto";
import "envoy/config/metrics/v3/stats.proto"; import "envoy/config/metrics/v3/stats.proto";
import "envoy/config/overload/v3/overload.proto"; import "envoy/config/overload/v3/overload.proto";
import "envoy/config/trace/v4alpha/trace.proto";
import "envoy/extensions/transport_sockets/tls/v4alpha/cert.proto"; import "envoy/extensions/transport_sockets/tls/v4alpha/cert.proto";
import "google/protobuf/duration.proto"; import "google/protobuf/duration.proto";
@ -85,9 +84,9 @@ message Bootstrap {
core.v4alpha.ApiConfigSource ads_config = 3; core.v4alpha.ApiConfigSource ads_config = 3;
} }
reserved 10, 11; reserved 10, 11, 9;
reserved "runtime"; reserved "runtime", "tracing";
// Node identity to present to the management server and for instance // Node identity to present to the management server and for instance
// identification purposes (e.g. in generated headers). // identification purposes (e.g. in generated headers).
@ -129,10 +128,6 @@ message Bootstrap {
// Optional watchdog configuration. // Optional watchdog configuration.
Watchdog watchdog = 8; Watchdog watchdog = 8;
// Configuration for an external tracing provider. If not specified, no
// tracing will be performed.
trace.v4alpha.Tracing tracing = 9;
// Configuration for the runtime configuration provider. If not // Configuration for the runtime configuration provider. If not
// specified, a null provider will be used which will result in all defaults // specified, a null provider will be used which will result in all defaults
// being used. // being used.

@ -161,9 +161,15 @@ message HttpConnectionManager {
repeated type.tracing.v2.CustomTag custom_tags = 8; repeated type.tracing.v2.CustomTag custom_tags = 8;
// Configuration for an external tracing provider. // Configuration for an external tracing provider.
// If not specified, Envoy will fall back to using tracing provider configuration // If not specified, no tracing will be performed.
// from the bootstrap config. //
// [#not-implemented-hide:] // .. attention::
// Please be aware that *envoy.tracers.opencensus* provider can only be configured once
// in Envoy lifetime.
// Any attempts to reconfigure it or to use different configurations for different HCM filters
// will be rejected.
// Such a constraint is inherent to OpenCensus itself. It cannot be overcome without changes
// on OpenCensus side.
trace.v2.Tracing.Http provider = 9; trace.v2.Tracing.Http provider = 9;
} }

@ -22,12 +22,22 @@ option (udpa.annotations.file_status).package_version_status = FROZEN;
// [#protodoc-title: Tracing] // [#protodoc-title: Tracing]
// Tracing :ref:`architecture overview <arch_overview_tracing>`. // Tracing :ref:`architecture overview <arch_overview_tracing>`.
// The tracing configuration specifies global // The tracing configuration specifies settings for an HTTP tracer provider used by Envoy.
// settings for the HTTP tracer used by Envoy. The configuration is defined by //
// the :ref:`Bootstrap <envoy_api_msg_config.bootstrap.v2.Bootstrap>` :ref:`tracing // Envoy may support other tracers in the future, but right now the HTTP tracer is the only one
// <envoy_api_field_config.bootstrap.v2.Bootstrap.tracing>` field. Envoy may support other tracers // supported.
// 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 { 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 { message Http {
// The name of the HTTP trace driver to instantiate. The name must match a // The name of the HTTP trace driver to instantiate. The name must match a
// supported HTTP trace driver. Built-in trace drivers: // supported HTTP trace driver. Built-in trace drivers:

@ -23,14 +23,24 @@ option (udpa.annotations.file_status).package_version_status = ACTIVE;
// [#protodoc-title: Tracing] // [#protodoc-title: Tracing]
// Tracing :ref:`architecture overview <arch_overview_tracing>`. // Tracing :ref:`architecture overview <arch_overview_tracing>`.
// The tracing configuration specifies global // The tracing configuration specifies settings for an HTTP tracer provider used by Envoy.
// settings for the HTTP tracer used by Envoy. The configuration is defined by //
// the :ref:`Bootstrap <envoy_api_msg_config.bootstrap.v3.Bootstrap>` :ref:`tracing // Envoy may support other tracers in the future, but right now the HTTP tracer is the only one
// <envoy_api_field_config.bootstrap.v3.Bootstrap.tracing>` field. Envoy may support other tracers // supported.
// 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 { message Tracing {
option (udpa.annotations.versioning).previous_message_type = "envoy.config.trace.v2.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 { message Http {
option (udpa.annotations.versioning).previous_message_type = option (udpa.annotations.versioning).previous_message_type =
"envoy.config.trace.v2.Tracing.Http"; "envoy.config.trace.v2.Tracing.Http";

@ -23,14 +23,24 @@ option (udpa.annotations.file_status).package_version_status = NEXT_MAJOR_VERSIO
// [#protodoc-title: Tracing] // [#protodoc-title: Tracing]
// Tracing :ref:`architecture overview <arch_overview_tracing>`. // Tracing :ref:`architecture overview <arch_overview_tracing>`.
// The tracing configuration specifies global // The tracing configuration specifies settings for an HTTP tracer provider used by Envoy.
// settings for the HTTP tracer used by Envoy. The configuration is defined by //
// the :ref:`Bootstrap <envoy_api_msg_config.bootstrap.v4alpha.Bootstrap>` :ref:`tracing // Envoy may support other tracers in the future, but right now the HTTP tracer is the only one
// <envoy_api_field_config.bootstrap.v4alpha.Bootstrap.tracing>` field. Envoy may support other tracers // supported.
// 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 { message Tracing {
option (udpa.annotations.versioning).previous_message_type = "envoy.config.trace.v3.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 { message Http {
option (udpa.annotations.versioning).previous_message_type = option (udpa.annotations.versioning).previous_message_type =
"envoy.config.trace.v3.Tracing.Http"; "envoy.config.trace.v3.Tracing.Http";

@ -148,9 +148,15 @@ message HttpConnectionManager {
repeated type.tracing.v3.CustomTag custom_tags = 8; repeated type.tracing.v3.CustomTag custom_tags = 8;
// Configuration for an external tracing provider. // Configuration for an external tracing provider.
// If not specified, Envoy will fall back to using tracing provider configuration // If not specified, no tracing will be performed.
// from the bootstrap config. //
// [#not-implemented-hide:] // .. attention::
// Please be aware that *envoy.tracers.opencensus* provider can only be configured once
// in Envoy lifetime.
// Any attempts to reconfigure it or to use different configurations for different HCM filters
// will be rejected.
// Such a constraint is inherent to OpenCensus itself. It cannot be overcome without changes
// on OpenCensus side.
config.trace.v3.Tracing.Http provider = 9; config.trace.v3.Tracing.Http provider = 9;
} }

@ -148,9 +148,15 @@ message HttpConnectionManager {
repeated type.tracing.v3.CustomTag custom_tags = 8; repeated type.tracing.v3.CustomTag custom_tags = 8;
// Configuration for an external tracing provider. // Configuration for an external tracing provider.
// If not specified, Envoy will fall back to using tracing provider configuration // If not specified, no tracing will be performed.
// from the bootstrap config. //
// [#not-implemented-hide:] // .. attention::
// Please be aware that *envoy.tracers.opencensus* provider can only be configured once
// in Envoy lifetime.
// Any attempts to reconfigure it or to use different configurations for different HCM filters
// will be rejected.
// Such a constraint is inherent to OpenCensus itself. It cannot be overcome without changes
// on OpenCensus side.
config.trace.v4alpha.Tracing.Http provider = 9; config.trace.v4alpha.Tracing.Http provider = 9;
} }

Loading…
Cancel
Save