From f8650e7b84e91bb4d5177e109ebb823eff3bb802 Mon Sep 17 00:00:00 2001 From: mackjmr Date: Wed, 25 Sep 2024 15:34:38 +0200 Subject: [PATCH 1/2] [exporter/otlphttpexporter] Use NewDefaultClientConfig instead of manually creating struct This PR makes usage of `NewDefaultClientConfig` instead of manually creating the confighttp.ClientConfig struct. The updates to defaults are maintained (Timeout, Compression, WriteBufferSize) whereas the fields that match the default are not manually set anymore (Endpoint, Headers). Issue: https://github.com/open-telemetry/opentelemetry-collector/issues/9478#issuecomment-2241891068 --- exporter/otlphttpexporter/factory.go | 24 +++++++++++------------- 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/exporter/otlphttpexporter/factory.go b/exporter/otlphttpexporter/factory.go index 8b7ec9dc807..bca64e5f548 100644 --- a/exporter/otlphttpexporter/factory.go +++ b/exporter/otlphttpexporter/factory.go @@ -13,7 +13,6 @@ import ( "go.opentelemetry.io/collector/component" "go.opentelemetry.io/collector/config/configcompression" "go.opentelemetry.io/collector/config/confighttp" - "go.opentelemetry.io/collector/config/configopaque" "go.opentelemetry.io/collector/config/configretry" "go.opentelemetry.io/collector/consumer" "go.opentelemetry.io/collector/exporter" @@ -33,19 +32,18 @@ func NewFactory() exporter.Factory { } func createDefaultConfig() component.Config { + clientConfig := confighttp.NewDefaultClientConfig() + clientConfig.Timeout = 30 * time.Second + // Default to gzip compression + clientConfig.Compression = configcompression.TypeGzip + // We almost read 0 bytes, so no need to tune ReadBufferSize. + clientConfig.WriteBufferSize = 512 * 1024 + return &Config{ - RetryConfig: configretry.NewDefaultBackOffConfig(), - QueueConfig: exporterhelper.NewDefaultQueueConfig(), - Encoding: EncodingProto, - ClientConfig: confighttp.ClientConfig{ - Endpoint: "", - Timeout: 30 * time.Second, - Headers: map[string]configopaque.String{}, - // Default to gzip compression - Compression: configcompression.TypeGzip, - // We almost read 0 bytes, so no need to tune ReadBufferSize. - WriteBufferSize: 512 * 1024, - }, + RetryConfig: configretry.NewDefaultBackOffConfig(), + QueueConfig: exporterhelper.NewDefaultQueueConfig(), + Encoding: EncodingProto, + ClientConfig: clientConfig, } } From b032a6adc2e67feea802e41b7e121929ee4cd314 Mon Sep 17 00:00:00 2001 From: mackjmr Date: Wed, 25 Sep 2024 15:50:10 +0200 Subject: [PATCH 2/2] nil fields --- exporter/otlphttpexporter/factory.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/exporter/otlphttpexporter/factory.go b/exporter/otlphttpexporter/factory.go index bca64e5f548..1417f354a70 100644 --- a/exporter/otlphttpexporter/factory.go +++ b/exporter/otlphttpexporter/factory.go @@ -38,6 +38,10 @@ func createDefaultConfig() component.Config { clientConfig.Compression = configcompression.TypeGzip // We almost read 0 bytes, so no need to tune ReadBufferSize. clientConfig.WriteBufferSize = 512 * 1024 + clientConfig.MaxIdleConns = nil + clientConfig.MaxIdleConnsPerHost = nil + clientConfig.MaxConnsPerHost = nil + clientConfig.IdleConnTimeout = nil return &Config{ RetryConfig: configretry.NewDefaultBackOffConfig(),