Skip to content

Commit e26deaf

Browse files
authored
put otel meter for http/grpc behind a FF (#202)
1 parent e1c63df commit e26deaf

File tree

4 files changed

+23
-5
lines changed

4 files changed

+23
-5
lines changed

config/configgrpc/configgrpc.go

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ import (
4545
"go.opentelemetry.io/collector/config/configtls"
4646
"go.opentelemetry.io/collector/config/internal"
4747
"go.opentelemetry.io/collector/extension/auth"
48+
"go.opentelemetry.io/collector/internal/obsreportconfig"
4849
)
4950

5051
var errMetadataNotFound = errors.New("no request metadata found")
@@ -260,10 +261,13 @@ func (gcs *GRPCClientSettings) toDialOptions(host component.Host, settings compo
260261

261262
otelOpts := []otelgrpc.Option{
262263
otelgrpc.WithTracerProvider(settings.TracerProvider),
263-
otelgrpc.WithMeterProvider(settings.MeterProvider),
264264
otelgrpc.WithPropagators(otel.GetTextMapPropagator()),
265265
}
266266

267+
if obsreportconfig.EnableHighCardinalityMetricsfeatureGate.IsEnabled() {
268+
otelOpts = append(otelOpts, otelgrpc.WithMeterProvider(settings.MeterProvider))
269+
}
270+
267271
// Enable OpenTelemetry observability plugin.
268272
opts = append(opts, grpc.WithUnaryInterceptor(otelgrpc.UnaryClientInterceptor(otelOpts...)))
269273
opts = append(opts, grpc.WithStreamInterceptor(otelgrpc.StreamClientInterceptor(otelOpts...)))

config/confighttp/confighttp.go

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ import (
3333
"go.opentelemetry.io/collector/config/configtls"
3434
"go.opentelemetry.io/collector/config/internal"
3535
"go.opentelemetry.io/collector/extension/auth"
36+
"go.opentelemetry.io/collector/internal/obsreportconfig"
3637
)
3738

3839
const headerContentEncoding = "Content-Encoding"
@@ -143,11 +144,16 @@ func (hcs *HTTPClientSettings) ToClient(host component.Host, settings component.
143144
}
144145
// wrapping http transport with otelhttp transport to enable otel instrumenetation
145146
if settings.TracerProvider != nil && settings.MeterProvider != nil {
146-
clientTransport = otelhttp.NewTransport(
147-
clientTransport,
147+
otelOpts := []otelhttp.Option{
148148
otelhttp.WithTracerProvider(settings.TracerProvider),
149-
otelhttp.WithMeterProvider(settings.MeterProvider),
150149
otelhttp.WithPropagators(otel.GetTextMapPropagator()),
150+
}
151+
if obsreportconfig.EnableHighCardinalityMetricsfeatureGate.IsEnabled() {
152+
otelOpts = append(otelOpts, otelhttp.WithMeterProvider(settings.MeterProvider))
153+
}
154+
clientTransport = otelhttp.NewTransport(
155+
clientTransport,
156+
otelOpts...,
151157
)
152158
}
153159

internal/obsreportconfig/obsreportconfig.go

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,14 @@ var UseOtelForInternalMetricsfeatureGate = featuregate.GlobalRegistry().MustRegi
3131
featuregate.StageAlpha,
3232
featuregate.WithRegisterDescription("controls whether the collector uses OpenTelemetry for internal metrics"))
3333

34+
// EnableHighCardinalityMetricsfeatureGate is the feature gate that controls whether the collecor should enable
35+
// potentially high cardinality metrics.
36+
var EnableHighCardinalityMetricsfeatureGate = featuregate.GlobalRegistry().MustRegister(
37+
"telemetry.enableHighCardinalityMetrics",
38+
featuregate.StageAlpha,
39+
featuregate.WithRegisterDescription("controls whether the collecor should enable potentially high"+
40+
"cardinality metrics."))
41+
3442
// AllViews returns all the OpenCensus views requires by obsreport package.
3543
func AllViews(level configtelemetry.Level) []*view.View {
3644
if level == configtelemetry.LevelNone {

service/telemetry.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -241,4 +241,4 @@ func batchViews() []sdkmetric.View {
241241
}},
242242
),
243243
}
244-
}
244+
}

0 commit comments

Comments
 (0)