diff --git a/internal/component/otelcol/exporter/googlecloud/googlecloud.go b/internal/component/otelcol/exporter/googlecloud/googlecloud.go index 08d2d2a82fa..5376d1c272f 100644 --- a/internal/component/otelcol/exporter/googlecloud/googlecloud.go +++ b/internal/component/otelcol/exporter/googlecloud/googlecloud.go @@ -2,9 +2,6 @@ package googlecloud import ( - "time" - - "github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/collector" "github.com/open-telemetry/opentelemetry-collector-contrib/exporter/googlecloudexporter" otelcomponent "go.opentelemetry.io/collector/component" "go.opentelemetry.io/collector/pipeline" @@ -64,11 +61,10 @@ func (args *Arguments) SetToDefault() { // Convert implements exporter.Arguments. func (args Arguments) Convert() (otelcomponent.Config, error) { - var result googlecloudexporter.Config - // We need to assign default values first to populate fields with unexported functions - result.Config = collector.DefaultConfig() + // The factory default seeds the embedded collector.DefaultConfig(), which + // populates fields holding unexported functions. + result := *googlecloudexporter.NewFactory().CreateDefaultConfig().(*googlecloudexporter.Config) - result.TimeoutSettings.Timeout = 12 * time.Second // https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/70d8986fa3a30e1f26927abffe1880345e2afa3f/exporter/googlecloudexporter/factory.go#L48 q, err := args.Queue.Convert() if err != nil { return nil, err diff --git a/internal/component/otelcol/exporter/googlecloudpubsub/googlecloudpubsub.go b/internal/component/otelcol/exporter/googlecloudpubsub/googlecloudpubsub.go index 3aa70fe7a0f..2edfa2b9a83 100644 --- a/internal/component/otelcol/exporter/googlecloudpubsub/googlecloudpubsub.go +++ b/internal/component/otelcol/exporter/googlecloudpubsub/googlecloudpubsub.go @@ -70,7 +70,7 @@ func (args *Arguments) SetToDefault() { } func (args Arguments) Convert() (otelcomponent.Config, error) { - var result googlecloudpubsubexporter.Config + result := *googlecloudpubsubexporter.NewFactory().CreateDefaultConfig().(*googlecloudpubsubexporter.Config) result.BackOffConfig = *args.Retry.Convert() diff --git a/internal/component/otelcol/processor/cumulativetodelta/cumulativetodelta.go b/internal/component/otelcol/processor/cumulativetodelta/cumulativetodelta.go index 099df5c9f11..9077c1d9142 100644 --- a/internal/component/otelcol/processor/cumulativetodelta/cumulativetodelta.go +++ b/internal/component/otelcol/processor/cumulativetodelta/cumulativetodelta.go @@ -107,7 +107,7 @@ func (args *Arguments) Validate() error { // Convert implements processor.Arguments. func (args Arguments) Convert() (otelcomponent.Config, error) { - var result cumulativetodeltaprocessor.Config + result := *cumulativetodeltaprocessor.NewFactory().CreateDefaultConfig().(*cumulativetodeltaprocessor.Config) result.MaxStaleness = args.MaxStaleness diff --git a/internal/component/otelcol/receiver/file_stats/types_convert.go b/internal/component/otelcol/receiver/file_stats/types_convert.go index c94a512f1c6..e95e0698496 100644 --- a/internal/component/otelcol/receiver/file_stats/types_convert.go +++ b/internal/component/otelcol/receiver/file_stats/types_convert.go @@ -16,7 +16,7 @@ var _ receiver.Arguments = Arguments{} // Convert implements receiver.Arguments. func (args Arguments) Convert() (otelcomponent.Config, error) { - var out filestatsreceiver.Config + out := *filestatsreceiver.NewFactory().CreateDefaultConfig().(*filestatsreceiver.Config) out.ControllerConfig = *args.Controller.Convert() out.Include = args.Include diff --git a/internal/component/otelcol/receiver/kafka/kafka.go b/internal/component/otelcol/receiver/kafka/kafka.go index 4c7142b55ea..5e5aaf99cd8 100644 --- a/internal/component/otelcol/receiver/kafka/kafka.go +++ b/internal/component/otelcol/receiver/kafka/kafka.go @@ -231,7 +231,7 @@ func (args Arguments) Convert() (otelcomponent.Config, error) { input := make(map[string]any) input["auth"] = args.Authentication.Convert() - var result kafkareceiver.Config + result := *kafkareceiver.NewFactory().CreateDefaultConfig().(*kafkareceiver.Config) err := mapstructure.Decode(input, &result) if err != nil { return nil, err diff --git a/internal/component/otelcol/receiver/kafka/kafka_test.go b/internal/component/otelcol/receiver/kafka/kafka_test.go index 150efd63f35..acdaacb2d11 100644 --- a/internal/component/otelcol/receiver/kafka/kafka_test.go +++ b/internal/component/otelcol/receiver/kafka/kafka_test.go @@ -60,6 +60,10 @@ func TestArguments_UnmarshalAlloy(t *testing.T) { Topics: []string{"otlp_spans"}, Encoding: "otlp_proto", }, + Profiles: kafkareceiver.TopicEncodingConfig{ + Topics: []string{"otlp_profiles"}, + Encoding: "otlp_proto", + }, HeaderExtraction: kafkareceiver.HeaderExtraction{ ExtractHeaders: false, Headers: []string{}, @@ -164,6 +168,10 @@ func TestArguments_UnmarshalAlloy(t *testing.T) { Encoding: "zipkin_json", ExcludeTopics: []string{"^traces-debug-.*$"}, }, + Profiles: kafkareceiver.TopicEncodingConfig{ + Topics: []string{"otlp_profiles"}, + Encoding: "otlp_proto", + }, ClientConfig: configkafka.ClientConfig{ Brokers: []string{"10.10.10.10:9092"}, ProtocolVersion: "2.0.0", @@ -588,7 +596,9 @@ func TestArguments_Auth(t *testing.T) { actual := actualPtr.(*kafkareceiver.Config) - var expected kafkareceiver.Config + // Seed the same way Convert does, so the case only has to spell out + // what it overrides on top of the upstream defaults. + expected := *kafkareceiver.NewFactory().CreateDefaultConfig().(*kafkareceiver.Config) err = mapstructure.Decode(tc.expected, &expected) require.NoError(t, err)