From 44aca0881d5a1a714bb8fdf94e01ab03a55a1a0c Mon Sep 17 00:00:00 2001 From: David Ashpole Date: Fri, 8 Apr 2022 21:10:14 -0400 Subject: [PATCH] fix featuregate for googlecloud exporter by not checking it during NewFactory (#9116) --- CHANGELOG.md | 1 + exporter/googlecloudexporter/factory.go | 56 +++++++++---------------- 2 files changed, 20 insertions(+), 37 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4823123c5714..e474f1294125 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -29,6 +29,7 @@ - `hostmetricsreceiver`: Use cpu times for time delta in cpu.utilization calculation (#8857) - `dynatraceexporter`: Remove overly verbose stacktrace from certain logs (#8989) +- `googlecloudexporter`: fix the `exporter.googlecloud.OTLPDirect` fature-gate, which was not applied when the flag was provided (#9116) ### 🚩 Deprecations 🚩 diff --git a/exporter/googlecloudexporter/factory.go b/exporter/googlecloudexporter/factory.go index e826c0126a22..3faa7c967ed1 100644 --- a/exporter/googlecloudexporter/factory.go +++ b/exporter/googlecloudexporter/factory.go @@ -42,14 +42,6 @@ func init() { // NewFactory creates a factory for the googlecloud exporter func NewFactory() component.ExporterFactory { - if !featuregate.IsEnabled(pdataExporterFeatureGate) { - return component.NewExporterFactory( - typeStr, - createLegacyDefaultConfig, - component.WithTracesExporter(createLegacyTracesExporter), - component.WithMetricsExporter(createLegacyMetricsExporter), - ) - } return component.NewExporterFactory( typeStr, createDefaultConfig, @@ -60,6 +52,15 @@ func NewFactory() component.ExporterFactory { // createDefaultConfig creates the default configuration for exporter. func createDefaultConfig() config.Exporter { + if !featuregate.IsEnabled(pdataExporterFeatureGate) { + return &LegacyConfig{ + ExporterSettings: config.NewExporterSettings(config.NewComponentID(typeStr)), + TimeoutSettings: exporterhelper.TimeoutSettings{Timeout: defaultTimeout}, + RetrySettings: exporterhelper.NewDefaultRetrySettings(), + QueueSettings: exporterhelper.NewDefaultQueueSettings(), + UserAgent: "opentelemetry-collector-contrib {{version}}", + } + } return &Config{ ExporterSettings: config.NewExporterSettings(config.NewComponentID(typeStr)), TimeoutSettings: exporterhelper.TimeoutSettings{Timeout: defaultTimeout}, @@ -69,22 +70,17 @@ func createDefaultConfig() config.Exporter { } } -func createLegacyDefaultConfig() config.Exporter { - return &LegacyConfig{ - ExporterSettings: config.NewExporterSettings(config.NewComponentID(typeStr)), - TimeoutSettings: exporterhelper.TimeoutSettings{Timeout: defaultTimeout}, - RetrySettings: exporterhelper.NewDefaultRetrySettings(), - QueueSettings: exporterhelper.NewDefaultQueueSettings(), - UserAgent: "opentelemetry-collector-contrib {{version}}", - } -} - // createTracesExporter creates a trace exporter based on this config. func createTracesExporter( ctx context.Context, params component.ExporterCreateSettings, cfg config.Exporter) (component.TracesExporter, error) { - eCfg := cfg.(*Config) + var eCfg *Config + if !featuregate.IsEnabled(pdataExporterFeatureGate) { + eCfg = toNewConfig(cfg.(*LegacyConfig)) + } else { + eCfg = cfg.(*Config) + } tExp, err := collector.NewGoogleCloudTracesExporter(ctx, eCfg.Config, params.BuildInfo.Version, eCfg.Timeout) if err != nil { return nil, err @@ -101,20 +97,15 @@ func createTracesExporter( exporterhelper.WithRetry(eCfg.RetrySettings)) } -// createLegacyTracesExporter creates a trace exporter based on this config. -func createLegacyTracesExporter( - ctx context.Context, - params component.ExporterCreateSettings, - cfg config.Exporter) (component.TracesExporter, error) { - eCfg := cfg.(*LegacyConfig) - return createTracesExporter(ctx, params, toNewConfig(eCfg)) -} - // createMetricsExporter creates a metrics exporter based on this config. func createMetricsExporter( ctx context.Context, params component.ExporterCreateSettings, cfg config.Exporter) (component.MetricsExporter, error) { + if !featuregate.IsEnabled(pdataExporterFeatureGate) { + eCfg := cfg.(*LegacyConfig) + return newLegacyGoogleCloudMetricsExporter(eCfg, params) + } eCfg := cfg.(*Config) mExp, err := collector.NewGoogleCloudMetricsExporter(ctx, eCfg.Config, params.TelemetrySettings.Logger, params.BuildInfo.Version, eCfg.Timeout) if err != nil { @@ -131,12 +122,3 @@ func createMetricsExporter( exporterhelper.WithQueue(eCfg.QueueSettings), exporterhelper.WithRetry(eCfg.RetrySettings)) } - -// createLegacyMetricsExporter creates a metrics exporter based on this config. -func createLegacyMetricsExporter( - ctx context.Context, - params component.ExporterCreateSettings, - cfg config.Exporter) (component.MetricsExporter, error) { - eCfg := cfg.(*LegacyConfig) - return newLegacyGoogleCloudMetricsExporter(eCfg, params) -}