Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions cmd/mdatagen/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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
Expand Down Expand Up @@ -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
Expand Down
32 changes: 20 additions & 12 deletions cmd/mdatagen/internal/command.go
Original file line number Diff line number Diff line change
Expand Up @@ -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
},
Expand Down
6 changes: 6 additions & 0 deletions cmd/mdatagen/internal/command_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down
18 changes: 13 additions & 5 deletions cmd/mdatagen/internal/samplefactoryreceiver/factory.go
Original file line number Diff line number Diff line change
Expand Up @@ -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) {
Expand Down Expand Up @@ -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 {
Expand Down

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

18 changes: 13 additions & 5 deletions cmd/mdatagen/internal/samplereceiver/factory.go
Original file line number Diff line number Diff line change
Expand Up @@ -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) {
Expand Down Expand Up @@ -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 {
Expand Down

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

90 changes: 90 additions & 0 deletions cmd/mdatagen/internal/templates/component_test.go.tmpl
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down Expand Up @@ -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 }}
}

Expand Down Expand Up @@ -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 }}
}

Expand Down Expand Up @@ -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 }}
}

Expand Down Expand Up @@ -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",
Expand Down Expand Up @@ -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",
Expand All @@ -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 }}
}

Expand Down
Original file line number Diff line number Diff line change
@@ -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]
11 changes: 11 additions & 0 deletions connector/forwardconnector/generated_component_test.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion connector/forwardconnector/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -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
)

Expand All @@ -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
Expand Down
Loading
Loading