diff --git a/component/receiver.go b/component/receiver.go index 46a299d9411..cdf3fdf622a 100644 --- a/component/receiver.go +++ b/component/receiver.go @@ -96,8 +96,8 @@ type ReceiverFactoryOld interface { // CreateMetricsReceiver creates a metrics receiver based on this config. // If the receiver type does not support metrics or if the config is not valid // error will be returned instead. - CreateMetricsReceiver(logger *zap.Logger, cfg configmodels.Receiver, - consumer consumer.MetricsConsumerOld) (MetricsReceiver, error) + CreateMetricsReceiver(ctx context.Context, logger *zap.Logger, cfg configmodels.Receiver, + nextConsumer consumer.MetricsConsumerOld) (MetricsReceiver, error) } // ReceiverCreateParams is passed to ReceiverFactory.Create* functions. diff --git a/component/receiver_test.go b/component/receiver_test.go index 0d05f6bb14d..1954d5726dc 100644 --- a/component/receiver_test.go +++ b/component/receiver_test.go @@ -56,11 +56,7 @@ func (f *TestReceiverFactory) CreateTraceReceiver( } // CreateMetricsReceiver creates a metrics receiver based on this config. -func (f *TestReceiverFactory) CreateMetricsReceiver( - logger *zap.Logger, - cfg configmodels.Receiver, - consumer consumer.MetricsConsumerOld, -) (MetricsReceiver, error) { +func (f *TestReceiverFactory) CreateMetricsReceiver(ctx context.Context, logger *zap.Logger, cfg configmodels.Receiver, nextConsumer consumer.MetricsConsumerOld) (MetricsReceiver, error) { // Not used for this test, just return nil return nil, nil } diff --git a/config/example_factories.go b/config/example_factories.go index d8f995cd780..538312bee25 100644 --- a/config/example_factories.go +++ b/config/example_factories.go @@ -110,11 +110,7 @@ func (f *ExampleReceiverFactory) createReceiver(cfg configmodels.Receiver) *Exam } // CreateMetricsReceiver creates a metrics receiver based on this config. -func (f *ExampleReceiverFactory) CreateMetricsReceiver( - logger *zap.Logger, - cfg configmodels.Receiver, - nextConsumer consumer.MetricsConsumerOld, -) (component.MetricsReceiver, error) { +func (f *ExampleReceiverFactory) CreateMetricsReceiver(ctx context.Context, logger *zap.Logger, cfg configmodels.Receiver, nextConsumer consumer.MetricsConsumerOld) (component.MetricsReceiver, error) { if cfg.(*ExampleReceiver).FailMetricsCreation { return nil, configerror.ErrDataTypeIsNotSupported } @@ -244,11 +240,7 @@ func (f *MultiProtoReceiverFactory) CreateTraceReceiver( } // CreateMetricsReceiver creates a metrics receiver based on this config. -func (f *MultiProtoReceiverFactory) CreateMetricsReceiver( - logger *zap.Logger, - cfg configmodels.Receiver, - consumer consumer.MetricsConsumerOld, -) (component.MetricsReceiver, error) { +func (f *MultiProtoReceiverFactory) CreateMetricsReceiver(ctx context.Context, logger *zap.Logger, cfg configmodels.Receiver, nextConsumer consumer.MetricsConsumerOld) (component.MetricsReceiver, error) { // Not used for this test, just return nil return nil, nil } diff --git a/receiver/opencensusreceiver/factory.go b/receiver/opencensusreceiver/factory.go index 20c8b2394b2..2617b39ae6e 100644 --- a/receiver/opencensusreceiver/factory.go +++ b/receiver/opencensusreceiver/factory.go @@ -78,18 +78,14 @@ func (f *Factory) CreateTraceReceiver( } // CreateMetricsReceiver creates a metrics receiver based on provided config. -func (f *Factory) CreateMetricsReceiver( - logger *zap.Logger, - cfg configmodels.Receiver, - consumer consumer.MetricsConsumerOld, -) (component.MetricsReceiver, error) { +func (f *Factory) CreateMetricsReceiver(ctx context.Context, logger *zap.Logger, cfg configmodels.Receiver, nextConsumer consumer.MetricsConsumerOld) (component.MetricsReceiver, error) { r, err := f.createReceiver(cfg) if err != nil { return nil, err } - r.metricsConsumer = consumer + r.metricsConsumer = nextConsumer return r, nil } diff --git a/receiver/opencensusreceiver/factory_test.go b/receiver/opencensusreceiver/factory_test.go index 60252e0d1a3..f88e7d04506 100644 --- a/receiver/opencensusreceiver/factory_test.go +++ b/receiver/opencensusreceiver/factory_test.go @@ -49,7 +49,7 @@ func TestCreateReceiver(t *testing.T) { assert.NotNil(t, tReceiver) assert.NoError(t, err) - mReceiver, err := factory.CreateMetricsReceiver(zap.NewNop(), cfg, nil) + mReceiver, err := factory.CreateMetricsReceiver(context.Background(), zap.NewNop(), cfg, nil) assert.NotNil(t, mReceiver) assert.NoError(t, err) } @@ -185,7 +185,7 @@ func TestCreateMetricReceiver(t *testing.T) { for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { sink := new(exportertest.SinkMetricsExporterOld) - tc, err := factory.CreateMetricsReceiver(logger, tt.cfg, sink) + tc, err := factory.CreateMetricsReceiver(context.Background(), logger, tt.cfg, sink) if (err != nil) != tt.wantErr { t.Errorf("factory.CreateMetricsReceiver() error = %v, wantErr %v", err, tt.wantErr) return diff --git a/receiver/prometheusreceiver/factory.go b/receiver/prometheusreceiver/factory.go index 593761733ea..bedb346f75f 100644 --- a/receiver/prometheusreceiver/factory.go +++ b/receiver/prometheusreceiver/factory.go @@ -113,14 +113,10 @@ func (f *Factory) CreateTraceReceiver( } // CreateMetricsReceiver creates a metrics receiver based on provided config. -func (f *Factory) CreateMetricsReceiver( - logger *zap.Logger, - cfg configmodels.Receiver, - consumer consumer.MetricsConsumerOld, -) (component.MetricsReceiver, error) { +func (f *Factory) CreateMetricsReceiver(ctx context.Context, logger *zap.Logger, cfg configmodels.Receiver, nextConsumer consumer.MetricsConsumerOld) (component.MetricsReceiver, error) { config := cfg.(*Config) if config.PrometheusConfig == nil || len(config.PrometheusConfig.ScrapeConfigs) == 0 { return nil, errNilScrapeConfig } - return newPrometheusReceiver(logger, config, consumer), nil + return newPrometheusReceiver(logger, config, nextConsumer), nil } diff --git a/receiver/prometheusreceiver/factory_test.go b/receiver/prometheusreceiver/factory_test.go index 1934099cce4..cd134a3deb8 100644 --- a/receiver/prometheusreceiver/factory_test.go +++ b/receiver/prometheusreceiver/factory_test.go @@ -42,7 +42,7 @@ func TestCreateReceiver(t *testing.T) { // The default config does not provide scrape_config so we expect that metrics receiver // creation must also fail. - mReceiver, err := factory.CreateMetricsReceiver(zap.NewNop(), cfg, nil) + mReceiver, err := factory.CreateMetricsReceiver(context.Background(), zap.NewNop(), cfg, nil) assert.Equal(t, err, errNilScrapeConfig) assert.Nil(t, mReceiver) } diff --git a/receiver/vmmetricsreceiver/factory.go b/receiver/vmmetricsreceiver/factory.go index 5139b4947c4..e71ac180549 100644 --- a/receiver/vmmetricsreceiver/factory.go +++ b/receiver/vmmetricsreceiver/factory.go @@ -70,19 +70,15 @@ func (f *Factory) CreateTraceReceiver( } // CreateMetricsReceiver creates a metrics receiver based on provided config. -func (f *Factory) CreateMetricsReceiver( - logger *zap.Logger, - config configmodels.Receiver, - consumer consumer.MetricsConsumerOld, -) (component.MetricsReceiver, error) { +func (f *Factory) CreateMetricsReceiver(ctx context.Context, logger *zap.Logger, cfg configmodels.Receiver, nextConsumer consumer.MetricsConsumerOld) (component.MetricsReceiver, error) { if runtime.GOOS != "linux" { // TODO: add support for other platforms. return nil, errors.New("vmmetrics receiver is only supported on linux") } - cfg := config.(*Config) + rCfg := cfg.(*Config) - vmc, err := NewVMMetricsCollector(cfg.ScrapeInterval, cfg.MountPoint, cfg.ProcessMountPoint, cfg.MetricPrefix, consumer) + vmc, err := NewVMMetricsCollector(rCfg.ScrapeInterval, rCfg.MountPoint, rCfg.ProcessMountPoint, rCfg.MetricPrefix, nextConsumer) if err != nil { return nil, err } diff --git a/receiver/vmmetricsreceiver/factory_test.go b/receiver/vmmetricsreceiver/factory_test.go index ad4510a0969..7583d164ba0 100644 --- a/receiver/vmmetricsreceiver/factory_test.go +++ b/receiver/vmmetricsreceiver/factory_test.go @@ -43,7 +43,7 @@ func TestCreateReceiver(t *testing.T) { assert.Equal(t, err, configerror.ErrDataTypeIsNotSupported) assert.Nil(t, tReceiver) - mReceiver, err := factory.CreateMetricsReceiver(zap.NewNop(), cfg, nil) + mReceiver, err := factory.CreateMetricsReceiver(context.Background(), zap.NewNop(), cfg, nil) // Currently vmmetrics receiver is only supported on linux. if runtime.GOOS != "linux" { diff --git a/receiver/zipkinreceiver/factory.go b/receiver/zipkinreceiver/factory.go index 89ad55d3907..bb167d14b95 100644 --- a/receiver/zipkinreceiver/factory.go +++ b/receiver/zipkinreceiver/factory.go @@ -74,10 +74,6 @@ func (f *Factory) CreateTraceReceiver( } // CreateMetricsReceiver creates a metrics receiver based on provided config. -func (f *Factory) CreateMetricsReceiver( - logger *zap.Logger, - cfg configmodels.Receiver, - consumer consumer.MetricsConsumerOld, -) (component.MetricsReceiver, error) { +func (f *Factory) CreateMetricsReceiver(ctx context.Context, logger *zap.Logger, cfg configmodels.Receiver, nextConsumer consumer.MetricsConsumerOld) (component.MetricsReceiver, error) { return nil, configerror.ErrDataTypeIsNotSupported } diff --git a/receiver/zipkinreceiver/factory_test.go b/receiver/zipkinreceiver/factory_test.go index 9e0e6396ab0..2af31f1363b 100644 --- a/receiver/zipkinreceiver/factory_test.go +++ b/receiver/zipkinreceiver/factory_test.go @@ -52,7 +52,7 @@ func TestCreateReceiver(t *testing.T) { assert.Nil(t, err, "receiver creation failed") assert.NotNil(t, tReceiver, "receiver creation failed") - mReceiver, err := factory.CreateMetricsReceiver(zap.NewNop(), cfg, nil) + mReceiver, err := factory.CreateMetricsReceiver(context.Background(), zap.NewNop(), cfg, nil) assert.Equal(t, err, configerror.ErrDataTypeIsNotSupported) assert.Nil(t, mReceiver) } diff --git a/service/builder/receivers_builder.go b/service/builder/receivers_builder.go index 87ef6ff3db0..9afeed00a60 100644 --- a/service/builder/receivers_builder.go +++ b/service/builder/receivers_builder.go @@ -417,13 +417,13 @@ func createMetricsReceiver( // If both receiver and consumer are of the old type (can manipulate on OC metrics only), // use Factory.CreateMetricsReceiver. if nextConsumer, ok := nextConsumer.(consumer.MetricsConsumerOld); ok { - return factoryOld.CreateMetricsReceiver(logger, cfg, nextConsumer) + return factoryOld.CreateMetricsReceiver(context.Background(), logger, cfg, nextConsumer) } // If receiver is of the old type, but downstream consumer is of the new type, // use NewInternalToOCMetricsConverter compatibility shim to convert metrics from internal format to OC. metricsConverter := converter.NewOCToInternalMetricsConverter(nextConsumer.(consumer.MetricsConsumer)) - return factoryOld.CreateMetricsReceiver(logger, cfg, metricsConverter) + return factoryOld.CreateMetricsReceiver(context.Background(), logger, cfg, metricsConverter) } // createLogReceiver creates a log receiver using given factory and next consumer. diff --git a/service/builder/receivers_builder_test.go b/service/builder/receivers_builder_test.go index ab7f851647c..1c44203f7c8 100644 --- a/service/builder/receivers_builder_test.go +++ b/service/builder/receivers_builder_test.go @@ -440,11 +440,7 @@ func (b *badReceiverFactory) CreateTraceReceiver( return nil, nil } -func (b *badReceiverFactory) CreateMetricsReceiver( - _ *zap.Logger, - _ configmodels.Receiver, - _ consumer.MetricsConsumerOld, -) (component.MetricsReceiver, error) { +func (b *badReceiverFactory) CreateMetricsReceiver(ctx context.Context, logger *zap.Logger, cfg configmodels.Receiver, nextConsumer consumer.MetricsConsumerOld) (component.MetricsReceiver, error) { return nil, nil } diff --git a/testbed/testbed/receivers.go b/testbed/testbed/receivers.go index 08be5fda0fb..debb726016b 100644 --- a/testbed/testbed/receivers.go +++ b/testbed/testbed/receivers.go @@ -100,7 +100,7 @@ func (or *OCDataReceiver) Start(tc *MockTraceConsumer, mc *MockMetricConsumer) e if or.traceReceiver, err = factory.CreateTraceReceiver(context.Background(), zap.NewNop(), cfg, tc); err != nil { return err } - if or.metricsReceiver, err = factory.CreateMetricsReceiver(zap.NewNop(), cfg, mc); err != nil { + if or.metricsReceiver, err = factory.CreateMetricsReceiver(context.Background(), zap.NewNop(), cfg, mc); err != nil { return err } if err = or.traceReceiver.Start(context.Background(), or); err != nil {