Skip to content

Commit

Permalink
[chore] add profiles support to connector receiver builder (open-tele…
Browse files Browse the repository at this point in the history
…metry#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
open-telemetry#10375

cc @mx-psi
  • Loading branch information
dmathieu authored Aug 30, 2024
1 parent 7da6b61 commit 32171d2
Show file tree
Hide file tree
Showing 17 changed files with 435 additions and 25 deletions.
2 changes: 2 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -279,6 +279,7 @@ check-contrib:
-replace go.opentelemetry.io/collector/confmap/provider/httpsprovider=$(CURDIR)/confmap/provider/httpsprovider \
-replace go.opentelemetry.io/collector/confmap/provider/yamlprovider=$(CURDIR)/confmap/provider/yamlprovider \
-replace go.opentelemetry.io/collector/connector=$(CURDIR)/connector \
-replace go.opentelemetry.io/collector/connector/connectorprofiles=$(CURDIR)/connector/connectorprofiles \
-replace go.opentelemetry.io/collector/connector/forwardconnector=$(CURDIR)/connector/forwardconnector \
-replace go.opentelemetry.io/collector/consumer=$(CURDIR)/consumer \
-replace go.opentelemetry.io/collector/consumer/consumerprofiles=$(CURDIR)/consumer/consumerprofiles \
Expand Down Expand Up @@ -343,6 +344,7 @@ restore-contrib:
-dropreplace go.opentelemetry.io/collector/confmap/provider/httpsprovider \
-dropreplace go.opentelemetry.io/collector/confmap/provider/yamlprovider \
-dropreplace go.opentelemetry.io/collector/connector \
-dropreplace go.opentelemetry.io/collector/connector/connectorprofiles \
-dropreplace go.opentelemetry.io/collector/connector/forwardconnector \
-dropreplace go.opentelemetry.io/collector/consumer \
-dropreplace go.opentelemetry.io/collector/consumer/consumerprofiles \
Expand Down
1 change: 1 addition & 0 deletions cmd/builder/internal/builder/main_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,7 @@ var (
"/consumer/consumerprofiles",
"/consumer/consumertest",
"/connector",
"/connector/connectorprofiles",
"/exporter",
"/exporter/debugexporter",
"/exporter/nopexporter",
Expand Down
1 change: 1 addition & 0 deletions cmd/builder/test/core.builder.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@ replaces:
- go.opentelemetry.io/collector/consumer/consumerprofiles => ${WORKSPACE_DIR}/consumer/consumerprofiles
- go.opentelemetry.io/collector/consumer/consumertest => ${WORKSPACE_DIR}/consumer/consumertest
- go.opentelemetry.io/collector/connector => ${WORKSPACE_DIR}/connector
- go.opentelemetry.io/collector/connector/connectorprofiles => ${WORKSPACE_DIR}/connector/connectorprofiles
- go.opentelemetry.io/collector/exporter => ${WORKSPACE_DIR}/exporter
- go.opentelemetry.io/collector/exporter/debugexporter => ${WORKSPACE_DIR}/exporter/debugexporter
- go.opentelemetry.io/collector/exporter/loggingexporter => ${WORKSPACE_DIR}/exporter/loggingexporter
Expand Down
1 change: 1 addition & 0 deletions cmd/otelcorecol/builder-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,7 @@ replaces:
- go.opentelemetry.io/collector/consumer/consumerprofiles => ../../consumer/consumerprofiles
- go.opentelemetry.io/collector/consumer/consumertest => ../../consumer/consumertest
- go.opentelemetry.io/collector/connector => ../../connector
- go.opentelemetry.io/collector/connector/connectorprofiles => ../../connector/connectorprofiles
- go.opentelemetry.io/collector/connector/forwardconnector => ../../connector/forwardconnector
- go.opentelemetry.io/collector/exporter => ../../exporter
- go.opentelemetry.io/collector/exporter/debugexporter => ../../exporter/debugexporter
Expand Down
3 changes: 3 additions & 0 deletions cmd/otelcorecol/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,7 @@ require (
go.opentelemetry.io/collector/config/configtelemetry v0.108.1 // indirect
go.opentelemetry.io/collector/config/configtls v1.14.1 // indirect
go.opentelemetry.io/collector/config/internal v0.108.1 // indirect
go.opentelemetry.io/collector/connector/connectorprofiles v0.108.1 // indirect
go.opentelemetry.io/collector/consumer v0.108.1 // indirect
go.opentelemetry.io/collector/consumer/consumerprofiles v0.108.1 // indirect
go.opentelemetry.io/collector/consumer/consumertest v0.108.1 // indirect
Expand Down Expand Up @@ -197,6 +198,8 @@ replace go.opentelemetry.io/collector/consumer/consumertest => ../../consumer/co

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

replace go.opentelemetry.io/collector/connector/connectorprofiles => ../../connector/connectorprofiles

replace go.opentelemetry.io/collector/connector/forwardconnector => ../../connector/forwardconnector

replace go.opentelemetry.io/collector/exporter => ../../exporter
Expand Down
2 changes: 1 addition & 1 deletion connector/connectorprofiles/connector.go
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
// Copyright The OpenTelemetry Authors
// SPDX-License-Identifier: Apache-2.0

package connector // import "go.opentelemetry.io/collector/connector/connectorprofiles"
package connectorprofiles // import "go.opentelemetry.io/collector/connector/connectorprofiles"

import (
"go.opentelemetry.io/collector/component"
Expand Down
2 changes: 1 addition & 1 deletion connector/connectorprofiles/connector_test.go
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
// Copyright The OpenTelemetry Authors
// SPDX-License-Identifier: Apache-2.0

package connector // import "go.opentelemetry.io/collector/connector"
package connectorprofiles // import "go.opentelemetry.io/collector/connector/connectorprofiles"

import (
"context"
Expand Down
34 changes: 34 additions & 0 deletions connector/connectortest/connector.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,9 @@ import (
"go.opentelemetry.io/collector/component"
"go.opentelemetry.io/collector/component/componenttest"
"go.opentelemetry.io/collector/connector"
"go.opentelemetry.io/collector/connector/connectorprofiles"
"go.opentelemetry.io/collector/consumer"
"go.opentelemetry.io/collector/consumer/consumerprofiles"
"go.opentelemetry.io/collector/consumer/consumertest"
)

Expand All @@ -38,12 +40,19 @@ func NewNopFactory() connector.Factory {
connector.WithTracesToTraces(createTracesToTracesConnector, component.StabilityLevelDevelopment),
connector.WithTracesToMetrics(createTracesToMetricsConnector, component.StabilityLevelDevelopment),
connector.WithTracesToLogs(createTracesToLogsConnector, component.StabilityLevelDevelopment),
connectorprofiles.WithTracesToProfiles(createTracesToProfilesConnector, component.StabilityLevelAlpha),
connector.WithMetricsToTraces(createMetricsToTracesConnector, component.StabilityLevelDevelopment),
connector.WithMetricsToMetrics(createMetricsToMetricsConnector, component.StabilityLevelDevelopment),
connector.WithMetricsToLogs(createMetricsToLogsConnector, component.StabilityLevelDevelopment),
connectorprofiles.WithMetricsToProfiles(createMetricsToProfilesConnector, component.StabilityLevelAlpha),
connector.WithLogsToTraces(createLogsToTracesConnector, component.StabilityLevelDevelopment),
connector.WithLogsToMetrics(createLogsToMetricsConnector, component.StabilityLevelDevelopment),
connector.WithLogsToLogs(createLogsToLogsConnector, component.StabilityLevelDevelopment),
connectorprofiles.WithLogsToProfiles(createLogsToProfilesConnector, component.StabilityLevelAlpha),
connectorprofiles.WithProfilesToTraces(createProfilesToTracesConnector, component.StabilityLevelAlpha),
connectorprofiles.WithProfilesToMetrics(createProfilesToMetricsConnector, component.StabilityLevelAlpha),
connectorprofiles.WithProfilesToLogs(createProfilesToLogsConnector, component.StabilityLevelAlpha),
connectorprofiles.WithProfilesToProfiles(createProfilesToProfilesConnector, component.StabilityLevelAlpha),
)
}

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

func createTracesToProfilesConnector(context.Context, connector.Settings, component.Config, consumerprofiles.Profiles) (connector.Traces, error) {
return &nopConnector{Consumer: consumertest.NewNop()}, nil
}

func createMetricsToTracesConnector(context.Context, connector.Settings, component.Config, consumer.Traces) (connector.Metrics, error) {
return &nopConnector{Consumer: consumertest.NewNop()}, nil
}
Expand All @@ -70,6 +83,9 @@ func createMetricsToMetricsConnector(context.Context, connector.Settings, compon
func createMetricsToLogsConnector(context.Context, connector.Settings, component.Config, consumer.Logs) (connector.Metrics, error) {
return &nopConnector{Consumer: consumertest.NewNop()}, nil
}
func createMetricsToProfilesConnector(context.Context, connector.Settings, component.Config, consumerprofiles.Profiles) (connector.Metrics, error) {
return &nopConnector{Consumer: consumertest.NewNop()}, nil
}

func createLogsToTracesConnector(context.Context, connector.Settings, component.Config, consumer.Traces) (connector.Logs, error) {
return &nopConnector{Consumer: consumertest.NewNop()}, nil
Expand All @@ -82,6 +98,24 @@ func createLogsToMetricsConnector(context.Context, connector.Settings, component
func createLogsToLogsConnector(context.Context, connector.Settings, component.Config, consumer.Logs) (connector.Logs, error) {
return &nopConnector{Consumer: consumertest.NewNop()}, nil
}
func createLogsToProfilesConnector(context.Context, connector.Settings, component.Config, consumerprofiles.Profiles) (connector.Logs, error) {
return &nopConnector{Consumer: consumertest.NewNop()}, nil
}

func createProfilesToTracesConnector(context.Context, connector.Settings, component.Config, consumer.Traces) (connectorprofiles.Profiles, error) {
return &nopConnector{Consumer: consumertest.NewNop()}, nil
}

func createProfilesToMetricsConnector(context.Context, connector.Settings, component.Config, consumer.Metrics) (connectorprofiles.Profiles, error) {
return &nopConnector{Consumer: consumertest.NewNop()}, nil
}

func createProfilesToLogsConnector(context.Context, connector.Settings, component.Config, consumer.Logs) (connectorprofiles.Profiles, error) {
return &nopConnector{Consumer: consumertest.NewNop()}, nil
}
func createProfilesToProfilesConnector(context.Context, connector.Settings, component.Config, consumerprofiles.Profiles) (connectorprofiles.Profiles, error) {
return &nopConnector{Consumer: consumertest.NewNop()}, nil
}

// nopConnector stores consumed traces and metrics for testing purposes.
type nopConnector struct {
Expand Down
43 changes: 43 additions & 0 deletions connector/connectortest/connector_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ import (
"go.opentelemetry.io/collector/consumer/consumertest"
"go.opentelemetry.io/collector/pdata/plog"
"go.opentelemetry.io/collector/pdata/pmetric"
"go.opentelemetry.io/collector/pdata/pprofile"
"go.opentelemetry.io/collector/pdata/ptrace"
)

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

tracesToProfiles, err := factory.CreateTracesToProfiles(context.Background(), NewNopSettings(), cfg, consumertest.NewNop())
require.NoError(t, err)
assert.NoError(t, tracesToProfiles.Start(context.Background(), componenttest.NewNopHost()))
assert.NoError(t, tracesToProfiles.ConsumeTraces(context.Background(), ptrace.NewTraces()))
assert.NoError(t, tracesToProfiles.Shutdown(context.Background()))

metricsToTraces, err := factory.CreateMetricsToTraces(context.Background(), NewNopSettings(), cfg, consumertest.NewNop())
require.NoError(t, err)
assert.NoError(t, metricsToTraces.Start(context.Background(), componenttest.NewNopHost()))
Expand All @@ -61,6 +68,12 @@ func TestNewNopConnectorFactory(t *testing.T) {
assert.NoError(t, metricsToLogs.ConsumeMetrics(context.Background(), pmetric.NewMetrics()))
assert.NoError(t, metricsToLogs.Shutdown(context.Background()))

metricsToProfiles, err := factory.CreateMetricsToProfiles(context.Background(), NewNopSettings(), cfg, consumertest.NewNop())
require.NoError(t, err)
assert.NoError(t, metricsToProfiles.Start(context.Background(), componenttest.NewNopHost()))
assert.NoError(t, metricsToProfiles.ConsumeMetrics(context.Background(), pmetric.NewMetrics()))
assert.NoError(t, metricsToProfiles.Shutdown(context.Background()))

logsToTraces, err := factory.CreateLogsToTraces(context.Background(), NewNopSettings(), cfg, consumertest.NewNop())
require.NoError(t, err)
assert.NoError(t, logsToTraces.Start(context.Background(), componenttest.NewNopHost()))
Expand All @@ -78,6 +91,36 @@ func TestNewNopConnectorFactory(t *testing.T) {
assert.NoError(t, logsToLogs.Start(context.Background(), componenttest.NewNopHost()))
assert.NoError(t, logsToLogs.ConsumeLogs(context.Background(), plog.NewLogs()))
assert.NoError(t, logsToLogs.Shutdown(context.Background()))

logsToProfiles, err := factory.CreateLogsToProfiles(context.Background(), NewNopSettings(), cfg, consumertest.NewNop())
require.NoError(t, err)
assert.NoError(t, logsToProfiles.Start(context.Background(), componenttest.NewNopHost()))
assert.NoError(t, logsToProfiles.ConsumeLogs(context.Background(), plog.NewLogs()))
assert.NoError(t, logsToProfiles.Shutdown(context.Background()))

profilesToTraces, err := factory.CreateProfilesToTraces(context.Background(), NewNopSettings(), cfg, consumertest.NewNop())
require.NoError(t, err)
assert.NoError(t, profilesToTraces.Start(context.Background(), componenttest.NewNopHost()))
assert.NoError(t, profilesToTraces.ConsumeProfiles(context.Background(), pprofile.NewProfiles()))
assert.NoError(t, profilesToTraces.Shutdown(context.Background()))

profilesToMetrics, err := factory.CreateProfilesToMetrics(context.Background(), NewNopSettings(), cfg, consumertest.NewNop())
require.NoError(t, err)
assert.NoError(t, profilesToMetrics.Start(context.Background(), componenttest.NewNopHost()))
assert.NoError(t, profilesToMetrics.ConsumeProfiles(context.Background(), pprofile.NewProfiles()))
assert.NoError(t, profilesToMetrics.Shutdown(context.Background()))

profilesToLogs, err := factory.CreateProfilesToProfiles(context.Background(), NewNopSettings(), cfg, consumertest.NewNop())
require.NoError(t, err)
assert.NoError(t, profilesToLogs.Start(context.Background(), componenttest.NewNopHost()))
assert.NoError(t, profilesToLogs.ConsumeProfiles(context.Background(), pprofile.NewProfiles()))
assert.NoError(t, profilesToLogs.Shutdown(context.Background()))

profilesToProfiles, err := factory.CreateProfilesToProfiles(context.Background(), NewNopSettings(), cfg, consumertest.NewNop())
require.NoError(t, err)
assert.NoError(t, profilesToProfiles.Start(context.Background(), componenttest.NewNopHost()))
assert.NoError(t, profilesToProfiles.ConsumeProfiles(context.Background(), pprofile.NewProfiles()))
assert.NoError(t, profilesToProfiles.Shutdown(context.Background()))
}

func TestNewNopBuilder(t *testing.T) {
Expand Down
3 changes: 3 additions & 0 deletions connector/forwardconnector/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ require (
go.opentelemetry.io/collector v0.108.1 // indirect
go.opentelemetry.io/collector/component/componentprofiles v0.108.1 // indirect
go.opentelemetry.io/collector/config/configtelemetry v0.108.1 // indirect
go.opentelemetry.io/collector/connector/connectorprofiles v0.108.1 // indirect
go.opentelemetry.io/collector/consumer/consumerprofiles v0.108.1 // indirect
go.opentelemetry.io/collector/pdata/pprofile v0.108.1 // indirect
go.opentelemetry.io/otel v1.29.0 // indirect
Expand Down Expand Up @@ -91,3 +92,5 @@ replace go.opentelemetry.io/collector/consumer/consumertest => ../../consumer/co
replace go.opentelemetry.io/collector/component/componentprofiles => ../../component/componentprofiles

replace go.opentelemetry.io/collector/component/componentstatus => ../../component/componentstatus

replace go.opentelemetry.io/collector/connector/connectorprofiles => ../connectorprofiles
5 changes: 4 additions & 1 deletion connector/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,12 @@ require (
go.opentelemetry.io/collector v0.108.1
go.opentelemetry.io/collector/component v0.108.1
go.opentelemetry.io/collector/component/componentprofiles v0.108.1
go.opentelemetry.io/collector/connector/connectorprofiles v0.108.1
go.opentelemetry.io/collector/consumer v0.108.1
go.opentelemetry.io/collector/consumer/consumerprofiles v0.108.1
go.opentelemetry.io/collector/consumer/consumertest v0.108.1
go.opentelemetry.io/collector/pdata v1.14.1
go.opentelemetry.io/collector/pdata/pprofile v0.108.1
go.opentelemetry.io/collector/pdata/testdata v0.108.1
go.uber.org/goleak v1.3.0
go.uber.org/multierr v1.11.0
Expand All @@ -36,7 +38,6 @@ require (
github.com/prometheus/common v0.56.0 // indirect
github.com/prometheus/procfs v0.15.1 // indirect
go.opentelemetry.io/collector/config/configtelemetry v0.108.1 // indirect
go.opentelemetry.io/collector/pdata/pprofile v0.108.1 // indirect
go.opentelemetry.io/otel v1.29.0 // indirect
go.opentelemetry.io/otel/exporters/prometheus v0.51.0 // indirect
go.opentelemetry.io/otel/metric v1.29.0 // indirect
Expand Down Expand Up @@ -77,3 +78,5 @@ replace go.opentelemetry.io/collector/consumer/consumertest => ../consumer/consu
replace go.opentelemetry.io/collector/component/componentprofiles => ../component/componentprofiles

replace go.opentelemetry.io/collector/component/componentstatus => ../component/componentstatus

replace go.opentelemetry.io/collector/connector/connectorprofiles => ./connectorprofiles
3 changes: 3 additions & 0 deletions internal/e2e/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -76,6 +76,7 @@ require (
go.opentelemetry.io/collector/config/configcompression v1.14.1 // indirect
go.opentelemetry.io/collector/config/confignet v0.108.1 // indirect
go.opentelemetry.io/collector/config/internal v0.108.1 // indirect
go.opentelemetry.io/collector/connector/connectorprofiles v0.108.1 // indirect
go.opentelemetry.io/collector/consumer/consumerprofiles v0.108.1 // indirect
go.opentelemetry.io/collector/extension/auth v0.108.1 // indirect
go.opentelemetry.io/collector/featuregate v1.14.1 // indirect
Expand Down Expand Up @@ -194,3 +195,5 @@ replace go.opentelemetry.io/collector/internal/globalgates => ../globalgates
replace go.opentelemetry.io/collector/receiver/receiverprofiles => ../../receiver/receiverprofiles

replace go.opentelemetry.io/collector/processor/processorprofiles => ../../processor/processorprofiles

replace go.opentelemetry.io/collector/connector/connectorprofiles => ../../connector/connectorprofiles
3 changes: 3 additions & 0 deletions otelcol/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,7 @@ require (
github.com/yusufpapurcu/wmi v1.2.4 // indirect
go.opentelemetry.io/collector v0.108.1 // indirect
go.opentelemetry.io/collector/component/componentprofiles v0.108.1 // indirect
go.opentelemetry.io/collector/connector/connectorprofiles v0.108.1 // indirect
go.opentelemetry.io/collector/consumer v0.108.1 // indirect
go.opentelemetry.io/collector/consumer/consumerprofiles v0.108.1 // indirect
go.opentelemetry.io/collector/consumer/consumertest v0.108.1 // indirect
Expand Down Expand Up @@ -167,3 +168,5 @@ replace go.opentelemetry.io/collector/component/componentstatus => ../component/
replace go.opentelemetry.io/collector/receiver/receiverprofiles => ../receiver/receiverprofiles

replace go.opentelemetry.io/collector/processor/processorprofiles => ../processor/processorprofiles

replace go.opentelemetry.io/collector/connector/connectorprofiles => ../connector/connectorprofiles
3 changes: 3 additions & 0 deletions otelcol/otelcoltest/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,7 @@ require (
go.opentelemetry.io/collector/component/componentprofiles v0.108.1 // indirect
go.opentelemetry.io/collector/component/componentstatus v0.108.1 // indirect
go.opentelemetry.io/collector/config/configtelemetry v0.108.1 // indirect
go.opentelemetry.io/collector/connector/connectorprofiles v0.108.1 // indirect
go.opentelemetry.io/collector/consumer v0.108.1 // indirect
go.opentelemetry.io/collector/consumer/consumerprofiles v0.108.1 // indirect
go.opentelemetry.io/collector/consumer/consumertest v0.108.1 // indirect
Expand Down Expand Up @@ -182,3 +183,5 @@ replace go.opentelemetry.io/collector/component/componentstatus => ../../compone
replace go.opentelemetry.io/collector/receiver/receiverprofiles => ../../receiver/receiverprofiles

replace go.opentelemetry.io/collector/processor/processorprofiles => ../../processor/processorprofiles

replace go.opentelemetry.io/collector/connector/connectorprofiles => ../../connector/connectorprofiles
Loading

0 comments on commit 32171d2

Please sign in to comment.