Allow specifying samplers for the OpenTelemetry tracer via a new configuration. (#30259)

Signed-off-by: thomas.ebner <thomas.ebner@dynatrace.com>
Signed-off-by: Joao Grassi <joao.grassi@dynatrace.com>

Mirrored from https://github.com/envoyproxy/envoy @ c600637b9fddfe3f1381baf436e050f3fa7723b6
main
update-envoy[bot] 1 year ago
parent 11884f6161
commit 783cea0e79
  1. 1
      BUILD
  2. 9
      envoy/config/trace/v3/opentelemetry.proto
  3. 9
      envoy/extensions/tracers/opentelemetry/samplers/v3/BUILD
  4. 23
      envoy/extensions/tracers/opentelemetry/samplers/v3/always_on_sampler.proto
  5. 1
      versioning/BUILD

@ -307,6 +307,7 @@ proto_library(
"//envoy/extensions/stat_sinks/open_telemetry/v3:pkg",
"//envoy/extensions/stat_sinks/wasm/v3:pkg",
"//envoy/extensions/tracers/opentelemetry/resource_detectors/v3:pkg",
"//envoy/extensions/tracers/opentelemetry/samplers/v3:pkg",
"//envoy/extensions/transport_sockets/alts/v3:pkg",
"//envoy/extensions/transport_sockets/http_11_proxy/v3:pkg",
"//envoy/extensions/transport_sockets/internal_upstream/v3:pkg",

@ -19,6 +19,7 @@ option (udpa.annotations.file_status).package_version_status = ACTIVE;
// Configuration for the OpenTelemetry tracer.
// [#extension: envoy.tracers.opentelemetry]
// [#next-free-field: 6]
message 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.
@ -48,4 +49,12 @@ message OpenTelemetryConfig {
// An ordered list of resource detectors
// [#extension-category: envoy.tracers.opentelemetry.resource_detectors]
repeated core.v3.TypedExtensionConfig resource_detectors = 4;
// Specifies the sampler to be used by the OpenTelemetry tracer.
// The configured sampler implements the Sampler interface defined by the OpenTelemetry specification.
// This field can be left empty. In this case, the default Envoy sampling decision is used.
//
// See: `OpenTelemetry sampler specification <https://opentelemetry.io/docs/specs/otel/trace/sdk/#sampler>`_
// [#extension-category: envoy.tracers.opentelemetry.samplers]
core.v3.TypedExtensionConfig sampler = 5;
}

@ -0,0 +1,9 @@
# DO NOT EDIT. This file is generated by tools/proto_format/proto_sync.py.
load("@envoy_api//bazel:api_build_system.bzl", "api_proto_package")
licenses(["notice"]) # Apache 2
api_proto_package(
deps = ["@com_github_cncf_udpa//udpa/annotations:pkg"],
)

@ -0,0 +1,23 @@
syntax = "proto3";
package envoy.extensions.tracers.opentelemetry.samplers.v3;
import "udpa/annotations/status.proto";
option java_package = "io.envoyproxy.envoy.extensions.tracers.opentelemetry.samplers.v3";
option java_outer_classname = "AlwaysOnSamplerProto";
option java_multiple_files = true;
option go_package = "github.com/envoyproxy/go-control-plane/envoy/extensions/tracers/opentelemetry/samplers/v3;samplersv3";
option (udpa.annotations.file_status).package_version_status = ACTIVE;
// [#protodoc-title: Always On Sampler config]
// Configuration for the "AlwaysOn" Sampler extension.
// The sampler follows the "AlwaysOn" implementation from the OpenTelemetry
// SDK specification.
//
// See:
// `AlwaysOn sampler specification <https://opentelemetry.io/docs/specs/otel/trace/sdk/#alwayson>`_
// [#extension: envoy.tracers.opentelemetry.samplers.always_on]
message AlwaysOnSamplerConfig {
}

@ -246,6 +246,7 @@ proto_library(
"//envoy/extensions/stat_sinks/open_telemetry/v3:pkg",
"//envoy/extensions/stat_sinks/wasm/v3:pkg",
"//envoy/extensions/tracers/opentelemetry/resource_detectors/v3:pkg",
"//envoy/extensions/tracers/opentelemetry/samplers/v3:pkg",
"//envoy/extensions/transport_sockets/alts/v3:pkg",
"//envoy/extensions/transport_sockets/http_11_proxy/v3:pkg",
"//envoy/extensions/transport_sockets/internal_upstream/v3:pkg",

Loading…
Cancel
Save