Skip to content

Commit 32171d2

Browse files
authored
[chore] add profiles support to connector receiver builder (#10956)
<!--Ex. Fixing a bug - Describe the bug and how this fixes the issue. Ex. Adding a feature - Explain what this achieves.--> #### Description This allows building profiles in the connector builder. As this is only changing internal modules, I am marking it as chore (and skipping changelog entry). #### Link to tracking issue #10375 cc @mx-psi
1 parent 7da6b61 commit 32171d2

File tree

17 files changed

+435
-25
lines changed

17 files changed

+435
-25
lines changed

Makefile

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -279,6 +279,7 @@ check-contrib:
279279
-replace go.opentelemetry.io/collector/confmap/provider/httpsprovider=$(CURDIR)/confmap/provider/httpsprovider \
280280
-replace go.opentelemetry.io/collector/confmap/provider/yamlprovider=$(CURDIR)/confmap/provider/yamlprovider \
281281
-replace go.opentelemetry.io/collector/connector=$(CURDIR)/connector \
282+
-replace go.opentelemetry.io/collector/connector/connectorprofiles=$(CURDIR)/connector/connectorprofiles \
282283
-replace go.opentelemetry.io/collector/connector/forwardconnector=$(CURDIR)/connector/forwardconnector \
283284
-replace go.opentelemetry.io/collector/consumer=$(CURDIR)/consumer \
284285
-replace go.opentelemetry.io/collector/consumer/consumerprofiles=$(CURDIR)/consumer/consumerprofiles \
@@ -343,6 +344,7 @@ restore-contrib:
343344
-dropreplace go.opentelemetry.io/collector/confmap/provider/httpsprovider \
344345
-dropreplace go.opentelemetry.io/collector/confmap/provider/yamlprovider \
345346
-dropreplace go.opentelemetry.io/collector/connector \
347+
-dropreplace go.opentelemetry.io/collector/connector/connectorprofiles \
346348
-dropreplace go.opentelemetry.io/collector/connector/forwardconnector \
347349
-dropreplace go.opentelemetry.io/collector/consumer \
348350
-dropreplace go.opentelemetry.io/collector/consumer/consumerprofiles \

cmd/builder/internal/builder/main_test.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,7 @@ var (
6464
"/consumer/consumerprofiles",
6565
"/consumer/consumertest",
6666
"/connector",
67+
"/connector/connectorprofiles",
6768
"/exporter",
6869
"/exporter/debugexporter",
6970
"/exporter/nopexporter",

cmd/builder/test/core.builder.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ replaces:
4343
- go.opentelemetry.io/collector/consumer/consumerprofiles => ${WORKSPACE_DIR}/consumer/consumerprofiles
4444
- go.opentelemetry.io/collector/consumer/consumertest => ${WORKSPACE_DIR}/consumer/consumertest
4545
- go.opentelemetry.io/collector/connector => ${WORKSPACE_DIR}/connector
46+
- go.opentelemetry.io/collector/connector/connectorprofiles => ${WORKSPACE_DIR}/connector/connectorprofiles
4647
- go.opentelemetry.io/collector/exporter => ${WORKSPACE_DIR}/exporter
4748
- go.opentelemetry.io/collector/exporter/debugexporter => ${WORKSPACE_DIR}/exporter/debugexporter
4849
- go.opentelemetry.io/collector/exporter/loggingexporter => ${WORKSPACE_DIR}/exporter/loggingexporter

cmd/otelcorecol/builder-config.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@ replaces:
6767
- go.opentelemetry.io/collector/consumer/consumerprofiles => ../../consumer/consumerprofiles
6868
- go.opentelemetry.io/collector/consumer/consumertest => ../../consumer/consumertest
6969
- go.opentelemetry.io/collector/connector => ../../connector
70+
- go.opentelemetry.io/collector/connector/connectorprofiles => ../../connector/connectorprofiles
7071
- go.opentelemetry.io/collector/connector/forwardconnector => ../../connector/forwardconnector
7172
- go.opentelemetry.io/collector/exporter => ../../exporter
7273
- go.opentelemetry.io/collector/exporter/debugexporter => ../../exporter/debugexporter

cmd/otelcorecol/go.mod

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,7 @@ require (
9494
go.opentelemetry.io/collector/config/configtelemetry v0.108.1 // indirect
9595
go.opentelemetry.io/collector/config/configtls v1.14.1 // indirect
9696
go.opentelemetry.io/collector/config/internal v0.108.1 // indirect
97+
go.opentelemetry.io/collector/connector/connectorprofiles v0.108.1 // indirect
9798
go.opentelemetry.io/collector/consumer v0.108.1 // indirect
9899
go.opentelemetry.io/collector/consumer/consumerprofiles v0.108.1 // indirect
99100
go.opentelemetry.io/collector/consumer/consumertest v0.108.1 // indirect
@@ -197,6 +198,8 @@ replace go.opentelemetry.io/collector/consumer/consumertest => ../../consumer/co
197198

198199
replace go.opentelemetry.io/collector/connector => ../../connector
199200

201+
replace go.opentelemetry.io/collector/connector/connectorprofiles => ../../connector/connectorprofiles
202+
200203
replace go.opentelemetry.io/collector/connector/forwardconnector => ../../connector/forwardconnector
201204

202205
replace go.opentelemetry.io/collector/exporter => ../../exporter

connector/connectorprofiles/connector.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
// Copyright The OpenTelemetry Authors
22
// SPDX-License-Identifier: Apache-2.0
33

4-
package connector // import "go.opentelemetry.io/collector/connector/connectorprofiles"
4+
package connectorprofiles // import "go.opentelemetry.io/collector/connector/connectorprofiles"
55

66
import (
77
"go.opentelemetry.io/collector/component"

connector/connectorprofiles/connector_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
// Copyright The OpenTelemetry Authors
22
// SPDX-License-Identifier: Apache-2.0
33

4-
package connector // import "go.opentelemetry.io/collector/connector"
4+
package connectorprofiles // import "go.opentelemetry.io/collector/connector/connectorprofiles"
55

66
import (
77
"context"

connector/connectortest/connector.go

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,9 @@ import (
1111
"go.opentelemetry.io/collector/component"
1212
"go.opentelemetry.io/collector/component/componenttest"
1313
"go.opentelemetry.io/collector/connector"
14+
"go.opentelemetry.io/collector/connector/connectorprofiles"
1415
"go.opentelemetry.io/collector/consumer"
16+
"go.opentelemetry.io/collector/consumer/consumerprofiles"
1517
"go.opentelemetry.io/collector/consumer/consumertest"
1618
)
1719

@@ -38,12 +40,19 @@ func NewNopFactory() connector.Factory {
3840
connector.WithTracesToTraces(createTracesToTracesConnector, component.StabilityLevelDevelopment),
3941
connector.WithTracesToMetrics(createTracesToMetricsConnector, component.StabilityLevelDevelopment),
4042
connector.WithTracesToLogs(createTracesToLogsConnector, component.StabilityLevelDevelopment),
43+
connectorprofiles.WithTracesToProfiles(createTracesToProfilesConnector, component.StabilityLevelAlpha),
4144
connector.WithMetricsToTraces(createMetricsToTracesConnector, component.StabilityLevelDevelopment),
4245
connector.WithMetricsToMetrics(createMetricsToMetricsConnector, component.StabilityLevelDevelopment),
4346
connector.WithMetricsToLogs(createMetricsToLogsConnector, component.StabilityLevelDevelopment),
47+
connectorprofiles.WithMetricsToProfiles(createMetricsToProfilesConnector, component.StabilityLevelAlpha),
4448
connector.WithLogsToTraces(createLogsToTracesConnector, component.StabilityLevelDevelopment),
4549
connector.WithLogsToMetrics(createLogsToMetricsConnector, component.StabilityLevelDevelopment),
4650
connector.WithLogsToLogs(createLogsToLogsConnector, component.StabilityLevelDevelopment),
51+
connectorprofiles.WithLogsToProfiles(createLogsToProfilesConnector, component.StabilityLevelAlpha),
52+
connectorprofiles.WithProfilesToTraces(createProfilesToTracesConnector, component.StabilityLevelAlpha),
53+
connectorprofiles.WithProfilesToMetrics(createProfilesToMetricsConnector, component.StabilityLevelAlpha),
54+
connectorprofiles.WithProfilesToLogs(createProfilesToLogsConnector, component.StabilityLevelAlpha),
55+
connectorprofiles.WithProfilesToProfiles(createProfilesToProfilesConnector, component.StabilityLevelAlpha),
4756
)
4857
}
4958

@@ -59,6 +68,10 @@ func createTracesToLogsConnector(context.Context, connector.Settings, component.
5968
return &nopConnector{Consumer: consumertest.NewNop()}, nil
6069
}
6170

71+
func createTracesToProfilesConnector(context.Context, connector.Settings, component.Config, consumerprofiles.Profiles) (connector.Traces, error) {
72+
return &nopConnector{Consumer: consumertest.NewNop()}, nil
73+
}
74+
6275
func createMetricsToTracesConnector(context.Context, connector.Settings, component.Config, consumer.Traces) (connector.Metrics, error) {
6376
return &nopConnector{Consumer: consumertest.NewNop()}, nil
6477
}
@@ -70,6 +83,9 @@ func createMetricsToMetricsConnector(context.Context, connector.Settings, compon
7083
func createMetricsToLogsConnector(context.Context, connector.Settings, component.Config, consumer.Logs) (connector.Metrics, error) {
7184
return &nopConnector{Consumer: consumertest.NewNop()}, nil
7285
}
86+
func createMetricsToProfilesConnector(context.Context, connector.Settings, component.Config, consumerprofiles.Profiles) (connector.Metrics, error) {
87+
return &nopConnector{Consumer: consumertest.NewNop()}, nil
88+
}
7389

7490
func createLogsToTracesConnector(context.Context, connector.Settings, component.Config, consumer.Traces) (connector.Logs, error) {
7591
return &nopConnector{Consumer: consumertest.NewNop()}, nil
@@ -82,6 +98,24 @@ func createLogsToMetricsConnector(context.Context, connector.Settings, component
8298
func createLogsToLogsConnector(context.Context, connector.Settings, component.Config, consumer.Logs) (connector.Logs, error) {
8399
return &nopConnector{Consumer: consumertest.NewNop()}, nil
84100
}
101+
func createLogsToProfilesConnector(context.Context, connector.Settings, component.Config, consumerprofiles.Profiles) (connector.Logs, error) {
102+
return &nopConnector{Consumer: consumertest.NewNop()}, nil
103+
}
104+
105+
func createProfilesToTracesConnector(context.Context, connector.Settings, component.Config, consumer.Traces) (connectorprofiles.Profiles, error) {
106+
return &nopConnector{Consumer: consumertest.NewNop()}, nil
107+
}
108+
109+
func createProfilesToMetricsConnector(context.Context, connector.Settings, component.Config, consumer.Metrics) (connectorprofiles.Profiles, error) {
110+
return &nopConnector{Consumer: consumertest.NewNop()}, nil
111+
}
112+
113+
func createProfilesToLogsConnector(context.Context, connector.Settings, component.Config, consumer.Logs) (connectorprofiles.Profiles, error) {
114+
return &nopConnector{Consumer: consumertest.NewNop()}, nil
115+
}
116+
func createProfilesToProfilesConnector(context.Context, connector.Settings, component.Config, consumerprofiles.Profiles) (connectorprofiles.Profiles, error) {
117+
return &nopConnector{Consumer: consumertest.NewNop()}, nil
118+
}
85119

86120
// nopConnector stores consumed traces and metrics for testing purposes.
87121
type nopConnector struct {

connector/connectortest/connector_test.go

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import (
1515
"go.opentelemetry.io/collector/consumer/consumertest"
1616
"go.opentelemetry.io/collector/pdata/plog"
1717
"go.opentelemetry.io/collector/pdata/pmetric"
18+
"go.opentelemetry.io/collector/pdata/pprofile"
1819
"go.opentelemetry.io/collector/pdata/ptrace"
1920
)
2021

@@ -43,6 +44,12 @@ func TestNewNopConnectorFactory(t *testing.T) {
4344
assert.NoError(t, tracesToLogs.ConsumeTraces(context.Background(), ptrace.NewTraces()))
4445
assert.NoError(t, tracesToLogs.Shutdown(context.Background()))
4546

47+
tracesToProfiles, err := factory.CreateTracesToProfiles(context.Background(), NewNopSettings(), cfg, consumertest.NewNop())
48+
require.NoError(t, err)
49+
assert.NoError(t, tracesToProfiles.Start(context.Background(), componenttest.NewNopHost()))
50+
assert.NoError(t, tracesToProfiles.ConsumeTraces(context.Background(), ptrace.NewTraces()))
51+
assert.NoError(t, tracesToProfiles.Shutdown(context.Background()))
52+
4653
metricsToTraces, err := factory.CreateMetricsToTraces(context.Background(), NewNopSettings(), cfg, consumertest.NewNop())
4754
require.NoError(t, err)
4855
assert.NoError(t, metricsToTraces.Start(context.Background(), componenttest.NewNopHost()))
@@ -61,6 +68,12 @@ func TestNewNopConnectorFactory(t *testing.T) {
6168
assert.NoError(t, metricsToLogs.ConsumeMetrics(context.Background(), pmetric.NewMetrics()))
6269
assert.NoError(t, metricsToLogs.Shutdown(context.Background()))
6370

71+
metricsToProfiles, err := factory.CreateMetricsToProfiles(context.Background(), NewNopSettings(), cfg, consumertest.NewNop())
72+
require.NoError(t, err)
73+
assert.NoError(t, metricsToProfiles.Start(context.Background(), componenttest.NewNopHost()))
74+
assert.NoError(t, metricsToProfiles.ConsumeMetrics(context.Background(), pmetric.NewMetrics()))
75+
assert.NoError(t, metricsToProfiles.Shutdown(context.Background()))
76+
6477
logsToTraces, err := factory.CreateLogsToTraces(context.Background(), NewNopSettings(), cfg, consumertest.NewNop())
6578
require.NoError(t, err)
6679
assert.NoError(t, logsToTraces.Start(context.Background(), componenttest.NewNopHost()))
@@ -78,6 +91,36 @@ func TestNewNopConnectorFactory(t *testing.T) {
7891
assert.NoError(t, logsToLogs.Start(context.Background(), componenttest.NewNopHost()))
7992
assert.NoError(t, logsToLogs.ConsumeLogs(context.Background(), plog.NewLogs()))
8093
assert.NoError(t, logsToLogs.Shutdown(context.Background()))
94+
95+
logsToProfiles, err := factory.CreateLogsToProfiles(context.Background(), NewNopSettings(), cfg, consumertest.NewNop())
96+
require.NoError(t, err)
97+
assert.NoError(t, logsToProfiles.Start(context.Background(), componenttest.NewNopHost()))
98+
assert.NoError(t, logsToProfiles.ConsumeLogs(context.Background(), plog.NewLogs()))
99+
assert.NoError(t, logsToProfiles.Shutdown(context.Background()))
100+
101+
profilesToTraces, err := factory.CreateProfilesToTraces(context.Background(), NewNopSettings(), cfg, consumertest.NewNop())
102+
require.NoError(t, err)
103+
assert.NoError(t, profilesToTraces.Start(context.Background(), componenttest.NewNopHost()))
104+
assert.NoError(t, profilesToTraces.ConsumeProfiles(context.Background(), pprofile.NewProfiles()))
105+
assert.NoError(t, profilesToTraces.Shutdown(context.Background()))
106+
107+
profilesToMetrics, err := factory.CreateProfilesToMetrics(context.Background(), NewNopSettings(), cfg, consumertest.NewNop())
108+
require.NoError(t, err)
109+
assert.NoError(t, profilesToMetrics.Start(context.Background(), componenttest.NewNopHost()))
110+
assert.NoError(t, profilesToMetrics.ConsumeProfiles(context.Background(), pprofile.NewProfiles()))
111+
assert.NoError(t, profilesToMetrics.Shutdown(context.Background()))
112+
113+
profilesToLogs, err := factory.CreateProfilesToProfiles(context.Background(), NewNopSettings(), cfg, consumertest.NewNop())
114+
require.NoError(t, err)
115+
assert.NoError(t, profilesToLogs.Start(context.Background(), componenttest.NewNopHost()))
116+
assert.NoError(t, profilesToLogs.ConsumeProfiles(context.Background(), pprofile.NewProfiles()))
117+
assert.NoError(t, profilesToLogs.Shutdown(context.Background()))
118+
119+
profilesToProfiles, err := factory.CreateProfilesToProfiles(context.Background(), NewNopSettings(), cfg, consumertest.NewNop())
120+
require.NoError(t, err)
121+
assert.NoError(t, profilesToProfiles.Start(context.Background(), componenttest.NewNopHost()))
122+
assert.NoError(t, profilesToProfiles.ConsumeProfiles(context.Background(), pprofile.NewProfiles()))
123+
assert.NoError(t, profilesToProfiles.Shutdown(context.Background()))
81124
}
82125

83126
func TestNewNopBuilder(t *testing.T) {

connector/forwardconnector/go.mod

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ require (
4040
go.opentelemetry.io/collector v0.108.1 // indirect
4141
go.opentelemetry.io/collector/component/componentprofiles v0.108.1 // indirect
4242
go.opentelemetry.io/collector/config/configtelemetry v0.108.1 // indirect
43+
go.opentelemetry.io/collector/connector/connectorprofiles v0.108.1 // indirect
4344
go.opentelemetry.io/collector/consumer/consumerprofiles v0.108.1 // indirect
4445
go.opentelemetry.io/collector/pdata/pprofile v0.108.1 // indirect
4546
go.opentelemetry.io/otel v1.29.0 // indirect
@@ -91,3 +92,5 @@ replace go.opentelemetry.io/collector/consumer/consumertest => ../../consumer/co
9192
replace go.opentelemetry.io/collector/component/componentprofiles => ../../component/componentprofiles
9293

9394
replace go.opentelemetry.io/collector/component/componentstatus => ../../component/componentstatus
95+
96+
replace go.opentelemetry.io/collector/connector/connectorprofiles => ../connectorprofiles

0 commit comments

Comments
 (0)