diff --git a/cmd/mdatagen/go.mod b/cmd/mdatagen/go.mod index 516b8155138..f3cd78f9280 100644 --- a/cmd/mdatagen/go.mod +++ b/cmd/mdatagen/go.mod @@ -14,6 +14,7 @@ require ( go.opentelemetry.io/collector/connector/connectortest v0.144.0 go.opentelemetry.io/collector/consumer v1.50.0 go.opentelemetry.io/collector/consumer/consumertest v0.144.0 + go.opentelemetry.io/collector/consumer/xconsumer v0.144.0 go.opentelemetry.io/collector/featuregate v1.50.0 go.opentelemetry.io/collector/filter v0.144.0 go.opentelemetry.io/collector/pdata v1.50.0 @@ -23,6 +24,7 @@ require ( go.opentelemetry.io/collector/processor/processortest v0.144.0 go.opentelemetry.io/collector/receiver v1.50.0 go.opentelemetry.io/collector/receiver/receivertest v0.144.0 + go.opentelemetry.io/collector/receiver/xreceiver v0.144.0 go.opentelemetry.io/collector/scraper v0.144.0 go.opentelemetry.io/collector/scraper/scrapertest v0.144.0 go.opentelemetry.io/collector/service/hostcapabilities v0.144.0 @@ -60,14 +62,12 @@ require ( go.opentelemetry.io/collector/component/componentstatus v0.144.0 // indirect go.opentelemetry.io/collector/connector/xconnector v0.144.0 // indirect go.opentelemetry.io/collector/consumer/consumererror v0.144.0 // indirect - go.opentelemetry.io/collector/consumer/xconsumer v0.144.0 // indirect go.opentelemetry.io/collector/internal/componentalias v0.144.0 // indirect go.opentelemetry.io/collector/internal/fanoutconsumer v0.144.0 // indirect go.opentelemetry.io/collector/pdata/pprofile v0.144.0 // indirect go.opentelemetry.io/collector/pdata/testdata v0.144.0 // indirect go.opentelemetry.io/collector/pipeline/xpipeline v0.144.0 // indirect go.opentelemetry.io/collector/processor/xprocessor v0.144.0 // indirect - go.opentelemetry.io/collector/receiver/xreceiver v0.144.0 // indirect go.opentelemetry.io/collector/service v0.144.0 // indirect go.opentelemetry.io/otel/sdk v1.39.0 // indirect go.uber.org/multierr v1.11.0 // indirect diff --git a/cmd/mdatagen/internal/command.go b/cmd/mdatagen/internal/command.go index 9ecf8f58fd6..bda0364a77e 100644 --- a/cmd/mdatagen/internal/command.go +++ b/cmd/mdatagen/internal/command.go @@ -351,18 +351,26 @@ func templatize(tmplFile string, md Metadata) *template.Template { "isCommand": func() bool { return md.Status.Class == "cmd" }, - "supportsLogs": func() bool { return md.supportsSignal("logs") }, - "supportsMetrics": func() bool { return md.supportsSignal("metrics") }, - "supportsTraces": func() bool { return md.supportsSignal("traces") }, - "supportsLogsToLogs": func() bool { return md.supportsSignal("logs_to_logs") }, - "supportsLogsToMetrics": func() bool { return md.supportsSignal("logs_to_metrics") }, - "supportsLogsToTraces": func() bool { return md.supportsSignal("logs_to_traces") }, - "supportsMetricsToLogs": func() bool { return md.supportsSignal("metrics_to_logs") }, - "supportsMetricsToMetrics": func() bool { return md.supportsSignal("metrics_to_metrics") }, - "supportsMetricsToTraces": func() bool { return md.supportsSignal("metrics_to_traces") }, - "supportsTracesToLogs": func() bool { return md.supportsSignal("traces_to_logs") }, - "supportsTracesToMetrics": func() bool { return md.supportsSignal("traces_to_metrics") }, - "supportsTracesToTraces": func() bool { return md.supportsSignal("traces_to_traces") }, + "supportsLogs": func() bool { return md.supportsSignal("logs") }, + "supportsMetrics": func() bool { return md.supportsSignal("metrics") }, + "supportsTraces": func() bool { return md.supportsSignal("traces") }, + "supportsProfiles": func() bool { return md.supportsSignal("profiles") }, + "supportsLogsToLogs": func() bool { return md.supportsSignal("logs_to_logs") }, + "supportsLogsToMetrics": func() bool { return md.supportsSignal("logs_to_metrics") }, + "supportsLogsToTraces": func() bool { return md.supportsSignal("logs_to_traces") }, + "supportsLogsToProfiles": func() bool { return md.supportsSignal("logs_to_profiles") }, + "supportsMetricsToLogs": func() bool { return md.supportsSignal("metrics_to_logs") }, + "supportsMetricsToMetrics": func() bool { return md.supportsSignal("metrics_to_metrics") }, + "supportsMetricsToTraces": func() bool { return md.supportsSignal("metrics_to_traces") }, + "supportsMetricsToProfiles": func() bool { return md.supportsSignal("metrics_to_profiles") }, + "supportsTracesToLogs": func() bool { return md.supportsSignal("traces_to_logs") }, + "supportsTracesToMetrics": func() bool { return md.supportsSignal("traces_to_metrics") }, + "supportsTracesToTraces": func() bool { return md.supportsSignal("traces_to_traces") }, + "supportsTracesToProfiles": func() bool { return md.supportsSignal("traces_to_profiles") }, + "supportsProfilesToLogs": func() bool { return md.supportsSignal("profiles_to_logs") }, + "supportsProfilesToMetrics": func() bool { return md.supportsSignal("profiles_to_metrics") }, + "supportsProfilesToTraces": func() bool { return md.supportsSignal("profiles_to_traces") }, + "supportsProfilesToProfiles": func() bool { return md.supportsSignal("profiles_to_profiles") }, "expectConsumerError": func() bool { return md.Tests.ExpectConsumerError }, diff --git a/cmd/mdatagen/internal/command_test.go b/cmd/mdatagen/internal/command_test.go index 6b20fd6635f..d8d48542258 100644 --- a/cmd/mdatagen/internal/command_test.go +++ b/cmd/mdatagen/internal/command_test.go @@ -135,6 +135,12 @@ func TestRunContents(t *testing.T) { wantReadmeGenerated: true, wantComponentTestGenerated: true, }, + { + yml: "with_tests_profiles_connector.yaml", + wantStatusGenerated: true, + wantReadmeGenerated: true, + wantComponentTestGenerated: true, + }, { yml: "with_goleak_ignores.yaml", wantStatusGenerated: true, diff --git a/cmd/mdatagen/internal/samplefactoryreceiver/factory.go b/cmd/mdatagen/internal/samplefactoryreceiver/factory.go index a3cba05934d..739b2fae6f2 100644 --- a/cmd/mdatagen/internal/samplefactoryreceiver/factory.go +++ b/cmd/mdatagen/internal/samplefactoryreceiver/factory.go @@ -12,18 +12,22 @@ import ( "go.opentelemetry.io/collector/cmd/mdatagen/internal/samplefactoryreceiver/internal/metadata" "go.opentelemetry.io/collector/component" "go.opentelemetry.io/collector/consumer" + "go.opentelemetry.io/collector/consumer/xconsumer" "go.opentelemetry.io/collector/receiver" + "go.opentelemetry.io/collector/receiver/xreceiver" "go.opentelemetry.io/collector/service/hostcapabilities" ) // NewFactory returns a receiver.Factory for sample receiver. -func NewFactory() receiver.Factory { - return receiver.NewFactory( +func NewFactory() xreceiver.Factory { + return xreceiver.NewFactory( metadata.Type, func() component.Config { return &struct{}{} }, - receiver.WithTraces(createTraces, metadata.TracesStability), - receiver.WithMetrics(createMetrics, metadata.MetricsStability), - receiver.WithLogs(createLogs, metadata.LogsStability)) + xreceiver.WithTraces(createTraces, metadata.TracesStability), + xreceiver.WithMetrics(createMetrics, metadata.MetricsStability), + xreceiver.WithLogs(createLogs, metadata.LogsStability), + xreceiver.WithProfiles(createProfiles, metadata.ProfilesStability), + ) } func createTraces(context.Context, receiver.Settings, component.Config, consumer.Traces) (receiver.Traces, error) { @@ -51,6 +55,10 @@ func createLogs(context.Context, receiver.Settings, component.Config, consumer.L return nopInstance, nil } +func createProfiles(context.Context, receiver.Settings, component.Config, xconsumer.Profiles) (xreceiver.Profiles, error) { + return nopInstance, nil +} + var nopInstance = &nopReceiver{} type nopReceiver struct { diff --git a/cmd/mdatagen/internal/samplefactoryreceiver/generated_component_test.go b/cmd/mdatagen/internal/samplefactoryreceiver/generated_component_test.go index 38cf1def51e..7c4738b79f1 100644 --- a/cmd/mdatagen/internal/samplefactoryreceiver/generated_component_test.go +++ b/cmd/mdatagen/internal/samplefactoryreceiver/generated_component_test.go @@ -15,6 +15,7 @@ import ( "go.opentelemetry.io/collector/consumer/consumertest" "go.opentelemetry.io/collector/receiver" "go.opentelemetry.io/collector/receiver/receivertest" + "go.opentelemetry.io/collector/receiver/xreceiver" ) var typ = component.MustNewType("sample") @@ -55,6 +56,13 @@ func TestComponentLifecycle(t *testing.T) { return factory.CreateTraces(ctx, set, cfg, consumertest.NewNop()) }, }, + + { + name: "profiles", + createFn: func(ctx context.Context, set receiver.Settings, cfg component.Config) (component.Component, error) { + return factory.(xreceiver.Factory).CreateProfiles(ctx, set, cfg, consumertest.NewNop()) + }, + }, } cm, err := confmaptest.LoadConf("metadata.yaml") diff --git a/cmd/mdatagen/internal/samplereceiver/factory.go b/cmd/mdatagen/internal/samplereceiver/factory.go index df625767eff..453adfd4657 100644 --- a/cmd/mdatagen/internal/samplereceiver/factory.go +++ b/cmd/mdatagen/internal/samplereceiver/factory.go @@ -11,17 +11,21 @@ import ( "go.opentelemetry.io/collector/cmd/mdatagen/internal/samplereceiver/internal/metadata" "go.opentelemetry.io/collector/component" "go.opentelemetry.io/collector/consumer" + "go.opentelemetry.io/collector/consumer/xconsumer" "go.opentelemetry.io/collector/receiver" + "go.opentelemetry.io/collector/receiver/xreceiver" ) // NewFactory returns a receiver.Factory for sample receiver. -func NewFactory() receiver.Factory { - return receiver.NewFactory( +func NewFactory() xreceiver.Factory { + return xreceiver.NewFactory( metadata.Type, func() component.Config { return &struct{}{} }, - receiver.WithTraces(createTraces, metadata.TracesStability), - receiver.WithMetrics(createMetrics, metadata.MetricsStability), - receiver.WithLogs(createLogs, metadata.LogsStability)) + xreceiver.WithTraces(createTraces, metadata.TracesStability), + xreceiver.WithMetrics(createMetrics, metadata.MetricsStability), + xreceiver.WithLogs(createLogs, metadata.LogsStability), + xreceiver.WithProfiles(createProfiles, metadata.ProfilesStability), + ) } func createTraces(context.Context, receiver.Settings, component.Config, consumer.Traces) (receiver.Traces, error) { @@ -49,6 +53,10 @@ func createLogs(context.Context, receiver.Settings, component.Config, consumer.L return nopInstance, nil } +func createProfiles(context.Context, receiver.Settings, component.Config, xconsumer.Profiles) (xreceiver.Profiles, error) { + return nopInstance, nil +} + var nopInstance = &nopReceiver{} type nopReceiver struct { diff --git a/cmd/mdatagen/internal/samplereceiver/generated_component_test.go b/cmd/mdatagen/internal/samplereceiver/generated_component_test.go index 99fa261656c..b27c553c850 100644 --- a/cmd/mdatagen/internal/samplereceiver/generated_component_test.go +++ b/cmd/mdatagen/internal/samplereceiver/generated_component_test.go @@ -15,6 +15,7 @@ import ( "go.opentelemetry.io/collector/consumer/consumertest" "go.opentelemetry.io/collector/receiver" "go.opentelemetry.io/collector/receiver/receivertest" + "go.opentelemetry.io/collector/receiver/xreceiver" ) var typ = component.MustNewType("sample") @@ -55,6 +56,13 @@ func TestComponentLifecycle(t *testing.T) { return factory.CreateTraces(ctx, set, cfg, consumertest.NewNop()) }, }, + + { + name: "profiles", + createFn: func(ctx context.Context, set receiver.Settings, cfg component.Config) (component.Component, error) { + return factory.(xreceiver.Factory).CreateProfiles(ctx, set, cfg, consumertest.NewNop()) + }, + }, } cm, err := confmaptest.LoadConf("metadata.yaml") diff --git a/cmd/mdatagen/internal/templates/component_test.go.tmpl b/cmd/mdatagen/internal/templates/component_test.go.tmpl index 1437e6637c5..28f39f43b1c 100644 --- a/cmd/mdatagen/internal/templates/component_test.go.tmpl +++ b/cmd/mdatagen/internal/templates/component_test.go.tmpl @@ -47,6 +47,9 @@ import ( "go.opentelemetry.io/collector/consumer" "go.opentelemetry.io/collector/consumer/consumertest" "go.opentelemetry.io/collector/pipeline" + {{ if supportsProfiles }} + "go.opentelemetry.io/collector/pipeline/xpipeline" + {{- end }} {{- end }} {{- if or isExporter isProcessor }} "go.opentelemetry.io/collector/pdata/pcommon" @@ -196,6 +199,14 @@ func TestComponentLifecycle(t *testing.T) { return factory.CreateTraces(ctx, set, cfg, consumertest.NewNop()) }, }, +{{ end }} +{{ if supportsProfiles }} + { + name: "profiles", + createFn: func(ctx context.Context, set processor.Settings, cfg component.Config) (component.Component, error) { + return factory.(xprocessor.Factory).CreateProfiles(ctx, set, cfg, consumertest.NewNop()) + }, + }, {{ end }} } @@ -291,6 +302,14 @@ func TestComponentLifecycle(t *testing.T) { return factory.CreateTraces(ctx, set, cfg, consumertest.NewNop()) }, }, +{{ end }} +{{ if supportsProfiles }} + { + name: "profiles", + createFn: func(ctx context.Context, set receiver.Settings, cfg component.Config) (component.Component, error) { + return factory.(xreceiver.Factory).CreateProfiles(ctx, set, cfg, consumertest.NewNop()) + }, + }, {{ end }} } @@ -360,6 +379,14 @@ func TestComponentLifecycle(t *testing.T) { return factory.CreateTraces(ctx, set, cfg) }, }, +{{ end }} +{{ if supportsProfiles }} + { + name: "profiles", + createFn: func(ctx context.Context, set scraper.Settings, cfg component.Config) (component.Component, error) { + return factory.(xscraper.Factory).CreateProfiles(ctx, set, cfg) + }, + }, {{ end }} } @@ -469,6 +496,15 @@ func TestComponentLifecycle(t *testing.T) { }, }, {{ end }} +{{ if supportsLogsToProfiles }} + { + name: "logs_to_profiles", + createFn: func(ctx context.Context, set connector.Settings, cfg component.Config) (component.Component, error) { + router := connector.NewTracesRouter(map[pipeline.ID]xconsumer.Profiles{pipeline.NewID(xpipeline.SignalProfiles): consumertest.NewNop()}) + return factory.(xconnector.Factory).CreateLogsToProfiles(ctx, set, cfg, router) + }, + }, +{{ end }} {{ if supportsMetricsToLogs }} { name: "metrics_to_logs", @@ -496,6 +532,15 @@ func TestComponentLifecycle(t *testing.T) { }, }, {{ end }} +{{ if supportsMetricsToProfiles }} + { + name: "metrics_to_profiles", + createFn: func(ctx context.Context, set connector.Settings, cfg component.Config) (component.Component, error) { + router := connector.NewTracesRouter(map[pipeline.ID]xconsumer.Profiles{pipeline.NewID(xpipeline.SignalProfiles): consumertest.NewNop()}) + return factory.(xconnector.Factory).CreateMetricsToTraces(ctx, set, cfg, router) + }, + }, +{{ end }} {{ if supportsTracesToLogs }} { name: "traces_to_logs", @@ -522,6 +567,51 @@ func TestComponentLifecycle(t *testing.T) { return factory.CreateTracesToTraces(ctx, set, cfg, router) }, }, +{{ end }} +{{ if supportsTracesToProfiles }} + { + name: "traces_to_profiles", + createFn: func(ctx context.Context, set connector.Settings, cfg component.Config) (component.Component, error) { + router := connector.NewTracesRouter(map[pipeline.ID]xconsumer.Profiles{pipeline.NewID(xpipeline.SignalProfiles): consumertest.NewNop()}) + return factory.(xconnector.Factory).CreateTracesToProfiles(ctx, set, cfg, router) + }, + }, +{{ end }} +{{ if supportsProfilesToLogs }} + { + name: "profiles_to_logs", + createFn: func(ctx context.Context, set connector.Settings, cfg component.Config) (component.Component, error) { + router := connector.NewLogsRouter(map[pipeline.ID]consumer.Logs{pipeline.NewID(pipeline.SignalLogs): consumertest.NewNop()}) + return factory.(xconnector.Factory).CreateProfilesToLogs(ctx, set, cfg, router) + }, + }, +{{ end }} +{{ if supportsProfilesToMetrics }} + { + name: "profiles_to_metrics", + createFn: func(ctx context.Context, set connector.Settings, cfg component.Config) (component.Component, error) { + router := connector.NewMetricsRouter(map[pipeline.ID]consumer.Metrics{pipeline.NewID(pipeline.SignalMetrics): consumertest.NewNop()}) + return factory.(xconnector.Factory).CreateProfilesToMetrics(ctx, set, cfg, router) + }, + }, +{{ end }} +{{ if supportsProfilesToTraces }} + { + name: "profiles_to_traces", + createFn: func(ctx context.Context, set connector.Settings, cfg component.Config) (component.Component, error) { + router := connector.NewTracesRouter(map[pipeline.ID]consumer.Traces{pipeline.NewID(pipeline.SignalTraces): consumertest.NewNop()}) + return factory.(xconnector.Factory).CreateProfilesToTraces(ctx, set, cfg, router) + }, + }, +{{ end }} +{{ if supportsProfilesToProfiles }} + { + name: "profiles_to_profiles", + createFn: func(ctx context.Context, set connector.Settings, cfg component.Config) (component.Component, error) { + router := xconnector.NewProfilesRouter(map[pipeline.ID]xconsumer.Profiles{pipeline.NewID(xpipeline.SignalProfiles): consumertest.NewNop()}) + return factory.(xconnector.Factory).CreateProfilesToProfiles(ctx, set, cfg, router) + }, + }, {{ end }} } diff --git a/cmd/mdatagen/internal/testdata/with_tests_profiles_connector.yaml b/cmd/mdatagen/internal/testdata/with_tests_profiles_connector.yaml new file mode 100644 index 00000000000..45e281acba7 --- /dev/null +++ b/cmd/mdatagen/internal/testdata/with_tests_profiles_connector.yaml @@ -0,0 +1,7 @@ +type: foobar + +status: + disable_codecov_badge: true + class: connector + stability: + beta: [traces_to_profiles, metrics_to_profiles, logs_to_profiles, profiles_to_traces, profiles_to_metrics, profiles_to_logs, profiles_to_profiles] diff --git a/connector/forwardconnector/generated_component_test.go b/connector/forwardconnector/generated_component_test.go index c60eef92128..00270ba58fe 100644 --- a/connector/forwardconnector/generated_component_test.go +++ b/connector/forwardconnector/generated_component_test.go @@ -13,9 +13,12 @@ import ( "go.opentelemetry.io/collector/confmap/confmaptest" "go.opentelemetry.io/collector/connector" "go.opentelemetry.io/collector/connector/connectortest" + "go.opentelemetry.io/collector/connector/xconnector" "go.opentelemetry.io/collector/consumer" "go.opentelemetry.io/collector/consumer/consumertest" + "go.opentelemetry.io/collector/consumer/xconsumer" "go.opentelemetry.io/collector/pipeline" + "go.opentelemetry.io/collector/pipeline/xpipeline" ) var typ = component.MustNewType("forward") @@ -59,6 +62,14 @@ func TestComponentLifecycle(t *testing.T) { return factory.CreateTracesToTraces(ctx, set, cfg, router) }, }, + + { + name: "profiles_to_profiles", + createFn: func(ctx context.Context, set connector.Settings, cfg component.Config) (component.Component, error) { + router := xconnector.NewProfilesRouter(map[pipeline.ID]xconsumer.Profiles{pipeline.NewID(xpipeline.SignalProfiles): consumertest.NewNop()}) + return factory.(xconnector.Factory).CreateProfilesToProfiles(ctx, set, cfg, router) + }, + }, } cm, err := confmaptest.LoadConf("metadata.yaml") diff --git a/connector/forwardconnector/go.mod b/connector/forwardconnector/go.mod index 5e061a18699..2fa50afca84 100644 --- a/connector/forwardconnector/go.mod +++ b/connector/forwardconnector/go.mod @@ -16,6 +16,7 @@ require ( go.opentelemetry.io/collector/pdata v1.50.0 go.opentelemetry.io/collector/pdata/pprofile v0.144.0 go.opentelemetry.io/collector/pipeline v1.50.0 + go.opentelemetry.io/collector/pipeline/xpipeline v0.144.0 go.uber.org/goleak v1.3.0 ) @@ -41,7 +42,6 @@ require ( go.opentelemetry.io/collector/featuregate v1.50.0 // indirect go.opentelemetry.io/collector/internal/componentalias v0.144.0 // indirect go.opentelemetry.io/collector/internal/fanoutconsumer v0.144.0 // indirect - go.opentelemetry.io/collector/pipeline/xpipeline v0.144.0 // indirect go.opentelemetry.io/otel v1.39.0 // indirect go.opentelemetry.io/otel/metric v1.39.0 // indirect go.opentelemetry.io/otel/sdk v1.39.0 // indirect diff --git a/processor/memorylimiterprocessor/generated_component_test.go b/processor/memorylimiterprocessor/generated_component_test.go index 908970c7892..00acfb21580 100644 --- a/processor/memorylimiterprocessor/generated_component_test.go +++ b/processor/memorylimiterprocessor/generated_component_test.go @@ -19,6 +19,7 @@ import ( "go.opentelemetry.io/collector/pdata/ptrace" "go.opentelemetry.io/collector/processor" "go.opentelemetry.io/collector/processor/processortest" + "go.opentelemetry.io/collector/processor/xprocessor" ) var typ = component.MustNewType("memory_limiter") @@ -59,6 +60,13 @@ func TestComponentLifecycle(t *testing.T) { return factory.CreateTraces(ctx, set, cfg, consumertest.NewNop()) }, }, + + { + name: "profiles", + createFn: func(ctx context.Context, set processor.Settings, cfg component.Config) (component.Component, error) { + return factory.(xprocessor.Factory).CreateProfiles(ctx, set, cfg, consumertest.NewNop()) + }, + }, } cm, err := confmaptest.LoadConf("metadata.yaml") diff --git a/receiver/nopreceiver/generated_component_test.go b/receiver/nopreceiver/generated_component_test.go index bafdd244664..2be7c59d044 100644 --- a/receiver/nopreceiver/generated_component_test.go +++ b/receiver/nopreceiver/generated_component_test.go @@ -14,6 +14,7 @@ import ( "go.opentelemetry.io/collector/consumer/consumertest" "go.opentelemetry.io/collector/receiver" "go.opentelemetry.io/collector/receiver/receivertest" + "go.opentelemetry.io/collector/receiver/xreceiver" ) var typ = component.MustNewType("nop") @@ -54,6 +55,13 @@ func TestComponentLifecycle(t *testing.T) { return factory.CreateTraces(ctx, set, cfg, consumertest.NewNop()) }, }, + + { + name: "profiles", + createFn: func(ctx context.Context, set receiver.Settings, cfg component.Config) (component.Component, error) { + return factory.(xreceiver.Factory).CreateProfiles(ctx, set, cfg, consumertest.NewNop()) + }, + }, } cm, err := confmaptest.LoadConf("metadata.yaml") diff --git a/receiver/otlpreceiver/generated_component_test.go b/receiver/otlpreceiver/generated_component_test.go index 65113687302..4cb76d776bc 100644 --- a/receiver/otlpreceiver/generated_component_test.go +++ b/receiver/otlpreceiver/generated_component_test.go @@ -14,6 +14,7 @@ import ( "go.opentelemetry.io/collector/consumer/consumertest" "go.opentelemetry.io/collector/receiver" "go.opentelemetry.io/collector/receiver/receivertest" + "go.opentelemetry.io/collector/receiver/xreceiver" ) var typ = component.MustNewType("otlp") @@ -54,6 +55,13 @@ func TestComponentLifecycle(t *testing.T) { return factory.CreateTraces(ctx, set, cfg, consumertest.NewNop()) }, }, + + { + name: "profiles", + createFn: func(ctx context.Context, set receiver.Settings, cfg component.Config) (component.Component, error) { + return factory.(xreceiver.Factory).CreateProfiles(ctx, set, cfg, consumertest.NewNop()) + }, + }, } cm, err := confmaptest.LoadConf("metadata.yaml")