diff --git a/apis/projectcontour/v1alpha1/contourconfig.go b/apis/projectcontour/v1alpha1/contourconfig.go index c622206b305..4f9b4435468 100644 --- a/apis/projectcontour/v1alpha1/contourconfig.go +++ b/apis/projectcontour/v1alpha1/contourconfig.go @@ -82,7 +82,7 @@ type ContourConfigurationSpec struct { // +optional Metrics *MetricsConfig `json:"metrics,omitempty"` - // Tracing defines properties for exporting trace data to OpenTelemetry. + // Tracing defines properties for exporting trace data to the tracing system. Tracing *TracingConfig `json:"tracing,omitempty"` // FeatureFlags defines toggle to enable new contour features. @@ -256,6 +256,12 @@ const ( HTTPVersion2 HTTPVersionType = "HTTP/2" ) +// TracingSystem is the tracing system used in Envoy +type TracingSystem string + +const TracingSystemOpenTelemetry TracingSystem = "opentelemetry" +const TracingSystemZipkin TracingSystem = "zipkin" + // EnvoyConfig defines how Envoy is to be Configured from Contour. type EnvoyConfig struct { // Listener hold various configurable Envoy listener values. @@ -797,7 +803,7 @@ type RateLimitServiceConfig struct { DefaultGlobalRateLimitPolicy *contour_api_v1.GlobalRateLimitPolicy `json:"defaultGlobalRateLimitPolicy,omitempty"` } -// TracingConfig defines properties for exporting trace data to OpenTelemetry. +// TracingConfig defines properties for exporting trace data to the tracing system. type TracingConfig struct { // IncludePodDetail defines a flag. // If it is true, contour will add the pod name and namespace to the span of the trace. @@ -827,6 +833,12 @@ type TracingConfig struct { // ExtensionService identifies the extension service defining the otel-collector. ExtensionService *NamespacedName `json:"extensionService"` + + // System specifies the tracing system used in Evnoy. + // Supported systems are "opentelemetry" and "zipkin". + // Defaults to "opentelemetry". + // +optional + System *TracingSystem `json:"system"` } // CustomTag defines custom tags with unique tag name diff --git a/apis/projectcontour/v1alpha1/contourconfig_helpers.go b/apis/projectcontour/v1alpha1/contourconfig_helpers.go index 0af381adfbc..d39acac62ad 100644 --- a/apis/projectcontour/v1alpha1/contourconfig_helpers.go +++ b/apis/projectcontour/v1alpha1/contourconfig_helpers.go @@ -99,6 +99,14 @@ func (t *TracingConfig) Validate() error { } customTagNames = append(customTagNames, customTag.TagName) } + + if t.System != nil { + switch *t.System { + case TracingSystemOpenTelemetry, TracingSystemZipkin: + default: + return fmt.Errorf("invalid tracing system %q", *t.System) + } + } return nil } diff --git a/apis/projectcontour/v1alpha1/zz_generated.deepcopy.go b/apis/projectcontour/v1alpha1/zz_generated.deepcopy.go index 100a706fb27..bf998a1aca3 100644 --- a/apis/projectcontour/v1alpha1/zz_generated.deepcopy.go +++ b/apis/projectcontour/v1alpha1/zz_generated.deepcopy.go @@ -1319,6 +1319,11 @@ func (in *TracingConfig) DeepCopyInto(out *TracingConfig) { *out = new(NamespacedName) **out = **in } + if in.System != nil { + in, out := &in.System, &out.System + *out = new(TracingSystem) + **out = **in + } } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TracingConfig. diff --git a/cmd/contour/serve.go b/cmd/contour/serve.go index fe8f6bacf48..176e7a3eb68 100644 --- a/cmd/contour/serve.go +++ b/cmd/contour/serve.go @@ -821,6 +821,7 @@ func (s *Server) setupTracingService(tracingConfig *contour_api_v1alpha1.Tracing OverallSampling: overallSampling, MaxPathTagLength: ref.Val(tracingConfig.MaxPathTagLength, 256), CustomTags: customTags, + System: ref.Val(tracingConfig.System, contour_api_v1alpha1.TracingSystemOpenTelemetry), }, nil } diff --git a/cmd/contour/servecontext.go b/cmd/contour/servecontext.go index 72b384fc1c3..4a1540daf67 100644 --- a/cmd/contour/servecontext.go +++ b/cmd/contour/servecontext.go @@ -392,6 +392,15 @@ func (ctx *serveContext) convertToContourConfigurationSpec() contour_api_v1alpha RequestHeaderName: customTag.RequestHeaderName, }) } + var tracingSystem *contour_api_v1alpha1.TracingSystem + if ctx.Config.Tracing.System != nil { + switch *ctx.Config.Tracing.System { + case config.TracingSystemOpenTelemetry: + tracingSystem = ref.To(contour_api_v1alpha1.TracingSystemOpenTelemetry) + case config.TracingSystemZipkin: + tracingSystem = ref.To(contour_api_v1alpha1.TracingSystemZipkin) + } + } tracingConfig = &contour_api_v1alpha1.TracingConfig{ IncludePodDetail: ctx.Config.Tracing.IncludePodDetail, ServiceName: ctx.Config.Tracing.ServiceName, @@ -402,6 +411,7 @@ func (ctx *serveContext) convertToContourConfigurationSpec() contour_api_v1alpha Name: namespacedName.Name, Namespace: namespacedName.Namespace, }, + System: tracingSystem, } } diff --git a/examples/contour/01-crds.yaml b/examples/contour/01-crds.yaml index 7381782771f..ed2edb60f2b 100644 --- a/examples/contour/01-crds.yaml +++ b/examples/contour/01-crds.yaml @@ -1087,7 +1087,7 @@ spec: type: object tracing: description: Tracing defines properties for exporting trace data to - OpenTelemetry. + the tracing system. properties: customTags: description: CustomTags defines a list of custom tags with unique @@ -1145,6 +1145,11 @@ spec: description: ServiceName defines the name for the service. contour's default is contour. type: string + system: + description: System specifies the tracing system used in Evnoy. + Supported systems are "opentelemetry" and "zipkin". Defaults + to "opentelemetry". + type: string required: - extensionService type: object @@ -4856,7 +4861,7 @@ spec: type: object tracing: description: Tracing defines properties for exporting trace data - to OpenTelemetry. + to the tracing system. properties: customTags: description: CustomTags defines a list of custom tags with @@ -4915,6 +4920,11 @@ spec: description: ServiceName defines the name for the service. contour's default is contour. type: string + system: + description: System specifies the tracing system used in Evnoy. + Supported systems are "opentelemetry" and "zipkin". Defaults + to "opentelemetry". + type: string required: - extensionService type: object diff --git a/examples/render/contour-deployment.yaml b/examples/render/contour-deployment.yaml index 55722d8fbd8..871a7e6a001 100644 --- a/examples/render/contour-deployment.yaml +++ b/examples/render/contour-deployment.yaml @@ -1306,7 +1306,7 @@ spec: type: object tracing: description: Tracing defines properties for exporting trace data to - OpenTelemetry. + the tracing system. properties: customTags: description: CustomTags defines a list of custom tags with unique @@ -1364,6 +1364,11 @@ spec: description: ServiceName defines the name for the service. contour's default is contour. type: string + system: + description: System specifies the tracing system used in Evnoy. + Supported systems are "opentelemetry" and "zipkin". Defaults + to "opentelemetry". + type: string required: - extensionService type: object @@ -5075,7 +5080,7 @@ spec: type: object tracing: description: Tracing defines properties for exporting trace data - to OpenTelemetry. + to the tracing system. properties: customTags: description: CustomTags defines a list of custom tags with @@ -5134,6 +5139,11 @@ spec: description: ServiceName defines the name for the service. contour's default is contour. type: string + system: + description: System specifies the tracing system used in Evnoy. + Supported systems are "opentelemetry" and "zipkin". Defaults + to "opentelemetry". + type: string required: - extensionService type: object diff --git a/examples/render/contour-gateway-provisioner.yaml b/examples/render/contour-gateway-provisioner.yaml index 6e1b6b1e562..d4f97baac8f 100644 --- a/examples/render/contour-gateway-provisioner.yaml +++ b/examples/render/contour-gateway-provisioner.yaml @@ -1098,7 +1098,7 @@ spec: type: object tracing: description: Tracing defines properties for exporting trace data to - OpenTelemetry. + the tracing system. properties: customTags: description: CustomTags defines a list of custom tags with unique @@ -1156,6 +1156,11 @@ spec: description: ServiceName defines the name for the service. contour's default is contour. type: string + system: + description: System specifies the tracing system used in Evnoy. + Supported systems are "opentelemetry" and "zipkin". Defaults + to "opentelemetry". + type: string required: - extensionService type: object @@ -4867,7 +4872,7 @@ spec: type: object tracing: description: Tracing defines properties for exporting trace data - to OpenTelemetry. + to the tracing system. properties: customTags: description: CustomTags defines a list of custom tags with @@ -4926,6 +4931,11 @@ spec: description: ServiceName defines the name for the service. contour's default is contour. type: string + system: + description: System specifies the tracing system used in Evnoy. + Supported systems are "opentelemetry" and "zipkin". Defaults + to "opentelemetry". + type: string required: - extensionService type: object diff --git a/examples/render/contour-gateway.yaml b/examples/render/contour-gateway.yaml index f64276cb687..9e7fadc5746 100644 --- a/examples/render/contour-gateway.yaml +++ b/examples/render/contour-gateway.yaml @@ -1309,7 +1309,7 @@ spec: type: object tracing: description: Tracing defines properties for exporting trace data to - OpenTelemetry. + the tracing system. properties: customTags: description: CustomTags defines a list of custom tags with unique @@ -1367,6 +1367,11 @@ spec: description: ServiceName defines the name for the service. contour's default is contour. type: string + system: + description: System specifies the tracing system used in Evnoy. + Supported systems are "opentelemetry" and "zipkin". Defaults + to "opentelemetry". + type: string required: - extensionService type: object @@ -5078,7 +5083,7 @@ spec: type: object tracing: description: Tracing defines properties for exporting trace data - to OpenTelemetry. + to the tracing system. properties: customTags: description: CustomTags defines a list of custom tags with @@ -5137,6 +5142,11 @@ spec: description: ServiceName defines the name for the service. contour's default is contour. type: string + system: + description: System specifies the tracing system used in Evnoy. + Supported systems are "opentelemetry" and "zipkin". Defaults + to "opentelemetry". + type: string required: - extensionService type: object diff --git a/examples/render/contour.yaml b/examples/render/contour.yaml index 01d4a3f3993..58415abf01d 100644 --- a/examples/render/contour.yaml +++ b/examples/render/contour.yaml @@ -1306,7 +1306,7 @@ spec: type: object tracing: description: Tracing defines properties for exporting trace data to - OpenTelemetry. + the tracing system. properties: customTags: description: CustomTags defines a list of custom tags with unique @@ -1364,6 +1364,11 @@ spec: description: ServiceName defines the name for the service. contour's default is contour. type: string + system: + description: System specifies the tracing system used in Evnoy. + Supported systems are "opentelemetry" and "zipkin". Defaults + to "opentelemetry". + type: string required: - extensionService type: object @@ -5075,7 +5080,7 @@ spec: type: object tracing: description: Tracing defines properties for exporting trace data - to OpenTelemetry. + to the tracing system. properties: customTags: description: CustomTags defines a list of custom tags with @@ -5134,6 +5139,11 @@ spec: description: ServiceName defines the name for the service. contour's default is contour. type: string + system: + description: System specifies the tracing system used in Evnoy. + Supported systems are "opentelemetry" and "zipkin". Defaults + to "opentelemetry". + type: string required: - extensionService type: object diff --git a/internal/envoy/v3/route.go b/internal/envoy/v3/route.go index 6f36e3fadf4..5270e2afabf 100644 --- a/internal/envoy/v3/route.go +++ b/internal/envoy/v3/route.go @@ -114,6 +114,11 @@ func buildRoute(dagRoute *dag.Route, vhostName string, secure bool) *envoy_route Match: RouteMatch(dagRoute), Metadata: getRouteMetadata(dagRoute), } + if dagRoute.Name != "" { + route.Decorator = &envoy_route_v3.Decorator{ + Operation: dagRoute.Name, + } + } if dagRoute.StatPrefix != nil { route.StatPrefix = *dagRoute.StatPrefix diff --git a/internal/envoy/v3/tracing.go b/internal/envoy/v3/tracing.go index ffd44084968..fe82e5f5faa 100644 --- a/internal/envoy/v3/tracing.go +++ b/internal/envoy/v3/tracing.go @@ -14,10 +14,13 @@ package v3 import ( + "strings" + envoy_config_trace_v3 "github.com/envoyproxy/go-control-plane/envoy/config/trace/v3" http "github.com/envoyproxy/go-control-plane/envoy/extensions/filters/network/http_connection_manager/v3" envoy_trace_v3 "github.com/envoyproxy/go-control-plane/envoy/type/tracing/v3" envoy_type "github.com/envoyproxy/go-control-plane/envoy/type/v3" + contour_api_v1alpha1 "github.com/projectcontour/contour/apis/projectcontour/v1alpha1" "github.com/projectcontour/contour/internal/dag" "github.com/projectcontour/contour/internal/protobuf" "github.com/projectcontour/contour/internal/timeout" @@ -39,13 +42,16 @@ func TracingConfig(tracing *EnvoyTracingConfig) *http.HttpConnectionManager_Trac } } - return &http.HttpConnectionManager_Tracing{ + connManagerTracing := &http.HttpConnectionManager_Tracing{ OverallSampling: &envoy_type.Percent{ Value: tracing.OverallSampling, }, MaxPathTagLength: wrapperspb.UInt32(tracing.MaxPathTagLength), CustomTags: customTags, - Provider: &envoy_config_trace_v3.Tracing_Http{ + } + switch tracing.System { + case contour_api_v1alpha1.TracingSystemOpenTelemetry: + connManagerTracing.Provider = &envoy_config_trace_v3.Tracing_Http{ Name: "envoy.tracers.opentelemetry", ConfigType: &envoy_config_trace_v3.Tracing_Http_TypedConfig{ TypedConfig: protobuf.MustMarshalAny(&envoy_config_trace_v3.OpenTelemetryConfig{ @@ -53,8 +59,23 @@ func TracingConfig(tracing *EnvoyTracingConfig) *http.HttpConnectionManager_Trac ServiceName: tracing.ServiceName, }), }, - }, + } + case contour_api_v1alpha1.TracingSystemZipkin: + connManagerTracing.Provider = &envoy_config_trace_v3.Tracing_Http{ + Name: "envoy.tracers.zipkin", + ConfigType: &envoy_config_trace_v3.Tracing_Http_TypedConfig{ + TypedConfig: protobuf.MustMarshalAny(&envoy_config_trace_v3.ZipkinConfig{ + CollectorCluster: dag.ExtensionClusterName(tracing.ExtensionService), + CollectorHostname: strings.ReplaceAll(dag.ExtensionClusterName(tracing.ExtensionService), "/", "."), + CollectorEndpoint: "/api/v2/spans", + SharedSpanContext: wrapperspb.Bool(false), + CollectorEndpointVersion: envoy_config_trace_v3.ZipkinConfig_HTTP_JSON, + }), + }, + } } + + return connManagerTracing } func customTag(tag *CustomTag) *envoy_trace_v3.CustomTag { @@ -102,6 +123,7 @@ type EnvoyTracingConfig struct { OverallSampling float64 MaxPathTagLength uint32 CustomTags []*CustomTag + System contour_api_v1alpha1.TracingSystem } type CustomTag struct { diff --git a/internal/envoy/v3/tracing_test.go b/internal/envoy/v3/tracing_test.go index 72cffe7269e..a1dba5b1138 100644 --- a/internal/envoy/v3/tracing_test.go +++ b/internal/envoy/v3/tracing_test.go @@ -22,6 +22,7 @@ import ( http "github.com/envoyproxy/go-control-plane/envoy/extensions/filters/network/http_connection_manager/v3" envoy_trace_v3 "github.com/envoyproxy/go-control-plane/envoy/type/tracing/v3" envoy_type_v3 "github.com/envoyproxy/go-control-plane/envoy/type/v3" + contour_api_v1alpha1 "github.com/projectcontour/contour/apis/projectcontour/v1alpha1" "github.com/projectcontour/contour/internal/k8s" "github.com/projectcontour/contour/internal/protobuf" "github.com/projectcontour/contour/internal/timeout" @@ -39,7 +40,7 @@ func TestTracingConfig(t *testing.T) { tracing: nil, want: nil, }, - "normal config": { + "opentelemtry normal config": { tracing: &EnvoyTracingConfig{ ExtensionService: k8s.NamespacedNameFrom("projectcontour/otel-collector"), ServiceName: "contour", @@ -61,6 +62,7 @@ func TestTracingConfig(t *testing.T) { RequestHeaderName: ":path", }, }, + System: contour_api_v1alpha1.TracingSystemOpenTelemetry, }, want: &http.HttpConnectionManager_Tracing{ OverallSampling: &envoy_type_v3.Percent{ @@ -112,7 +114,7 @@ func TestTracingConfig(t *testing.T) { }, }, }, - "no custom tag": { + "opentelemtry no custom tag": { tracing: &EnvoyTracingConfig{ ExtensionService: k8s.NamespacedNameFrom("projectcontour/otel-collector"), ServiceName: "contour", @@ -121,6 +123,7 @@ func TestTracingConfig(t *testing.T) { OverallSampling: 100, MaxPathTagLength: 256, CustomTags: nil, + System: contour_api_v1alpha1.TracingSystemOpenTelemetry, }, want: &http.HttpConnectionManager_Tracing{ OverallSampling: &envoy_type_v3.Percent{ @@ -147,7 +150,7 @@ func TestTracingConfig(t *testing.T) { }, }, }, - "no SNI set": { + "opentelemtry no SNI set": { tracing: &EnvoyTracingConfig{ ExtensionService: k8s.NamespacedNameFrom("projectcontour/otel-collector"), ServiceName: "contour", @@ -156,6 +159,7 @@ func TestTracingConfig(t *testing.T) { OverallSampling: 100, MaxPathTagLength: 256, CustomTags: nil, + System: contour_api_v1alpha1.TracingSystemOpenTelemetry, }, want: &http.HttpConnectionManager_Tracing{ OverallSampling: &envoy_type_v3.Percent{ @@ -182,6 +186,75 @@ func TestTracingConfig(t *testing.T) { }, }, }, + "zipkin normal config": { + tracing: &EnvoyTracingConfig{ + ExtensionService: k8s.NamespacedNameFrom("projectcontour/otel-collector"), + ServiceName: "contour", + SNI: "some-server.com", + Timeout: timeout.DurationSetting(5 * time.Second), + OverallSampling: 100, + MaxPathTagLength: 256, + CustomTags: []*CustomTag{ + { + TagName: "literal", + Literal: "this is literal", + }, + { + TagName: "podName", + EnvironmentName: "HOSTNAME", + }, + { + TagName: "requestHeaderName", + RequestHeaderName: ":path", + }, + }, + System: contour_api_v1alpha1.TracingSystemZipkin, + }, + want: &http.HttpConnectionManager_Tracing{ + OverallSampling: &envoy_type_v3.Percent{ + Value: 100.0, + }, + MaxPathTagLength: wrapperspb.UInt32(256), + CustomTags: []*envoy_trace_v3.CustomTag{ + { + Tag: "literal", + Type: &envoy_trace_v3.CustomTag_Literal_{ + Literal: &envoy_trace_v3.CustomTag_Literal{ + Value: "this is literal", + }, + }, + }, + { + Tag: "podName", + Type: &envoy_trace_v3.CustomTag_Environment_{ + Environment: &envoy_trace_v3.CustomTag_Environment{ + Name: "HOSTNAME", + }, + }, + }, + { + Tag: "requestHeaderName", + Type: &envoy_trace_v3.CustomTag_RequestHeader{ + RequestHeader: &envoy_trace_v3.CustomTag_Header{ + Name: ":path", + }, + }, + }, + }, + Provider: &envoy_config_trace_v3.Tracing_Http{ + Name: "envoy.tracers.zipkin", + ConfigType: &envoy_config_trace_v3.Tracing_Http_TypedConfig{ + TypedConfig: protobuf.MustMarshalAny(&envoy_config_trace_v3.ZipkinConfig{ + CollectorCluster: "extension/projectcontour/otel-collector", + CollectorHostname: "extension.projectcontour.otel-collector", + CollectorEndpoint: "/api/v2/spans", + SharedSpanContext: wrapperspb.Bool(false), + CollectorEndpointVersion: envoy_config_trace_v3.ZipkinConfig_HTTP_JSON, + }), + }, + }, + }, + }, } for name, tc := range tests { t.Run(name, func(t *testing.T) { diff --git a/internal/featuretests/v3/routesourcemetadata_test.go b/internal/featuretests/v3/routesourcemetadata_test.go index 50f21b4f2e4..b88fa645227 100644 --- a/internal/featuretests/v3/routesourcemetadata_test.go +++ b/internal/featuretests/v3/routesourcemetadata_test.go @@ -95,6 +95,9 @@ func TestRouteSourceMetadataIsSet(t *testing.T) { }, }, }, + Decorator: &envoy_route_v3.Decorator{ + Operation: "ingress-kuard", + }, }), ), ), @@ -140,6 +143,9 @@ func TestRouteSourceMetadataIsSet(t *testing.T) { }, }, }, + Decorator: &envoy_route_v3.Decorator{ + Operation: "httpproxy-kuard", + }, }), ), ), @@ -192,6 +198,9 @@ func TestRouteSourceMetadataIsSet(t *testing.T) { }, }, }, + Decorator: &envoy_route_v3.Decorator{ + Operation: "httproute-kuard", + }, }), ), ), diff --git a/internal/xdscache/v3/listener.go b/internal/xdscache/v3/listener.go index 13aee02d28b..3fac6c27fa9 100644 --- a/internal/xdscache/v3/listener.go +++ b/internal/xdscache/v3/listener.go @@ -168,6 +168,8 @@ type TracingConfig struct { MaxPathTagLength uint32 CustomTags []*CustomTag + + System contour_api_v1alpha1.TracingSystem } type CustomTag struct { @@ -672,6 +674,7 @@ func envoyTracingConfig(config *TracingConfig) *envoy_v3.EnvoyTracingConfig { OverallSampling: config.OverallSampling, MaxPathTagLength: config.MaxPathTagLength, CustomTags: envoyTracingConfigCustomTag(config.CustomTags), + System: config.System, } } diff --git a/pkg/config/parameters.go b/pkg/config/parameters.go index 57d3e2af3a4..496ebddf31a 100644 --- a/pkg/config/parameters.go +++ b/pkg/config/parameters.go @@ -156,6 +156,21 @@ func (h HTTPVersionType) Validate() error { const HTTPVersion1 HTTPVersionType = "http/1.1" const HTTPVersion2 HTTPVersionType = "http/2" +// TracingSystem is the tracing system used in Envoy +type TracingSystem string + +func (h TracingSystem) Validate() error { + switch h { + case TracingSystemOpenTelemetry, TracingSystemZipkin: + return nil + default: + return fmt.Errorf("invalid tracing system %q", h) + } +} + +const TracingSystemOpenTelemetry TracingSystem = "opentelemetry" +const TracingSystemZipkin TracingSystem = "zipkin" + // NamespacedName defines the namespace/name of the Kubernetes resource referred from the configuration file. // Used for Contour configuration YAML file parsing, otherwise we could use K8s types.NamespacedName. type NamespacedName struct { @@ -699,7 +714,7 @@ type Parameters struct { // MetricsParameters holds configurable parameters for Contour and Envoy metrics. Metrics MetricsParameters `yaml:"metrics,omitempty"` - // Tracing holds the relevant configuration for exporting trace data to OpenTelemetry. + // Tracing holds the relevant configuration for exporting trace data to the tracing system. Tracing *Tracing `yaml:"tracing,omitempty"` // FeatureFlags defines toggle to enable new contour features. @@ -710,7 +725,7 @@ type Parameters struct { FeatureFlags []string `yaml:"featureFlags,omitempty"` } -// Tracing defines properties for exporting trace data to OpenTelemetry. +// Tracing defines properties for exporting trace data to the tracing system. type Tracing struct { // IncludePodDetail defines a flag. // If it is true, contour will add the pod name and namespace to the span of the trace. @@ -737,6 +752,10 @@ type Tracing struct { // ExtensionService identifies the extension service defining the otel-collector, // formatted as /. ExtensionService string `yaml:"extensionService"` + + // System Specifies the tracing system to use. Supported systems are + // "zipkin" and "opentelemetry". + System *TracingSystem `yaml:"system"` } // CustomTag defines custom tags with unique tag name diff --git a/site/content/docs/main/config/api-reference.html b/site/content/docs/main/config/api-reference.html index bf47f593e3a..c40004b61ee 100644 --- a/site/content/docs/main/config/api-reference.html +++ b/site/content/docs/main/config/api-reference.html @@ -5394,7 +5394,7 @@

ContourConfiguration -

Tracing defines properties for exporting trace data to OpenTelemetry.

+

Tracing defines properties for exporting trace data to the tracing system.

@@ -6187,7 +6187,7 @@

ContourConfiguratio -

Tracing defines properties for exporting trace data to OpenTelemetry.

+

Tracing defines properties for exporting trace data to the tracing system.

@@ -9097,7 +9097,7 @@

TracingConfig ContourConfigurationSpec)

-

TracingConfig defines properties for exporting trace data to OpenTelemetry.

+

TracingConfig defines properties for exporting trace data to the tracing system.

@@ -9194,8 +9194,47 @@

TracingConfig

ExtensionService identifies the extension service defining the otel-collector.

+

+ + +
+system +
+ + +TracingSystem + + +
+(Optional) +

System specifies the tracing system used in Evnoy. +Supported systems are “opentelemetry” and “zipkin”. +Defaults to “opentelemetry”.

+
+

TracingSystem +(string alias)

+

+(Appears on: +TracingConfig) +

+

+

TracingSystem is the tracing system used in Envoy

+

+ + + + + + + + + + + + +
ValueDescription

"opentelemetry"

"zipkin"

WorkloadType (string alias)