diff --git a/.github/workflows/build-and-test.yml b/.github/workflows/build-and-test.yml index 7d9af884a13..181c9734edc 100644 --- a/.github/workflows/build-and-test.yml +++ b/.github/workflows/build-and-test.yml @@ -64,12 +64,51 @@ jobs: with: path: /home/runner/go/bin key: tools-${{ runner.os }}-${{ hashFiles('./internal/tools/go.mod', './cmd/mdatagen/go.mod', './cmd/mdatagen/*.go') }} - - name: Lint - run: make -j5 checklicense misspell checkdoc goimpi golint goporto - - name: Gen Metadata + - name: golint + run: make -j2 golint + - name: goimpi + run: make goimpi + + checks: + runs-on: ubuntu-latest + needs: [setup-environment] + steps: + - name: Checkout Repo + uses: actions/checkout@v2 + - name: Setup Go + uses: actions/setup-go@v2.2.0 + with: + go-version: 1.17 + - name: Setup Go Environment + run: | + echo "GOPATH=$(go env GOPATH)" >> $GITHUB_ENV + echo "$(go env GOPATH)/bin" >> $GITHUB_PATH + - name: Cache Go + id: module-cache + uses: actions/cache@v2 + with: + path: /home/runner/go/pkg/mod + key: go-pkg-mod-${{ runner.os }}-${{ hashFiles('**/go.sum') }} + - name: Cache Tools + id: tool-cache + uses: actions/cache@v2 + with: + path: /home/runner/go/bin + key: tools-${{ runner.os }}-${{ hashFiles('./internal/tools/go.mod', './cmd/mdatagen/go.mod', './cmd/mdatagen/*.go') }} + - name: checklicense + run: make checklicense + - name: misspell + run: make misspell + - name: checkdoc + run: make checkdoc + - name: go:porto + run: | + make goporto + git diff --exit-code || (echo 'Porto links are out of date, please run "make goporto" and commit the changes in this PR.' && exit 1) + - name: go:generate run: | - make genmdata - git diff --exit-code || (echo 'Generated code is out of date, please run "make genmdata" and commit the changes in this PR.' && exit 1) + make gogenerate + git diff --exit-code || (echo 'Generated code is out of date, please run "make gogenerate" and commit the changes in this PR.' && exit 1) - name: Gen Pdata run: | make genpdata diff --git a/CHANGELOG.md b/CHANGELOG.md index 3b280e901fd..9101db9154e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,6 +12,12 @@ - Deprecated `extensionhelper.CreateDefaultConfig` in favour of `component.ExtensionDefaultConfigFunc` - Deprecated `extensionhelper.CreateServiceExtension` in favour of `component.CreateExtensionFunc` - Deprecated `extensionhelper.NewFactory` in favour of `component.NewExtensionFactory` +- Move helpers from processorhelper to component (#4889) + - Deprecated `processorhelper.CreateDefaultConfig` in favour of `component.ProcessorDefaultConfigFunc` + - Deprecated `processorhelper.WithTraces` in favour of `component.WithTracesProcessor` + - Deprecated `processorhelper.WithMetrics` in favour of `component.WithMetricsProcessor` + - Deprecated `processorhelper.WithLogs` in favour of `component.WithLogsProcessor` + - Deprecated `processorhelper.NewFactory` in favour of `component.NewProcessorFactory` - Move helpers from exporterhelper to component (#4899) - Deprecated `exporterhelper.CreateDefaultConfig` in favour of `component.ExporterDefaultConfigFunc` - Deprecated `exporterhelper.WithTraces` in favour of `component.WithTracesExporter` diff --git a/Makefile b/Makefile index e0a541f0d19..5f30116e243 100644 --- a/Makefile +++ b/Makefile @@ -92,6 +92,10 @@ gotidy: $(MAKE) for-all CMD="rm -fr go.sum" $(MAKE) for-all CMD="$(GOCMD) mod tidy -compat=1.17" +.PHONY: gogenerate +gogenerate: + $(MAKE) for-all CMD="$(GOCMD) generate ./..." + .PHONY: addlicense addlicense: @ADDLICENSEOUT=`$(ADDLICENSE) -y "" -c "The OpenTelemetry Authors" $(ALL_SRC) 2>&1`; \ @@ -199,10 +203,6 @@ otelcorecol: genotelcorecol: pushd cmd/builder/ && $(GOCMD) run ./ --skip-compilation --config ../otelcorecol/builder-config.yaml --output-path ../otelcorecol && popd -.PHONY: genmdata -genmdata: - $(MAKE) for-all CMD="$(GOCMD) generate ./..." - DEPENDABOT_PATH=".github/dependabot.yml" .PHONY: internal-gendependabot internal-gendependabot: diff --git a/Makefile.Common b/Makefile.Common index 8a9203cfa1c..e4c71bc6f23 100644 --- a/Makefile.Common +++ b/Makefile.Common @@ -41,7 +41,7 @@ lint-unstable: .PHONY: porto porto: - porto -w --include-internal ./ + porto -w --include-internal ./ .PHONY: impi impi: diff --git a/cmd/otelcorecol/go.mod b/cmd/otelcorecol/go.mod index 0cdaf1ab0e8..0dd9ae87a80 100644 --- a/cmd/otelcorecol/go.mod +++ b/cmd/otelcorecol/go.mod @@ -29,7 +29,7 @@ require ( github.com/google/uuid v1.3.0 // indirect github.com/gorilla/mux v1.8.0 // indirect github.com/inconshreveable/mousetrap v1.0.0 // indirect - github.com/klauspost/compress v1.14.2 // indirect + github.com/klauspost/compress v1.14.4 // indirect github.com/knadh/koanf v1.4.0 // indirect github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 // indirect github.com/magiconair/properties v1.8.5 // indirect @@ -55,16 +55,16 @@ require ( github.com/yusufpapurcu/wmi v1.2.2 // indirect go.opencensus.io v0.23.0 // indirect go.opentelemetry.io/collector/model v0.45.0 // indirect - go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.28.0 // indirect - go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.28.0 // indirect - go.opentelemetry.io/contrib/zpages v0.28.0 // indirect - go.opentelemetry.io/otel v1.4.0 // indirect + go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.29.0 // indirect + go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.29.0 // indirect + go.opentelemetry.io/contrib/zpages v0.29.0 // indirect + go.opentelemetry.io/otel v1.4.1 // indirect go.opentelemetry.io/otel/exporters/prometheus v0.27.0 // indirect go.opentelemetry.io/otel/internal/metric v0.27.0 // indirect go.opentelemetry.io/otel/metric v0.27.0 // indirect - go.opentelemetry.io/otel/sdk v1.4.0 // indirect + go.opentelemetry.io/otel/sdk v1.4.1 // indirect go.opentelemetry.io/otel/sdk/metric v0.27.0 // indirect - go.opentelemetry.io/otel/trace v1.4.0 // indirect + go.opentelemetry.io/otel/trace v1.4.1 // indirect go.uber.org/atomic v1.9.0 // indirect go.uber.org/multierr v1.7.0 // indirect go.uber.org/zap v1.21.0 // indirect diff --git a/cmd/otelcorecol/go.sum b/cmd/otelcorecol/go.sum index f84f9303484..7d7ea1d3b78 100644 --- a/cmd/otelcorecol/go.sum +++ b/cmd/otelcorecol/go.sum @@ -202,11 +202,8 @@ github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9 github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= github.com/go-logfmt/logfmt v0.5.0 h1:TrB8swr/68K7m9CcGut2g3UOihhbcbiMAYiuTXdEih4= github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG1KdI/P7A= -github.com/go-logr/logr v1.2.0/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= -github.com/go-logr/logr v1.2.1/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= github.com/go-logr/logr v1.2.2 h1:ahHml/yUpnlb96Rp8HCvtYVPY8ZYpxq3g7UYchIYwbs= github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= -github.com/go-logr/stdr v1.2.0/go.mod h1:YkVgnZu1ZjjL7xTxrfm/LLZBfkhTqSR1ydtm6jTKKwI= github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= github.com/go-ole/go-ole v1.2.6 h1:/Fpf6oFPoeFik9ty7siob0G6Ke8QvQEuVcuChpwXzpY= @@ -412,8 +409,8 @@ github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI github.com/kisielk/gotool v1.0.0 h1:AV2c/EiW3KqPNT9ZKl07ehoAGi4C5/01Cfbblndcapg= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/klauspost/compress v1.14.1/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk= -github.com/klauspost/compress v1.14.2 h1:S0OHlFk/Gbon/yauFJ4FfJJF5V0fc5HbBTJazi28pRw= -github.com/klauspost/compress v1.14.2/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk= +github.com/klauspost/compress v1.14.4 h1:eijASRJcobkVtSt81Olfh7JX43osYLwy5krOJo6YEu4= +github.com/klauspost/compress v1.14.4/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk= github.com/knadh/koanf v1.4.0 h1:/k0Bh49SqLyLNfte9r6cvuZWrApOQhglOmhIU3L/zDw= github.com/knadh/koanf v1.4.0/go.mod h1:1cfH5223ZeZUOs8FU2UdTmaNfHpqgtjV0+NHjRO43gs= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= @@ -637,32 +634,29 @@ go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk= go.opencensus.io v0.23.0 h1:gqCw0LfLxScz8irSi8exQc7fyQ0fKQU/qnC/X8+V/1M= go.opencensus.io v0.23.0/go.mod h1:XItmlyltB5F7CS4xOC1DcqMoFqwtC6OG2xF7mCv7P7E= -go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.28.0 h1:Ky1MObd188aGbgb5OgNnwGuEEwI9MVIcc7rBW6zk5Ak= -go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.28.0/go.mod h1:vEhqr0m4eTc+DWxfsXoXue2GBgV2uUwVznkGIHW/e5w= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.28.0 h1:hpEoMBvKLC6CqFZogJypr9IHwwSNF3ayEkNzD502QAM= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.28.0/go.mod h1:Ihno+mNBfZlT0Qot3XyRTdZ/9U/Cg2Pfgj75DTdIfq4= -go.opentelemetry.io/contrib/zpages v0.28.0 h1:4ANASd9xZw1GtMfvtBuqSfnqpMC79wePb3dQLNWBrEw= -go.opentelemetry.io/contrib/zpages v0.28.0/go.mod h1:y5RYQQgfEQV6oASayfbUv5ye5bnnncor+Ln18jMrVKY= -go.opentelemetry.io/otel v1.3.0/go.mod h1:PWIKzi6JCp7sM0k9yZ43VX+T345uNbAkDKwHVjb2PTs= -go.opentelemetry.io/otel v1.4.0 h1:7ESuKPq6zpjRaY5nvVDGiuwK7VAJ8MwkKnmNJ9whNZ4= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.29.0 h1:n9b7AAdbQtQ0k9dm0Dm2/KUcUqtG8i2O15KzNaDze8c= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.29.0/go.mod h1:LsankqVDx4W+RhZNA5uWarULII/MBhF5qwCYxTuyXjs= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.29.0 h1:SLme4Porm+UwX0DdHMxlwRt7FzPSE0sys81bet2o0pU= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.29.0/go.mod h1:tLYsuf2v8fZreBVwp9gVMhefZlLFZaUiNVSq8QxXRII= +go.opentelemetry.io/contrib/zpages v0.29.0 h1:rUnBzAxPP58lP7BApL21Ac2Fx8/5OflQa3sirlX0nQQ= +go.opentelemetry.io/contrib/zpages v0.29.0/go.mod h1:iHy2K1Cjz1Ss0Sv6cQPEExP0nD+gj7gAF024foxzFFE= go.opentelemetry.io/otel v1.4.0/go.mod h1:jeAqMFKy2uLIxCtKxoFj0FAL5zAPKQagc3+GtBWakzk= +go.opentelemetry.io/otel v1.4.1 h1:QbINgGDDcoQUoMJa2mMaWno49lja9sHwp6aoa2n3a4g= +go.opentelemetry.io/otel v1.4.1/go.mod h1:StM6F/0fSwpd8dKWDCdRr7uRvEPYdW0hBSlbdTiUde4= go.opentelemetry.io/otel/exporters/prometheus v0.27.0 h1:HcGi6HmYRuszR3stcvN2GctJjQtvp44nw/VdfJCo/Ec= go.opentelemetry.io/otel/exporters/prometheus v0.27.0/go.mod h1:u0vTzijx2B6gGDa8FuIVoESW6z0HdKkXZWZMSTsoJKs= -go.opentelemetry.io/otel/internal/metric v0.26.0/go.mod h1:CbBP6AxKynRs3QCbhklyLUtpfzbqCLiafV9oY2Zj1Jk= go.opentelemetry.io/otel/internal/metric v0.27.0 h1:9dAVGAfFiiEq5NVB9FUJ5et+btbDQAUIJehJ+ikyryk= go.opentelemetry.io/otel/internal/metric v0.27.0/go.mod h1:n1CVxRqKqYZtqyTh9U/onvKapPGv7y/rpyOTI+LFNzw= -go.opentelemetry.io/otel/metric v0.26.0/go.mod h1:c6YL0fhRo4YVoNs6GoByzUgBp36hBL523rECoZA5UWg= go.opentelemetry.io/otel/metric v0.27.0 h1:HhJPsGhJoKRSegPQILFbODU56NS/L1UE4fS1sC5kIwQ= go.opentelemetry.io/otel/metric v0.27.0/go.mod h1:raXDJ7uP2/Jc0nVZWQjJtzoyssOYWu/+pjZqRzfvZ7g= -go.opentelemetry.io/otel/sdk v1.3.0/go.mod h1:rIo4suHNhQwBIPg9axF8V9CA72Wz2mKF1teNrup8yzs= -go.opentelemetry.io/otel/sdk v1.4.0 h1:LJE4SW3jd4lQTESnlpQZcBhQ3oci0U2MLR5uhicfTHQ= go.opentelemetry.io/otel/sdk v1.4.0/go.mod h1:71GJPNJh4Qju6zJuYl1CrYtXbrgfau/M9UAggqiy1UE= -go.opentelemetry.io/otel/sdk/export/metric v0.27.0 h1:taOJ0vVylY9PxuOSkiLAT82o6GYMy2mb7Vs5lw6wf+o= +go.opentelemetry.io/otel/sdk v1.4.1 h1:J7EaW71E0v87qflB4cDolaqq3AcujGrtyIPGQoZOB0Y= +go.opentelemetry.io/otel/sdk v1.4.1/go.mod h1:NBwHDgDIBYjwK2WNu1OPgsIc2IJzmBXNnvIJxJc8BpE= go.opentelemetry.io/otel/sdk/metric v0.27.0 h1:CDEu96Js5IP7f4bJ8eimxF09V5hKYmE7CeyKSjmAL1s= go.opentelemetry.io/otel/sdk/metric v0.27.0/go.mod h1:lOgrT5C3ORdbqp2LsDrx+pBj6gbZtQ5Omk27vH3EaW0= -go.opentelemetry.io/otel/trace v1.3.0/go.mod h1:c/VDhno8888bvQYmbYLqe41/Ldmr/KKunbvWM4/fEjk= -go.opentelemetry.io/otel/trace v1.4.0 h1:4OOUrPZdVFQkbzl/JSdvGCWIdw5ONXXxzHlaLlWppmo= go.opentelemetry.io/otel/trace v1.4.0/go.mod h1:uc3eRsqDfWs9R7b92xbQbU42/eTNz4N+gLP8qJCi4aE= +go.opentelemetry.io/otel/trace v1.4.1 h1:O+16qcdTrT7zxv2J6GejTPFinSwA++cYerC5iSiF8EQ= +go.opentelemetry.io/otel/trace v1.4.1/go.mod h1:iYEVbroFCNut9QkwEczV9vMRPHNKSSwYZjulEtsmhFc= go.opentelemetry.io/proto/otlp v0.7.0 h1:rwOQPCuKAKmwGKq2aVNnYIibI6wnV7EvzgfTCzcdGg8= go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= diff --git a/component/componenttest/nop_processor.go b/component/componenttest/nop_processor.go index 6559f1d7659..92116db34ec 100644 --- a/component/componenttest/nop_processor.go +++ b/component/componenttest/nop_processor.go @@ -21,7 +21,6 @@ import ( "go.opentelemetry.io/collector/config" "go.opentelemetry.io/collector/consumer" "go.opentelemetry.io/collector/consumer/consumertest" - "go.opentelemetry.io/collector/internal/internalinterface" ) // NewNopProcessorCreateSettings returns a new nop settings for Create*Processor functions. @@ -36,57 +35,32 @@ type nopProcessorConfig struct { config.ProcessorSettings `mapstructure:",squash"` // squash ensures fields are correctly decoded in embedded struct } -// nopProcessorFactory is factory for nopProcessor. -type nopProcessorFactory struct { - internalinterface.BaseInternal -} - -var nopProcessorFactoryInstance = &nopProcessorFactory{} +var nopProcessorFactory = component.NewProcessorFactory( + "nop", + func() config.Processor { + return &nopProcessorConfig{ + ProcessorSettings: config.NewProcessorSettings(config.NewComponentID("nop")), + } + }, + component.WithTracesProcessor(createTracesProcessor), + component.WithMetricsProcessor(createMetricsProcessor), + component.WithLogsProcessor(createLogsProcessor), +) // NewNopProcessorFactory returns a component.ProcessorFactory that constructs nop processors. func NewNopProcessorFactory() component.ProcessorFactory { - return nopProcessorFactoryInstance -} - -// Type gets the type of the Processor config created by this factory. -func (f *nopProcessorFactory) Type() config.Type { - return "nop" -} - -// CreateDefaultConfig creates the default configuration for the Processor. -func (f *nopProcessorFactory) CreateDefaultConfig() config.Processor { - return &nopProcessorConfig{ - ProcessorSettings: config.NewProcessorSettings(config.NewComponentID("nop")), - } + return nopProcessorFactory } -// CreateTracesProcessor implements component.ProcessorFactory interface. -func (f *nopProcessorFactory) CreateTracesProcessor( - _ context.Context, - _ component.ProcessorCreateSettings, - _ config.Processor, - _ consumer.Traces, -) (component.TracesProcessor, error) { +func createTracesProcessor(context.Context, component.ProcessorCreateSettings, config.Processor, consumer.Traces) (component.TracesProcessor, error) { return nopProcessorInstance, nil } -// CreateMetricsProcessor implements component.ProcessorFactory interface. -func (f *nopProcessorFactory) CreateMetricsProcessor( - _ context.Context, - _ component.ProcessorCreateSettings, - _ config.Processor, - _ consumer.Metrics, -) (component.MetricsProcessor, error) { +func createMetricsProcessor(context.Context, component.ProcessorCreateSettings, config.Processor, consumer.Metrics) (component.MetricsProcessor, error) { return nopProcessorInstance, nil } -// CreateLogsProcessor implements component.ProcessorFactory interface. -func (f *nopProcessorFactory) CreateLogsProcessor( - _ context.Context, - _ component.ProcessorCreateSettings, - _ config.Processor, - _ consumer.Logs, -) (component.LogsProcessor, error) { +func createLogsProcessor(context.Context, component.ProcessorCreateSettings, config.Processor, consumer.Logs) (component.LogsProcessor, error) { return nopProcessorInstance, nil } diff --git a/extension/extensionhelper/factory_test.go b/component/extension_test.go similarity index 50% rename from extension/extensionhelper/factory_test.go rename to component/extension_test.go index 9dc3737ddab..6bd1d400979 100644 --- a/extension/extensionhelper/factory_test.go +++ b/component/extension_test.go @@ -12,7 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -package extensionhelper +package component import ( "context" @@ -20,46 +20,28 @@ import ( "github.com/stretchr/testify/assert" - "go.opentelemetry.io/collector/component" - "go.opentelemetry.io/collector/component/componenttest" "go.opentelemetry.io/collector/config" ) -const typeStr = "test" +type nopExtension struct { + StartFunc + ShutdownFunc +} -var ( - defaultCfg = config.NewExtensionSettings(config.NewComponentID(typeStr)) - nopExtensionInstance = new(nopExtension) -) +func TestNewExtensionFactory(t *testing.T) { + const typeStr = "test" + defaultCfg := config.NewExtensionSettings(config.NewComponentID(typeStr)) + nopExtensionInstance := new(nopExtension) -func TestNewFactory(t *testing.T) { - factory := NewFactory( + factory := NewExtensionFactory( typeStr, - defaultConfig, - createExtension) + func() config.Extension { return &defaultCfg }, + func(ctx context.Context, settings ExtensionCreateSettings, extension config.Extension) (Extension, error) { + return nopExtensionInstance, nil + }) assert.EqualValues(t, typeStr, factory.Type()) assert.EqualValues(t, &defaultCfg, factory.CreateDefaultConfig()) - ext, err := factory.CreateExtension(context.Background(), componenttest.NewNopExtensionCreateSettings(), &defaultCfg) + ext, err := factory.CreateExtension(context.Background(), ExtensionCreateSettings{}, &defaultCfg) assert.NoError(t, err) assert.Same(t, nopExtensionInstance, ext) } - -func defaultConfig() config.Extension { - return &defaultCfg -} - -func createExtension(context.Context, component.ExtensionCreateSettings, config.Extension) (component.Extension, error) { - return nopExtensionInstance, nil -} - -type nopExtension struct { -} - -func (ne *nopExtension) Start(context.Context, component.Host) error { - return nil -} - -// Shutdown stops the exporter and is invoked during shutdown. -func (ne *nopExtension) Shutdown(context.Context) error { - return nil -} diff --git a/component/factories_test.go b/component/factories_test.go new file mode 100644 index 00000000000..fd137797435 --- /dev/null +++ b/component/factories_test.go @@ -0,0 +1,98 @@ +// Copyright The OpenTelemetry Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package component + +import ( + "testing" + + "github.com/stretchr/testify/assert" + + "go.opentelemetry.io/collector/config" +) + +func TestMakeExtensionFactoryMap(t *testing.T) { + type testCase struct { + name string + in []ExtensionFactory + out map[config.Type]ExtensionFactory + } + + p1 := NewExtensionFactory("p1", nil, nil) + p2 := NewExtensionFactory("p2", nil, nil) + testCases := []testCase{ + { + name: "different names", + in: []ExtensionFactory{p1, p2}, + out: map[config.Type]ExtensionFactory{ + p1.Type(): p1, + p2.Type(): p2, + }, + }, + { + name: "same name", + in: []ExtensionFactory{p1, p2, NewExtensionFactory("p1", nil, nil)}, + }, + } + for i := range testCases { + tt := testCases[i] + t.Run(tt.name, func(t *testing.T) { + out, err := MakeExtensionFactoryMap(tt.in...) + if tt.out == nil { + assert.Error(t, err) + return + } + assert.NoError(t, err) + assert.Equal(t, tt.out, out) + }) + } +} + +func TestMakeProcessorFactoryMap(t *testing.T) { + type testCase struct { + name string + in []ProcessorFactory + out map[config.Type]ProcessorFactory + } + + p1 := NewProcessorFactory("p1", nil) + p2 := NewProcessorFactory("p2", nil) + testCases := []testCase{ + { + name: "different names", + in: []ProcessorFactory{p1, p2}, + out: map[config.Type]ProcessorFactory{ + p1.Type(): p1, + p2.Type(): p2, + }, + }, + { + name: "same name", + in: []ProcessorFactory{p1, p2, NewProcessorFactory("p1", nil)}, + }, + } + + for i := range testCases { + tt := testCases[i] + t.Run(tt.name, func(t *testing.T) { + out, err := MakeProcessorFactoryMap(tt.in...) + if tt.out == nil { + assert.Error(t, err) + return + } + assert.NoError(t, err) + assert.Equal(t, tt.out, out) + }) + } +} diff --git a/component/processor.go b/component/processor.go index fc684073078..4730904578a 100644 --- a/component/processor.go +++ b/component/processor.go @@ -17,6 +17,7 @@ package component // import "go.opentelemetry.io/collector/component" import ( "context" + "go.opentelemetry.io/collector/component/componenterror" "go.opentelemetry.io/collector/config" "go.opentelemetry.io/collector/consumer" "go.opentelemetry.io/collector/internal/internalinterface" @@ -54,11 +55,10 @@ type ProcessorCreateSettings struct { BuildInfo BuildInfo } -// ProcessorFactory is factory interface for processors. This is the -// new factory type that can create new style processors. +// ProcessorFactory is Factory interface for processors. // // This interface cannot be directly implemented. Implementations must -// use the processorhelper.NewFactory to implement it. +// use the NewProcessorFactory to implement it. type ProcessorFactory interface { internalinterface.InternalInterface Factory @@ -102,3 +102,108 @@ type ProcessorFactory interface { nextConsumer consumer.Logs, ) (LogsProcessor, error) } + +// ProcessorFactoryOption apply changes to ProcessorOptions. +type ProcessorFactoryOption func(o *processorFactory) + +// ProcessorCreateDefaultConfigFunc is the equivalent of ProcessorFactory.CreateDefaultConfig(). +type ProcessorCreateDefaultConfigFunc func() config.Processor + +// CreateDefaultConfig implements ProcessorFactory.CreateDefaultConfig(). +func (f ProcessorCreateDefaultConfigFunc) CreateDefaultConfig() config.Processor { + return f() +} + +// CreateTracesProcessorFunc is the equivalent of ProcessorFactory.CreateTracesProcessor(). +type CreateTracesProcessorFunc func(context.Context, ProcessorCreateSettings, config.Processor, consumer.Traces) (TracesProcessor, error) + +// CreateTracesProcessor implements ProcessorFactory.CreateTracesProcessor(). +func (f CreateTracesProcessorFunc) CreateTracesProcessor( + ctx context.Context, + set ProcessorCreateSettings, + cfg config.Processor, + nextConsumer consumer.Traces) (TracesProcessor, error) { + if f == nil { + return nil, componenterror.ErrDataTypeIsNotSupported + } + return f(ctx, set, cfg, nextConsumer) +} + +// CreateMetricsProcessorFunc is the equivalent of ProcessorFactory.CreateMetricsProcessor(). +type CreateMetricsProcessorFunc func(context.Context, ProcessorCreateSettings, config.Processor, consumer.Metrics) (MetricsProcessor, error) + +// CreateMetricsProcessor implements ProcessorFactory.CreateMetricsProcessor(). +func (f CreateMetricsProcessorFunc) CreateMetricsProcessor( + ctx context.Context, + set ProcessorCreateSettings, + cfg config.Processor, + nextConsumer consumer.Metrics, +) (MetricsProcessor, error) { + if f == nil { + return nil, componenterror.ErrDataTypeIsNotSupported + } + return f(ctx, set, cfg, nextConsumer) +} + +// CreateLogsProcessorFunc is the equivalent of ProcessorFactory.CreateLogsProcessor(). +type CreateLogsProcessorFunc func(context.Context, ProcessorCreateSettings, config.Processor, consumer.Logs) (LogsProcessor, error) + +// CreateLogsProcessor implements ProcessorFactory.CreateLogsProcessor(). +func (f CreateLogsProcessorFunc) CreateLogsProcessor( + ctx context.Context, + set ProcessorCreateSettings, + cfg config.Processor, + nextConsumer consumer.Logs, +) (LogsProcessor, error) { + if f == nil { + return nil, componenterror.ErrDataTypeIsNotSupported + } + return f(ctx, set, cfg, nextConsumer) +} + +type processorFactory struct { + internalinterface.BaseInternal + cfgType config.Type + ProcessorCreateDefaultConfigFunc + CreateTracesProcessorFunc + CreateMetricsProcessorFunc + CreateLogsProcessorFunc +} + +// WithTracesProcessor overrides the default "error not supported" implementation for CreateTracesProcessor. +func WithTracesProcessor(createTracesProcessor CreateTracesProcessorFunc) ProcessorFactoryOption { + return func(o *processorFactory) { + o.CreateTracesProcessorFunc = createTracesProcessor + } +} + +// WithMetricsProcessor overrides the default "error not supported" implementation for CreateMetricsProcessor. +func WithMetricsProcessor(createMetricsProcessor CreateMetricsProcessorFunc) ProcessorFactoryOption { + return func(o *processorFactory) { + o.CreateMetricsProcessorFunc = createMetricsProcessor + } +} + +// WithLogsProcessor overrides the default "error not supported" implementation for CreateLogsProcessor. +func WithLogsProcessor(createLogsProcessor CreateLogsProcessorFunc) ProcessorFactoryOption { + return func(o *processorFactory) { + o.CreateLogsProcessorFunc = createLogsProcessor + } +} + +// NewProcessorFactory returns a ProcessorFactory. +func NewProcessorFactory(cfgType config.Type, createDefaultConfig ProcessorCreateDefaultConfigFunc, options ...ProcessorFactoryOption) ProcessorFactory { + f := &processorFactory{ + cfgType: cfgType, + ProcessorCreateDefaultConfigFunc: createDefaultConfig, + } + for _, opt := range options { + opt(f) + } + return f +} + +// Type returns the type of the Processor created by this ProcessorFactory. +func (f *processorFactory) Type() config.Type { + return f.cfgType +} diff --git a/component/processor_test.go b/component/processor_test.go index e46825cd1de..2f998183ba3 100644 --- a/component/processor_test.go +++ b/component/processor_test.go @@ -15,57 +15,61 @@ package component import ( + "context" "testing" "github.com/stretchr/testify/assert" "go.opentelemetry.io/collector/config" + "go.opentelemetry.io/collector/consumer" ) -var _ ProcessorFactory = (*TestProcessorFactory)(nil) - -type TestProcessorFactory struct { - ProcessorFactory - name string +func TestNewProcessorFactory(t *testing.T) { + const typeStr = "test" + defaultCfg := config.NewProcessorSettings(config.NewComponentID(typeStr)) + factory := NewProcessorFactory( + typeStr, + func() config.Processor { return &defaultCfg }) + assert.EqualValues(t, typeStr, factory.Type()) + assert.EqualValues(t, &defaultCfg, factory.CreateDefaultConfig()) + _, err := factory.CreateTracesProcessor(context.Background(), ProcessorCreateSettings{}, &defaultCfg, nil) + assert.Error(t, err) + _, err = factory.CreateMetricsProcessor(context.Background(), ProcessorCreateSettings{}, &defaultCfg, nil) + assert.Error(t, err) + _, err = factory.CreateLogsProcessor(context.Background(), ProcessorCreateSettings{}, &defaultCfg, nil) + assert.Error(t, err) } -// Type gets the type of the Processor config created by this factory. -func (f *TestProcessorFactory) Type() config.Type { - return config.Type(f.name) +func TestNewProcessorFactory_WithOptions(t *testing.T) { + const typeStr = "test" + defaultCfg := config.NewProcessorSettings(config.NewComponentID(typeStr)) + factory := NewProcessorFactory( + typeStr, + func() config.Processor { return &defaultCfg }, + WithTracesProcessor(createTracesProcessor), + WithMetricsProcessor(createMetricsProcessor), + WithLogsProcessor(createLogsProcessor)) + assert.EqualValues(t, typeStr, factory.Type()) + assert.EqualValues(t, &defaultCfg, factory.CreateDefaultConfig()) + + _, err := factory.CreateTracesProcessor(context.Background(), ProcessorCreateSettings{}, &defaultCfg, nil) + assert.NoError(t, err) + + _, err = factory.CreateMetricsProcessor(context.Background(), ProcessorCreateSettings{}, &defaultCfg, nil) + assert.NoError(t, err) + + _, err = factory.CreateLogsProcessor(context.Background(), ProcessorCreateSettings{}, &defaultCfg, nil) + assert.NoError(t, err) } -func TestMakeProcessorFactoryMap(t *testing.T) { - type testCase struct { - in []ProcessorFactory - out map[config.Type]ProcessorFactory - } +func createTracesProcessor(context.Context, ProcessorCreateSettings, config.Processor, consumer.Traces) (TracesProcessor, error) { + return nil, nil +} - testCases := []testCase{ - { - in: []ProcessorFactory{ - &TestProcessorFactory{name: "p1"}, - &TestProcessorFactory{name: "p2"}, - }, - out: map[config.Type]ProcessorFactory{ - "p1": &TestProcessorFactory{name: "p1"}, - "p2": &TestProcessorFactory{name: "p2"}, - }, - }, - { - in: []ProcessorFactory{ - &TestProcessorFactory{name: "p1"}, - &TestProcessorFactory{name: "p1"}, - }, - }, - } +func createMetricsProcessor(context.Context, ProcessorCreateSettings, config.Processor, consumer.Metrics) (MetricsProcessor, error) { + return nil, nil +} - for _, c := range testCases { - out, err := MakeProcessorFactoryMap(c.in...) - if c.out == nil { - assert.Error(t, err) - continue - } - assert.NoError(t, err) - assert.Equal(t, c.out, out) - } +func createLogsProcessor(context.Context, ProcessorCreateSettings, config.Processor, consumer.Logs) (LogsProcessor, error) { + return nil, nil } diff --git a/go.mod b/go.mod index 81d82a8b6ac..13a430d2290 100644 --- a/go.mod +++ b/go.mod @@ -9,7 +9,7 @@ require ( github.com/golang/snappy v0.0.4 github.com/google/uuid v1.3.0 github.com/gorilla/mux v1.8.0 - github.com/klauspost/compress v1.14.2 + github.com/klauspost/compress v1.14.4 github.com/knadh/koanf v1.4.0 github.com/magiconair/properties v1.8.5 github.com/mitchellh/mapstructure v1.4.3 @@ -22,16 +22,15 @@ require ( github.com/stretchr/testify v1.7.0 go.opencensus.io v0.23.0 go.opentelemetry.io/collector/model v0.45.0 - go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.28.0 - go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.28.0 - go.opentelemetry.io/contrib/zpages v0.28.0 - go.opentelemetry.io/otel v1.4.0 + go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.29.0 + go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.29.0 + go.opentelemetry.io/contrib/zpages v0.29.0 + go.opentelemetry.io/otel v1.4.1 go.opentelemetry.io/otel/exporters/prometheus v0.27.0 go.opentelemetry.io/otel/metric v0.27.0 - go.opentelemetry.io/otel/sdk v1.4.0 - go.opentelemetry.io/otel/sdk/export/metric v0.27.0 + go.opentelemetry.io/otel/sdk v1.4.1 go.opentelemetry.io/otel/sdk/metric v0.27.0 - go.opentelemetry.io/otel/trace v1.4.0 + go.opentelemetry.io/otel/trace v1.4.1 go.uber.org/atomic v1.9.0 go.uber.org/multierr v1.7.0 go.uber.org/zap v1.21.0 diff --git a/go.sum b/go.sum index 97e1d1e5ecf..069a1aa44c6 100644 --- a/go.sum +++ b/go.sum @@ -150,11 +150,8 @@ github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9 github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= github.com/go-logfmt/logfmt v0.5.0 h1:TrB8swr/68K7m9CcGut2g3UOihhbcbiMAYiuTXdEih4= github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG1KdI/P7A= -github.com/go-logr/logr v1.2.0/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= -github.com/go-logr/logr v1.2.1/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= github.com/go-logr/logr v1.2.2 h1:ahHml/yUpnlb96Rp8HCvtYVPY8ZYpxq3g7UYchIYwbs= github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= -github.com/go-logr/stdr v1.2.0/go.mod h1:YkVgnZu1ZjjL7xTxrfm/LLZBfkhTqSR1ydtm6jTKKwI= github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= github.com/go-ole/go-ole v1.2.6 h1:/Fpf6oFPoeFik9ty7siob0G6Ke8QvQEuVcuChpwXzpY= @@ -314,8 +311,8 @@ github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8 github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/klauspost/compress v1.14.1/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk= -github.com/klauspost/compress v1.14.2 h1:S0OHlFk/Gbon/yauFJ4FfJJF5V0fc5HbBTJazi28pRw= -github.com/klauspost/compress v1.14.2/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk= +github.com/klauspost/compress v1.14.4 h1:eijASRJcobkVtSt81Olfh7JX43osYLwy5krOJo6YEu4= +github.com/klauspost/compress v1.14.4/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk= github.com/knadh/koanf v1.4.0 h1:/k0Bh49SqLyLNfte9r6cvuZWrApOQhglOmhIU3L/zDw= github.com/knadh/koanf v1.4.0/go.mod h1:1cfH5223ZeZUOs8FU2UdTmaNfHpqgtjV0+NHjRO43gs= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= @@ -493,33 +490,29 @@ go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk= go.opencensus.io v0.23.0 h1:gqCw0LfLxScz8irSi8exQc7fyQ0fKQU/qnC/X8+V/1M= go.opencensus.io v0.23.0/go.mod h1:XItmlyltB5F7CS4xOC1DcqMoFqwtC6OG2xF7mCv7P7E= -go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.28.0 h1:Ky1MObd188aGbgb5OgNnwGuEEwI9MVIcc7rBW6zk5Ak= -go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.28.0/go.mod h1:vEhqr0m4eTc+DWxfsXoXue2GBgV2uUwVznkGIHW/e5w= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.28.0 h1:hpEoMBvKLC6CqFZogJypr9IHwwSNF3ayEkNzD502QAM= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.28.0/go.mod h1:Ihno+mNBfZlT0Qot3XyRTdZ/9U/Cg2Pfgj75DTdIfq4= -go.opentelemetry.io/contrib/zpages v0.28.0 h1:4ANASd9xZw1GtMfvtBuqSfnqpMC79wePb3dQLNWBrEw= -go.opentelemetry.io/contrib/zpages v0.28.0/go.mod h1:y5RYQQgfEQV6oASayfbUv5ye5bnnncor+Ln18jMrVKY= -go.opentelemetry.io/otel v1.3.0/go.mod h1:PWIKzi6JCp7sM0k9yZ43VX+T345uNbAkDKwHVjb2PTs= -go.opentelemetry.io/otel v1.4.0 h1:7ESuKPq6zpjRaY5nvVDGiuwK7VAJ8MwkKnmNJ9whNZ4= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.29.0 h1:n9b7AAdbQtQ0k9dm0Dm2/KUcUqtG8i2O15KzNaDze8c= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.29.0/go.mod h1:LsankqVDx4W+RhZNA5uWarULII/MBhF5qwCYxTuyXjs= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.29.0 h1:SLme4Porm+UwX0DdHMxlwRt7FzPSE0sys81bet2o0pU= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.29.0/go.mod h1:tLYsuf2v8fZreBVwp9gVMhefZlLFZaUiNVSq8QxXRII= +go.opentelemetry.io/contrib/zpages v0.29.0 h1:rUnBzAxPP58lP7BApL21Ac2Fx8/5OflQa3sirlX0nQQ= +go.opentelemetry.io/contrib/zpages v0.29.0/go.mod h1:iHy2K1Cjz1Ss0Sv6cQPEExP0nD+gj7gAF024foxzFFE= go.opentelemetry.io/otel v1.4.0/go.mod h1:jeAqMFKy2uLIxCtKxoFj0FAL5zAPKQagc3+GtBWakzk= +go.opentelemetry.io/otel v1.4.1 h1:QbINgGDDcoQUoMJa2mMaWno49lja9sHwp6aoa2n3a4g= +go.opentelemetry.io/otel v1.4.1/go.mod h1:StM6F/0fSwpd8dKWDCdRr7uRvEPYdW0hBSlbdTiUde4= go.opentelemetry.io/otel/exporters/prometheus v0.27.0 h1:HcGi6HmYRuszR3stcvN2GctJjQtvp44nw/VdfJCo/Ec= go.opentelemetry.io/otel/exporters/prometheus v0.27.0/go.mod h1:u0vTzijx2B6gGDa8FuIVoESW6z0HdKkXZWZMSTsoJKs= -go.opentelemetry.io/otel/internal/metric v0.26.0/go.mod h1:CbBP6AxKynRs3QCbhklyLUtpfzbqCLiafV9oY2Zj1Jk= go.opentelemetry.io/otel/internal/metric v0.27.0 h1:9dAVGAfFiiEq5NVB9FUJ5et+btbDQAUIJehJ+ikyryk= go.opentelemetry.io/otel/internal/metric v0.27.0/go.mod h1:n1CVxRqKqYZtqyTh9U/onvKapPGv7y/rpyOTI+LFNzw= -go.opentelemetry.io/otel/metric v0.26.0/go.mod h1:c6YL0fhRo4YVoNs6GoByzUgBp36hBL523rECoZA5UWg= go.opentelemetry.io/otel/metric v0.27.0 h1:HhJPsGhJoKRSegPQILFbODU56NS/L1UE4fS1sC5kIwQ= go.opentelemetry.io/otel/metric v0.27.0/go.mod h1:raXDJ7uP2/Jc0nVZWQjJtzoyssOYWu/+pjZqRzfvZ7g= -go.opentelemetry.io/otel/sdk v1.3.0/go.mod h1:rIo4suHNhQwBIPg9axF8V9CA72Wz2mKF1teNrup8yzs= -go.opentelemetry.io/otel/sdk v1.4.0 h1:LJE4SW3jd4lQTESnlpQZcBhQ3oci0U2MLR5uhicfTHQ= go.opentelemetry.io/otel/sdk v1.4.0/go.mod h1:71GJPNJh4Qju6zJuYl1CrYtXbrgfau/M9UAggqiy1UE= -go.opentelemetry.io/otel/sdk/export/metric v0.27.0 h1:taOJ0vVylY9PxuOSkiLAT82o6GYMy2mb7Vs5lw6wf+o= -go.opentelemetry.io/otel/sdk/export/metric v0.27.0/go.mod h1:d30U31er9jws2ZMsV1N36Zyr2v8QA5E3NtAQvj1WFQo= +go.opentelemetry.io/otel/sdk v1.4.1 h1:J7EaW71E0v87qflB4cDolaqq3AcujGrtyIPGQoZOB0Y= +go.opentelemetry.io/otel/sdk v1.4.1/go.mod h1:NBwHDgDIBYjwK2WNu1OPgsIc2IJzmBXNnvIJxJc8BpE= go.opentelemetry.io/otel/sdk/metric v0.27.0 h1:CDEu96Js5IP7f4bJ8eimxF09V5hKYmE7CeyKSjmAL1s= go.opentelemetry.io/otel/sdk/metric v0.27.0/go.mod h1:lOgrT5C3ORdbqp2LsDrx+pBj6gbZtQ5Omk27vH3EaW0= -go.opentelemetry.io/otel/trace v1.3.0/go.mod h1:c/VDhno8888bvQYmbYLqe41/Ldmr/KKunbvWM4/fEjk= -go.opentelemetry.io/otel/trace v1.4.0 h1:4OOUrPZdVFQkbzl/JSdvGCWIdw5ONXXxzHlaLlWppmo= go.opentelemetry.io/otel/trace v1.4.0/go.mod h1:uc3eRsqDfWs9R7b92xbQbU42/eTNz4N+gLP8qJCi4aE= +go.opentelemetry.io/otel/trace v1.4.1 h1:O+16qcdTrT7zxv2J6GejTPFinSwA++cYerC5iSiF8EQ= +go.opentelemetry.io/otel/trace v1.4.1/go.mod h1:iYEVbroFCNut9QkwEczV9vMRPHNKSSwYZjulEtsmhFc= go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= go.uber.org/atomic v1.9.0 h1:ECmE8Bn/WFTYwEW/bpKD3M8VtR/zQVbavAoalC1PYyE= diff --git a/internal/testcomponents/example_processor.go b/internal/testcomponents/example_processor.go index c0a1503e02b..36bcb90c1d4 100644 --- a/internal/testcomponents/example_processor.go +++ b/internal/testcomponents/example_processor.go @@ -20,7 +20,6 @@ import ( "go.opentelemetry.io/collector/component" "go.opentelemetry.io/collector/config" "go.opentelemetry.io/collector/consumer" - "go.opentelemetry.io/collector/processor/processorhelper" ) // ExampleProcessorCfg is for testing purposes. We are defining an example config and factory @@ -35,12 +34,12 @@ type ExampleProcessorCfg struct { const procType = "exampleprocessor" // ExampleProcessorFactory is factory for exampleProcessor. -var ExampleProcessorFactory = processorhelper.NewFactory( +var ExampleProcessorFactory = component.NewProcessorFactory( procType, createDefaultConfig, - processorhelper.WithTraces(createTracesProcessor), - processorhelper.WithMetrics(createMetricsProcessor), - processorhelper.WithLogs(createLogsProcessor)) + component.WithTracesProcessor(createTracesProcessor), + component.WithMetricsProcessor(createMetricsProcessor), + component.WithLogsProcessor(createLogsProcessor)) // CreateDefaultConfig creates the default configuration for the Processor. func createDefaultConfig() config.Processor { diff --git a/internal/tools/go.mod b/internal/tools/go.mod index 80844c1a0a9..d7ab575d492 100644 --- a/internal/tools/go.mod +++ b/internal/tools/go.mod @@ -4,7 +4,7 @@ go 1.17 require ( github.com/client9/misspell v0.3.4 - github.com/golangci/golangci-lint v1.44.0 + github.com/golangci/golangci-lint v1.44.2 github.com/google/addlicense v1.0.0 github.com/jcchavezs/porto v0.4.0 github.com/ory/go-acc v0.2.7 @@ -35,17 +35,17 @@ require ( github.com/ashanbrown/makezero v1.1.0 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/bkielbasa/cyclop v1.2.0 // indirect - github.com/blizzy78/varnamelen v0.5.0 // indirect + github.com/blizzy78/varnamelen v0.6.0 // indirect github.com/bmatcuk/doublestar/v4 v4.0.2 // indirect github.com/bombsimon/wsl/v3 v3.3.0 // indirect - github.com/breml/bidichk v0.2.1 // indirect - github.com/breml/errchkjson v0.2.1 // indirect + github.com/breml/bidichk v0.2.2 // indirect + github.com/breml/errchkjson v0.2.3 // indirect github.com/butuzov/ireturn v0.1.1 // indirect github.com/cespare/xxhash v1.1.0 // indirect github.com/cespare/xxhash/v2 v2.1.2 // indirect github.com/charithe/durationcheck v0.0.9 // indirect github.com/chavacava/garif v0.0.0-20210405164556-e8a0a408d6af // indirect - github.com/daixiang0/gci v0.2.9 // indirect + github.com/daixiang0/gci v0.3.1-0.20220208004058-76d765e3ab48 // indirect github.com/davecgh/go-spew v1.1.1 // indirect github.com/denis-tingajkin/go-header v0.4.2 // indirect github.com/dgraph-io/ristretto v0.0.2 // indirect @@ -80,7 +80,7 @@ require ( github.com/golangci/misspell v0.3.5 // indirect github.com/golangci/revgrep v0.0.0-20210930125155-c22e5001d4f2 // indirect github.com/golangci/unconvert v0.0.0-20180507085042-28b1c447d1f4 // indirect - github.com/google/go-cmp v0.5.6 // indirect + github.com/google/go-cmp v0.5.7 // indirect github.com/google/go-github v17.0.0+incompatible // indirect github.com/google/go-querystring v1.1.0 // indirect github.com/google/uuid v1.3.0 // indirect @@ -93,6 +93,7 @@ require ( github.com/hashicorp/go-multierror v1.1.1 // indirect github.com/hashicorp/go-version v1.3.0 // indirect github.com/hashicorp/hcl v1.0.0 // indirect + github.com/hexops/gotextdiff v1.0.3 // indirect github.com/imdario/mergo v0.3.12 // indirect github.com/inconshreveable/mousetrap v1.0.0 // indirect github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 // indirect @@ -103,11 +104,11 @@ require ( github.com/kevinburke/ssh_config v0.0.0-20201106050909-4977a11b4351 // indirect github.com/kisielk/errcheck v1.6.0 // indirect github.com/kisielk/gotool v1.0.0 // indirect - github.com/kulti/thelper v0.5.0 // indirect + github.com/kulti/thelper v0.5.1 // indirect github.com/kunwardeep/paralleltest v1.0.3 // indirect github.com/kyoh86/exportloopref v0.1.8 // indirect github.com/ldez/gomoddirectives v0.2.2 // indirect - github.com/ldez/tagliatelle v0.3.0 // indirect + github.com/ldez/tagliatelle v0.3.1 // indirect github.com/leonklingele/grouper v1.1.0 // indirect github.com/magiconair/properties v1.8.5 // indirect github.com/maratori/testpackage v1.0.1 // indirect @@ -118,7 +119,7 @@ require ( github.com/matttproud/golang_protobuf_extensions v1.0.1 // indirect github.com/mbilski/exhaustivestruct v1.2.0 // indirect github.com/mgechev/dots v0.0.0-20210922191527-e955255bf517 // indirect - github.com/mgechev/revive v1.1.3 // indirect + github.com/mgechev/revive v1.1.4 // indirect github.com/mitchellh/colorstring v0.0.0-20190213212951-d06e56a500db // indirect github.com/mitchellh/go-homedir v1.1.0 // indirect github.com/mitchellh/mapstructure v1.4.3 // indirect @@ -172,7 +173,7 @@ require ( github.com/tomarrell/wrapcheck/v2 v2.4.0 // indirect github.com/tommy-muehle/go-mnd/v2 v2.5.0 // indirect github.com/ultraware/funlen v0.0.3 // indirect - github.com/ultraware/whitespace v0.0.4 // indirect + github.com/ultraware/whitespace v0.0.5 // indirect github.com/uudashr/gocognit v1.0.5 // indirect github.com/xanzy/ssh-agent v0.3.0 // indirect github.com/yagipy/maintidx v1.0.0 // indirect @@ -184,7 +185,7 @@ require ( golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2 // indirect golang.org/x/oauth2 v0.0.0-20211104180415-d3ed0bb246c8 // indirect golang.org/x/sync v0.0.0-20210220032951-036812b2e83c // indirect - golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e // indirect + golang.org/x/sys v0.0.0-20220111092808-5a964db01320 // indirect golang.org/x/text v0.3.7 // indirect golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 // indirect google.golang.org/appengine v1.6.7 // indirect diff --git a/internal/tools/go.sum b/internal/tools/go.sum index c56f4f237eb..c29c874f398 100644 --- a/internal/tools/go.sum +++ b/internal/tools/go.sum @@ -121,16 +121,16 @@ github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kB github.com/bketelsen/crypt v0.0.4/go.mod h1:aI6NrJ0pMGgvZKL1iVgXLnfIFJtfV+bKCoqOes/6LfM= github.com/bkielbasa/cyclop v1.2.0 h1:7Jmnh0yL2DjKfw28p86YTd/B4lRGcNuu12sKE35sM7A= github.com/bkielbasa/cyclop v1.2.0/go.mod h1:qOI0yy6A7dYC4Zgsa72Ppm9kONl0RoIlPbzot9mhmeI= -github.com/blizzy78/varnamelen v0.5.0 h1:v9LpMwxzTqAJC4lsD/jR7zWb8a66trcqhTEH4Mk6Fio= -github.com/blizzy78/varnamelen v0.5.0/go.mod h1:Mc0nLBKI1/FP0Ga4kqMOgBig0eS5QtR107JnMAb1Wuc= +github.com/blizzy78/varnamelen v0.6.0 h1:TOIDk9qRIMspALZKX8x+5hQfAjuvAFogppnxtvuNmBo= +github.com/blizzy78/varnamelen v0.6.0/go.mod h1:zy2Eic4qWqjrxa60jG34cfL0VXcSwzUrIx68eJPb4Q8= github.com/bmatcuk/doublestar/v4 v4.0.2 h1:X0krlUVAVmtr2cRoTqR8aDMrDqnB36ht8wpWTiQ3jsA= github.com/bmatcuk/doublestar/v4 v4.0.2/go.mod h1:xBQ8jztBU6kakFMg+8WGxn0c6z1fTSPVIjEY1Wr7jzc= github.com/bombsimon/wsl/v3 v3.3.0 h1:Mka/+kRLoQJq7g2rggtgQsjuI/K5Efd87WX96EWFxjM= github.com/bombsimon/wsl/v3 v3.3.0/go.mod h1:st10JtZYLE4D5sC7b8xV4zTKZwAQjCH/Hy2Pm1FNZIc= -github.com/breml/bidichk v0.2.1 h1:SRNtZuLdfkxtocj+xyHXKC1Uv3jVi6EPYx+NHSTNQvE= -github.com/breml/bidichk v0.2.1/go.mod h1:zbfeitpevDUGI7V91Uzzuwrn4Vls8MoBMrwtt78jmso= -github.com/breml/errchkjson v0.2.1 h1:QCToXnY9BNngrbJoW3qfCTt3BdtbnsI6wyP/WGrxxSE= -github.com/breml/errchkjson v0.2.1/go.mod h1:jZEATw/jF69cL1iy7//Yih8yp/mXp2CBoBr9GJwCAsY= +github.com/breml/bidichk v0.2.2 h1:w7QXnpH0eCBJm55zGCTJveZEkQBt6Fs5zThIdA6qQ9Y= +github.com/breml/bidichk v0.2.2/go.mod h1:zbfeitpevDUGI7V91Uzzuwrn4Vls8MoBMrwtt78jmso= +github.com/breml/errchkjson v0.2.3 h1:97eGTmR/w0paL2SwfRPI1jaAZHaH/fXnxWTw2eEIqE0= +github.com/breml/errchkjson v0.2.3/go.mod h1:jZEATw/jF69cL1iy7//Yih8yp/mXp2CBoBr9GJwCAsY= github.com/butuzov/ireturn v0.1.1 h1:QvrO2QF2+/Cx1WA/vETCIYBKtRjc30vesdoPUNo1EbY= github.com/butuzov/ireturn v0.1.1/go.mod h1:Wh6Zl3IMtTpaIKbmwzqi6olnM9ptYQxxVacMsOEFPoc= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= @@ -179,8 +179,8 @@ github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsr github.com/cpuguy83/go-md2man/v2 v2.0.1/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= -github.com/daixiang0/gci v0.2.9 h1:iwJvwQpBZmMg31w+QQ6jsyZ54KEATn6/nfARbBNW294= -github.com/daixiang0/gci v0.2.9/go.mod h1:+4dZ7TISfSmqfAGv59ePaHfNzgGtIkHAhhdKggP1JAc= +github.com/daixiang0/gci v0.3.1-0.20220208004058-76d765e3ab48 h1:9rJGqaC5do9zkvKrtRdx0HJoxj7Jd6vDa0O2eBU0AbU= +github.com/daixiang0/gci v0.3.1-0.20220208004058-76d765e3ab48/go.mod h1:jaASoJmv/ykO9dAAPy31iJnreV19248qKDdVWf3QgC4= github.com/davecgh/go-spew v0.0.0-20161028175848-04cdfd42973b/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= @@ -331,8 +331,8 @@ github.com/golangci/go-misc v0.0.0-20180628070357-927a3d87b613 h1:9kfjN3AdxcbsZB github.com/golangci/go-misc v0.0.0-20180628070357-927a3d87b613/go.mod h1:SyvUF2NxV+sN8upjjeVYr5W7tyxaT1JVtvhKhOn2ii8= github.com/golangci/gofmt v0.0.0-20190930125516-244bba706f1a h1:iR3fYXUjHCR97qWS8ch1y9zPNsgXThGwjKPrYfqMPks= github.com/golangci/gofmt v0.0.0-20190930125516-244bba706f1a/go.mod h1:9qCChq59u/eW8im404Q2WWTrnBUQKjpNYKMbU4M7EFU= -github.com/golangci/golangci-lint v1.44.0 h1:YJPouGNQEdK+x2KsCpWMIBy0q6MSuxHjkWMxJMNj/DU= -github.com/golangci/golangci-lint v1.44.0/go.mod h1:aBolpzNkmYogKPynGKdOWDCEc8LlwnxZC6w/SJ1TaEs= +github.com/golangci/golangci-lint v1.44.2 h1:MzvkDt1j1OHkv42/feNJVNNXRFACPp7aAWBWDo5aYQw= +github.com/golangci/golangci-lint v1.44.2/go.mod h1:KjBgkLvsTWDkhfu12iCrv0gwL1kON5KNhbyjQ6qN7Jo= github.com/golangci/lint-1 v0.0.0-20191013205115-297bf364a8e0 h1:MfyDlzVjl1hoaPzPD4Gpb/QgoRfSBR0jdhwGyAWwMSA= github.com/golangci/lint-1 v0.0.0-20191013205115-297bf364a8e0/go.mod h1:66R6K6P6VWk9I95jvqGxkqJxVWGFy9XlDwLwVz1RCFg= github.com/golangci/maligned v0.0.0-20180506175553-b1d89398deca h1:kNY3/svz5T29MYHubXix4aDDuE3RWHkPvopM/EDv/MA= @@ -360,8 +360,9 @@ github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/ github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.6 h1:BKbKCqvP6I+rmFHt06ZmyQtvB8xAkWdhFyr0ZUNZcxQ= github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.7 h1:81/ik6ipDQS2aGcBfIN5dHDB36BwrStyeAQquSYCV4o= +github.com/google/go-cmp v0.5.7/go.mod h1:n+brtR0CgQNWTVd5ZUFpTBC8YFBDLK/h/bpaJ8/DtOE= github.com/google/go-github v17.0.0+incompatible h1:N0LgJ1j65A7kfXrZnUDaYCs/Sf4rEjNlfyDHW9dolSY= github.com/google/go-github v17.0.0+incompatible/go.mod h1:zLgOLi98H3fifZn+44m+umXrS52loVEgC2AApnigrVQ= github.com/google/go-querystring v1.1.0 h1:AnCroh3fv4ZBgVIf1Iwtovgjaw/GiKJo8M8yD/fhyJ8= @@ -481,6 +482,8 @@ github.com/hashicorp/memberlist v0.3.0/go.mod h1:MS2lj3INKhZjWNqd3N0m3J+Jxf3DAOn github.com/hashicorp/serf v0.8.2/go.mod h1:6hOLApaqBFA1NXqRQAsxw9QxuDEvNxSQRwA/JwenrHc= github.com/hashicorp/serf v0.9.5/go.mod h1:UWDWwZeL5cuWDJdl0C6wrvrUwEqtQ4ZKBKKENpqIUyk= github.com/hashicorp/serf v0.9.6/go.mod h1:TXZNMjZQijwlDvp+r0b63xZ45H7JmCmgg4gpTwn9UV4= +github.com/hexops/gotextdiff v1.0.3 h1:gitA9+qJrrTCsiCl7+kh75nPqQt1cx4ZkudSTLoUqJM= +github.com/hexops/gotextdiff v1.0.3/go.mod h1:pSWU5MAI3yDq+fZBTazCSJysOMbxWL1BSow5/V2vxeg= github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= github.com/huandu/xstrings v1.0.0/go.mod h1:4qWG/gcEcfX4z/mBDHJ++3ReCw9ibxbsNJbcucJdbSo= github.com/huandu/xstrings v1.2.0/go.mod h1:DvyZB1rfVYsBIigL8HwpZgxHwXozlTgGqn63UyNX5k4= @@ -551,8 +554,8 @@ github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= -github.com/kulti/thelper v0.5.0 h1:CiEKStgoG4K9bjf/zk3eNX0D0J2iFWzxEY+h9UXmlJg= -github.com/kulti/thelper v0.5.0/go.mod h1:vMu2Cizjy/grP+jmsvOFDx1kYP6+PD1lqg4Yu5exl2U= +github.com/kulti/thelper v0.5.1 h1:Uf4CUekH0OvzQTFPrWkstJvXgm6pnNEtQu3HiqEkpB0= +github.com/kulti/thelper v0.5.1/go.mod h1:vMu2Cizjy/grP+jmsvOFDx1kYP6+PD1lqg4Yu5exl2U= github.com/kunwardeep/paralleltest v1.0.3 h1:UdKIkImEAXjR1chUWLn+PNXqWUGs//7tzMeWuP7NhmI= github.com/kunwardeep/paralleltest v1.0.3/go.mod h1:vLydzomDFpk7yu5UX02RmP0H8QfRPOV/oFhWN85Mjb4= github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw= @@ -560,8 +563,8 @@ github.com/kyoh86/exportloopref v0.1.8 h1:5Ry/at+eFdkX9Vsdw3qU4YkvGtzuVfzT4X7S77 github.com/kyoh86/exportloopref v0.1.8/go.mod h1:1tUcJeiioIs7VWe5gcOObrux3lb66+sBqGZrRkMwPgg= github.com/ldez/gomoddirectives v0.2.2 h1:p9/sXuNFArS2RLc+UpYZSI4KQwGMEDWC/LbtF5OPFVg= github.com/ldez/gomoddirectives v0.2.2/go.mod h1:cpgBogWITnCfRq2qGoDkKMEVSaarhdBr6g8G04uz6d0= -github.com/ldez/tagliatelle v0.3.0 h1:Aubm2ZsrsjIGFvdxemMPJaXrSJ5Cys6VWyTQFt9k2dI= -github.com/ldez/tagliatelle v0.3.0/go.mod h1:8s6WJQwEYHbKZDsp/LjArytKOG8qaMrKQQ3mFukHs88= +github.com/ldez/tagliatelle v0.3.1 h1:3BqVVlReVUZwafJUwQ+oxbx2BEX2vUG4Yu/NOfMiKiM= +github.com/ldez/tagliatelle v0.3.1/go.mod h1:8s6WJQwEYHbKZDsp/LjArytKOG8qaMrKQQ3mFukHs88= github.com/leonklingele/grouper v1.1.0 h1:tC2y/ygPbMFSBOs3DcyaEMKnnwH7eYKzohOtRrf0SAg= github.com/leonklingele/grouper v1.1.0/go.mod h1:uk3I3uDfi9B6PeUjsCKi6ndcf63Uy7snXgR4yDYQVDY= github.com/letsencrypt/pkcs11key/v4 v4.0.0/go.mod h1:EFUvBDay26dErnNb70Nd0/VW3tJiIbETBPTl9ATXQag= @@ -611,8 +614,8 @@ github.com/mbilski/exhaustivestruct v1.2.0 h1:wCBmUnSYufAHO6J4AVWY6ff+oxWxsVFrwg github.com/mbilski/exhaustivestruct v1.2.0/go.mod h1:OeTBVxQWoEmB2J2JCHmXWPJ0aksxSUOUy+nvtVEfzXc= github.com/mgechev/dots v0.0.0-20210922191527-e955255bf517 h1:zpIH83+oKzcpryru8ceC6BxnoG8TBrhgAvRg8obzup0= github.com/mgechev/dots v0.0.0-20210922191527-e955255bf517/go.mod h1:KQ7+USdGKfpPjXk4Ga+5XxQM4Lm4e3gAogrreFAYpOg= -github.com/mgechev/revive v1.1.3 h1:6tBZacs2/uv9UOpkBQhCtXh2NGgu2Ry97ZyjcN6uDCM= -github.com/mgechev/revive v1.1.3/go.mod h1:jMzDa13teAuv/KLeqgJw79NDe+1IT0ZO3Mht0vN1Yls= +github.com/mgechev/revive v1.1.4 h1:sZOjY6GU35Kr9jKa/wsKSHgrFz8eASIB5i3tqWZMp0A= +github.com/mgechev/revive v1.1.4/go.mod h1:ZZq2bmyssGh8MSPz3VVziqRNIMYTJXzP8MUKG90vZ9A= github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= github.com/miekg/dns v1.1.26/go.mod h1:bPDLeHnStXmXAq1m/Ch/hvfNHr14JKNPMBo3VZKjuso= github.com/miekg/dns v1.1.35/go.mod h1:KNUDUusw/aVsxyTYZM1oqvCicbwhgbNgztCETuNZ7xM= @@ -755,7 +758,7 @@ github.com/quasilyte/go-ruleguard v0.3.15/go.mod h1:NhuWhnlVEM1gT1A4VJHYfy9MuYSx github.com/quasilyte/go-ruleguard/dsl v0.3.0/go.mod h1:KeCP03KrjuSO0H1kTuZQCWlQPulDV6YMIXmpQss17rU= github.com/quasilyte/go-ruleguard/dsl v0.3.12-0.20220101150716-969a394a9451/go.mod h1:KeCP03KrjuSO0H1kTuZQCWlQPulDV6YMIXmpQss17rU= github.com/quasilyte/go-ruleguard/dsl v0.3.12/go.mod h1:KeCP03KrjuSO0H1kTuZQCWlQPulDV6YMIXmpQss17rU= -github.com/quasilyte/go-ruleguard/dsl v0.3.15/go.mod h1:KeCP03KrjuSO0H1kTuZQCWlQPulDV6YMIXmpQss17rU= +github.com/quasilyte/go-ruleguard/dsl v0.3.17/go.mod h1:KeCP03KrjuSO0H1kTuZQCWlQPulDV6YMIXmpQss17rU= github.com/quasilyte/go-ruleguard/rules v0.0.0-20201231183845-9e62ed36efe1/go.mod h1:7JTjp89EGyU1d6XfBiXihJNG37wB2VRkd125Q1u7Plc= github.com/quasilyte/go-ruleguard/rules v0.0.0-20211022131956-028d6511ab71/go.mod h1:4cgAphtvu7Ftv7vOT2ZOYhC6CvBxZixcasr8qIOTA50= github.com/quasilyte/gogrep v0.0.0-20220103110004-ffaa07af02e3 h1:P4QPNn+TK49zJjXKERt/vyPbv/mCHB/zQ4flDYOMN+M= @@ -789,7 +792,7 @@ github.com/sergi/go-diff v1.1.0 h1:we8PVUC3FE2uYfodKH/nBHMSetSfHDR6scGdBi+erh0= github.com/sergi/go-diff v1.1.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM= github.com/shazow/go-diff v0.0.0-20160112020656-b6b7b6733b8c h1:W65qqJCIOVP4jpqPQ0YvHYKwcMEMVWIzWC5iNQQfBTU= github.com/shazow/go-diff v0.0.0-20160112020656-b6b7b6733b8c/go.mod h1:/PevMnwAxekIXwN8qQyfc5gl2NlkB3CQlkizAbOkeBs= -github.com/shirou/gopsutil/v3 v3.21.12/go.mod h1:BToYZVTlSVlfazpDDYFnsVZLaoRG+g8ufT6fPQLdJzA= +github.com/shirou/gopsutil/v3 v3.22.1/go.mod h1:WapW1AOOPlHyXr+yOyw3uYx36enocrtSoSBy0L5vUHY= github.com/shurcooL/go v0.0.0-20180423040247-9e1955d9fb6e/go.mod h1:TDJrrUr11Vxrven61rcy3hJMUqaf/CLWYhHNPmT14Lk= github.com/shurcooL/go-goon v0.0.0-20170922171312-37c2f522c041/go.mod h1:N5mDOmsrJOB+vfqUK+7DmDyjhSLIIBnXo9lvZJj3MWQ= github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= @@ -891,8 +894,8 @@ github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGr github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0= github.com/ultraware/funlen v0.0.3 h1:5ylVWm8wsNwH5aWo9438pwvsK0QiqVuUrt9bn7S/iLA= github.com/ultraware/funlen v0.0.3/go.mod h1:Dp4UiAus7Wdb9KUZsYWZEWiRzGuM2kXM1lPbfaF6xhA= -github.com/ultraware/whitespace v0.0.4 h1:If7Va4cM03mpgrNH9k49/VOicWpGoG70XPBFFODYDsg= -github.com/ultraware/whitespace v0.0.4/go.mod h1:aVMh/gQve5Maj9hQ/hg+F75lr/X5A89uZnzAmWSineA= +github.com/ultraware/whitespace v0.0.5 h1:hh+/cpIcopyMYbZNVov9iSxvJU3OYQg78Sfaqzi/CzI= +github.com/ultraware/whitespace v0.0.5/go.mod h1:aVMh/gQve5Maj9hQ/hg+F75lr/X5A89uZnzAmWSineA= github.com/urfave/cli v1.20.0/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA= github.com/urfave/cli v1.22.1/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= github.com/uudashr/gocognit v1.0.5 h1:rrSex7oHr3/pPLQ0xoWq108XMU8s678FJcQ+aSfOHa4= @@ -1197,15 +1200,15 @@ golang.org/x/sys v0.0.0-20210908233432-aa78b53d3365/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20210915083310-ed5796bab164/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211007075335-d3039528d8ac/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20211013075003-97ac67df715c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211019181941-9d821ace8654/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211105183446-c75c47738b0c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211124211545-fe61309f8881/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211205182925-97ca703d548d/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211210111614-af8b64212486/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211213223007-03aa0b5f6827/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e h1:fLOSk5Q00efkSvAm+4xcoXD+RRmLmmulPn5I3Y9F2EM= golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220111092808-5a964db01320 h1:0jf+tOCoZ3LyutmCOWpVni1chK4VfFLhRsDK7MhqGRY= +golang.org/x/sys v0.0.0-20220111092808-5a964db01320/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1 h1:v+OssWQX+hTHEmOBgwxdZxK4zHq3yOs8F9J7mk0PY8E= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= @@ -1305,7 +1308,6 @@ golang.org/x/tools v0.0.0-20201023174141-c8cfbd0f21e6/go.mod h1:emZCQorbCU4vsT4f golang.org/x/tools v0.0.0-20201028025901-8cd080b735b3/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20201110124207-079ba7bd75cd/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20201114224030-61ea331ec02b/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.0.0-20201118003311-bd56c0adb394/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20201201161351-ac6f37ff4c2a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20201208233053-a543418bbed2/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20201224043029-2b0845dc783e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= diff --git a/processor/batchprocessor/factory.go b/processor/batchprocessor/factory.go index cc932893339..0ee22f51428 100644 --- a/processor/batchprocessor/factory.go +++ b/processor/batchprocessor/factory.go @@ -21,7 +21,6 @@ import ( "go.opentelemetry.io/collector/component" "go.opentelemetry.io/collector/config" "go.opentelemetry.io/collector/consumer" - "go.opentelemetry.io/collector/processor/processorhelper" ) const ( @@ -34,12 +33,12 @@ const ( // NewFactory returns a new factory for the Batch processor. func NewFactory() component.ProcessorFactory { - return processorhelper.NewFactory( + return component.NewProcessorFactory( typeStr, createDefaultConfig, - processorhelper.WithTraces(createTracesProcessor), - processorhelper.WithMetrics(createMetricsProcessor), - processorhelper.WithLogs(createLogsProcessor)) + component.WithTracesProcessor(createTracesProcessor), + component.WithMetricsProcessor(createMetricsProcessor), + component.WithLogsProcessor(createLogsProcessor)) } func createDefaultConfig() config.Processor { diff --git a/processor/memorylimiterprocessor/factory.go b/processor/memorylimiterprocessor/factory.go index ea26c45b415..9a86faf20c6 100644 --- a/processor/memorylimiterprocessor/factory.go +++ b/processor/memorylimiterprocessor/factory.go @@ -32,12 +32,12 @@ var processorCapabilities = consumer.Capabilities{MutatesData: false} // NewFactory returns a new factory for the Memory Limiter processor. func NewFactory() component.ProcessorFactory { - return processorhelper.NewFactory( + return component.NewProcessorFactory( typeStr, createDefaultConfig, - processorhelper.WithTraces(createTracesProcessor), - processorhelper.WithMetrics(createMetricsProcessor), - processorhelper.WithLogs(createLogsProcessor)) + component.WithTracesProcessor(createTracesProcessor), + component.WithMetricsProcessor(createMetricsProcessor), + component.WithLogsProcessor(createLogsProcessor)) } // CreateDefaultConfig creates the default configuration for processor. Notice diff --git a/processor/processorhelper/factory.go b/processor/processorhelper/factory.go index f0eb72a6d3c..6cf868ccb57 100644 --- a/processor/processorhelper/factory.go +++ b/processor/processorhelper/factory.go @@ -15,120 +15,32 @@ package processorhelper // import "go.opentelemetry.io/collector/processor/processorhelper" import ( - "context" - "go.opentelemetry.io/collector/component" - "go.opentelemetry.io/collector/component/componenterror" - "go.opentelemetry.io/collector/config" - "go.opentelemetry.io/collector/consumer" - "go.opentelemetry.io/collector/internal/internalinterface" ) -// FactoryOption apply changes to ProcessorOptions. -type FactoryOption func(o *factory) - -// CreateDefaultConfig is the equivalent of component.ProcessorFactory.CreateDefaultConfig() -type CreateDefaultConfig func() config.Processor - -// CreateTracesProcessor is the equivalent of component.ProcessorFactory.CreateTracesProcessor() -type CreateTracesProcessor func(context.Context, component.ProcessorCreateSettings, config.Processor, consumer.Traces) (component.TracesProcessor, error) - -// CreateMetricsProcessor is the equivalent of component.ProcessorFactory.CreateMetricsProcessor() -type CreateMetricsProcessor func(context.Context, component.ProcessorCreateSettings, config.Processor, consumer.Metrics) (component.MetricsProcessor, error) - -// CreateLogsProcessor is the equivalent of component.ProcessorFactory.CreateLogsProcessor() -type CreateLogsProcessor func(context.Context, component.ProcessorCreateSettings, config.Processor, consumer.Logs) (component.LogsProcessor, error) - -type factory struct { - internalinterface.BaseInternal - cfgType config.Type - createDefaultConfig CreateDefaultConfig - createTracesProcessor CreateTracesProcessor - createMetricsProcessor CreateMetricsProcessor - createLogsProcessor CreateLogsProcessor -} - -// WithTraces overrides the default "error not supported" implementation for CreateTracesProcessor. -func WithTraces(createTracesProcessor CreateTracesProcessor) FactoryOption { - return func(o *factory) { - o.createTracesProcessor = createTracesProcessor - } -} +// Deprecated: [v0.46.0] use component.ProcessorFactoryOption. +type FactoryOption = component.ProcessorFactoryOption -// WithMetrics overrides the default "error not supported" implementation for CreateMetricsProcessor. -func WithMetrics(createMetricsProcessor CreateMetricsProcessor) FactoryOption { - return func(o *factory) { - o.createMetricsProcessor = createMetricsProcessor - } -} +// Deprecated: [v0.46.0] use component.ProcessorCreateDefaultConfigFunc. +type CreateDefaultConfig = component.ProcessorCreateDefaultConfigFunc -// WithLogs overrides the default "error not supported" implementation for CreateLogsProcessor. -func WithLogs(createLogsProcessor CreateLogsProcessor) FactoryOption { - return func(o *factory) { - o.createLogsProcessor = createLogsProcessor - } -} +// Deprecated: [v0.46.0] use component.CreateTracesProcessorFunc. +type CreateTracesProcessor = component.CreateTracesProcessorFunc -// NewFactory returns a component.ProcessorFactory. -func NewFactory( - cfgType config.Type, - createDefaultConfig CreateDefaultConfig, - options ...FactoryOption) component.ProcessorFactory { - f := &factory{ - cfgType: cfgType, - createDefaultConfig: createDefaultConfig, - } - for _, opt := range options { - opt(f) - } - return f -} +// Deprecated: [v0.46.0] use component.CreateMetricsProcessorFunc. +type CreateMetricsProcessor = component.CreateMetricsProcessorFunc -// Type gets the type of the Processor config created by this factory. -func (f *factory) Type() config.Type { - return f.cfgType -} +// Deprecated: [v0.46.0] use component.CreateLogsProcessorFunc. +type CreateLogsProcessor = component.CreateLogsProcessorFunc -// CreateDefaultConfig creates the default configuration for processor. -func (f *factory) CreateDefaultConfig() config.Processor { - return f.createDefaultConfig() -} +// Deprecated: [v0.46.0] use component.WithTracesProcessor. +var WithTraces = component.WithTracesProcessor -// CreateTracesProcessor creates a component.TracesProcessor based on this config. -func (f *factory) CreateTracesProcessor( - ctx context.Context, - set component.ProcessorCreateSettings, - cfg config.Processor, - nextConsumer consumer.Traces, -) (component.TracesProcessor, error) { - if f.createTracesProcessor == nil { - return nil, componenterror.ErrDataTypeIsNotSupported - } - return f.createTracesProcessor(ctx, set, cfg, nextConsumer) -} +// Deprecated: [v0.46.0] use component.WithMetricsProcessor. +var WithMetrics = component.WithMetricsProcessor -// CreateMetricsProcessor creates a component.MetricsProcessor based on this config. -func (f *factory) CreateMetricsProcessor( - ctx context.Context, - set component.ProcessorCreateSettings, - cfg config.Processor, - nextConsumer consumer.Metrics, -) (component.MetricsProcessor, error) { - if f.createMetricsProcessor == nil { - return nil, componenterror.ErrDataTypeIsNotSupported - } - return f.createMetricsProcessor(ctx, set, cfg, nextConsumer) -} +// Deprecated: [v0.46.0] use component.WithLogsProcessor. +var WithLogs = component.WithLogsProcessor -// CreateLogsProcessor creates a component.LogsProcessor based on this config. -func (f *factory) CreateLogsProcessor( - ctx context.Context, - set component.ProcessorCreateSettings, - cfg config.Processor, - nextConsumer consumer.Logs, -) (component.LogsProcessor, error) { - if f.createLogsProcessor == nil { - return nil, componenterror.ErrDataTypeIsNotSupported - } - return f.createLogsProcessor(ctx, set, cfg, nextConsumer) -} +// Deprecated: [v0.46.0] use component.NewProcessorFactory. +var NewFactory = component.NewProcessorFactory diff --git a/processor/processorhelper/factory_test.go b/processor/processorhelper/factory_test.go deleted file mode 100644 index a126096309f..00000000000 --- a/processor/processorhelper/factory_test.go +++ /dev/null @@ -1,81 +0,0 @@ -// Copyright The OpenTelemetry Authors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package processorhelper - -import ( - "context" - "testing" - - "github.com/stretchr/testify/assert" - - "go.opentelemetry.io/collector/component" - "go.opentelemetry.io/collector/component/componenttest" - "go.opentelemetry.io/collector/config" - "go.opentelemetry.io/collector/consumer" -) - -const typeStr = "test" - -var defaultCfg = config.NewProcessorSettings(config.NewComponentID(typeStr)) - -func TestNewTrace(t *testing.T) { - factory := NewFactory( - typeStr, - defaultConfig) - assert.EqualValues(t, typeStr, factory.Type()) - assert.EqualValues(t, &defaultCfg, factory.CreateDefaultConfig()) - _, err := factory.CreateTracesProcessor(context.Background(), componenttest.NewNopProcessorCreateSettings(), &defaultCfg, nil) - assert.Error(t, err) - _, err = factory.CreateMetricsProcessor(context.Background(), componenttest.NewNopProcessorCreateSettings(), &defaultCfg, nil) - assert.Error(t, err) - _, err = factory.CreateLogsProcessor(context.Background(), componenttest.NewNopProcessorCreateSettings(), &defaultCfg, nil) - assert.Error(t, err) -} - -func TestNewMetrics_WithConstructors(t *testing.T) { - factory := NewFactory( - typeStr, - defaultConfig, - WithTraces(createTracesProcessor), - WithMetrics(createMetricsProcessor), - WithLogs(createLogsProcessor)) - assert.EqualValues(t, typeStr, factory.Type()) - assert.EqualValues(t, &defaultCfg, factory.CreateDefaultConfig()) - - _, err := factory.CreateTracesProcessor(context.Background(), componenttest.NewNopProcessorCreateSettings(), &defaultCfg, nil) - assert.NoError(t, err) - - _, err = factory.CreateMetricsProcessor(context.Background(), componenttest.NewNopProcessorCreateSettings(), &defaultCfg, nil) - assert.NoError(t, err) - - _, err = factory.CreateLogsProcessor(context.Background(), componenttest.NewNopProcessorCreateSettings(), &defaultCfg, nil) - assert.NoError(t, err) -} - -func defaultConfig() config.Processor { - return &defaultCfg -} - -func createTracesProcessor(context.Context, component.ProcessorCreateSettings, config.Processor, consumer.Traces) (component.TracesProcessor, error) { - return nil, nil -} - -func createMetricsProcessor(context.Context, component.ProcessorCreateSettings, config.Processor, consumer.Metrics) (component.MetricsProcessor, error) { - return nil, nil -} - -func createLogsProcessor(context.Context, component.ProcessorCreateSettings, config.Processor, consumer.Logs) (component.LogsProcessor, error) { - return nil, nil -} diff --git a/processor/processorhelper/logs_test.go b/processor/processorhelper/logs_test.go index db25c8a42ca..efe04e07fb5 100644 --- a/processor/processorhelper/logs_test.go +++ b/processor/processorhelper/logs_test.go @@ -31,7 +31,7 @@ import ( "go.opentelemetry.io/collector/model/pdata" ) -var testLogsCfg = config.NewProcessorSettings(config.NewComponentID(typeStr)) +var testLogsCfg = config.NewProcessorSettings(config.NewComponentID("test")) func TestNewLogsProcessor(t *testing.T) { lp, err := NewLogsProcessor(&testLogsCfg, consumertest.NewNop(), newTestLProcessor(nil)) diff --git a/processor/processorhelper/metrics_test.go b/processor/processorhelper/metrics_test.go index 66059283fc4..5e568037546 100644 --- a/processor/processorhelper/metrics_test.go +++ b/processor/processorhelper/metrics_test.go @@ -31,7 +31,7 @@ import ( "go.opentelemetry.io/collector/model/pdata" ) -var testMetricsCfg = config.NewProcessorSettings(config.NewComponentID(typeStr)) +var testMetricsCfg = config.NewProcessorSettings(config.NewComponentID("test")) func TestNewMetricsProcessor(t *testing.T) { mp, err := NewMetricsProcessor(&testMetricsCfg, consumertest.NewNop(), newTestMProcessor(nil)) diff --git a/processor/processorhelper/traces_test.go b/processor/processorhelper/traces_test.go index 2ed387136ea..de2cc9209ac 100644 --- a/processor/processorhelper/traces_test.go +++ b/processor/processorhelper/traces_test.go @@ -31,7 +31,7 @@ import ( "go.opentelemetry.io/collector/model/pdata" ) -var testTracesCfg = config.NewProcessorSettings(config.NewComponentID(typeStr)) +var testTracesCfg = config.NewProcessorSettings(config.NewComponentID("test")) func TestNewTracesProcessor(t *testing.T) { tp, err := NewTracesProcessor(&testTracesCfg, consumertest.NewNop(), newTestTProcessor(nil)) diff --git a/service/internal/builder/factories_test.go b/service/internal/builder/factories_test.go index d03288809ea..9c60c60a78f 100644 --- a/service/internal/builder/factories_test.go +++ b/service/internal/builder/factories_test.go @@ -18,7 +18,6 @@ import ( "go.opentelemetry.io/collector/component" "go.opentelemetry.io/collector/config" "go.opentelemetry.io/collector/internal/testcomponents" - "go.opentelemetry.io/collector/processor/processorhelper" "go.opentelemetry.io/collector/receiver/receiverhelper" ) @@ -59,7 +58,7 @@ func newBadReceiverFactory() component.ReceiverFactory { } func newBadProcessorFactory() component.ProcessorFactory { - return processorhelper.NewFactory("bf", func() config.Processor { + return component.NewProcessorFactory("bf", func() config.Processor { return &struct { config.ProcessorSettings `mapstructure:",squash"` // squash ensures fields are correctly decoded in embedded struct }{