Skip to content

Commit c5dbf54

Browse files
authored
[chore] add profiles support to exporter receiver builder (#10954)
<!--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 exporter 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 32171d2 commit c5dbf54

File tree

17 files changed

+94
-3
lines changed

17 files changed

+94
-3
lines changed

cmd/builder/internal/builder/main_test.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@ var (
6767
"/connector/connectorprofiles",
6868
"/exporter",
6969
"/exporter/debugexporter",
70+
"/exporter/exporterprofiles",
7071
"/exporter/nopexporter",
7172
"/exporter/otlpexporter",
7273
"/exporter/otlphttpexporter",

cmd/otelcorecol/builder-config.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,7 @@ replaces:
7171
- go.opentelemetry.io/collector/connector/forwardconnector => ../../connector/forwardconnector
7272
- go.opentelemetry.io/collector/exporter => ../../exporter
7373
- go.opentelemetry.io/collector/exporter/debugexporter => ../../exporter/debugexporter
74+
- go.opentelemetry.io/collector/exporter/exporterprofiles => ../../exporter/exporterprofiles
7475
- go.opentelemetry.io/collector/exporter/loggingexporter => ../../exporter/loggingexporter
7576
- go.opentelemetry.io/collector/exporter/nopexporter => ../../exporter/nopexporter
7677
- go.opentelemetry.io/collector/exporter/otlpexporter => ../../exporter/otlpexporter

cmd/otelcorecol/go.mod

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,7 @@ require (
9898
go.opentelemetry.io/collector/consumer v0.108.1 // indirect
9999
go.opentelemetry.io/collector/consumer/consumerprofiles v0.108.1 // indirect
100100
go.opentelemetry.io/collector/consumer/consumertest v0.108.1 // indirect
101+
go.opentelemetry.io/collector/exporter/exporterprofiles v0.108.1 // indirect
101102
go.opentelemetry.io/collector/extension/auth v0.108.1 // indirect
102103
go.opentelemetry.io/collector/featuregate v1.14.1 // indirect
103104
go.opentelemetry.io/collector/internal/globalgates v0.108.1 // indirect
@@ -206,6 +207,8 @@ replace go.opentelemetry.io/collector/exporter => ../../exporter
206207

207208
replace go.opentelemetry.io/collector/exporter/debugexporter => ../../exporter/debugexporter
208209

210+
replace go.opentelemetry.io/collector/exporter/exporterprofiles => ../../exporter/exporterprofiles
211+
209212
replace go.opentelemetry.io/collector/exporter/loggingexporter => ../../exporter/loggingexporter
210213

211214
replace go.opentelemetry.io/collector/exporter/nopexporter => ../../exporter/nopexporter

exporter/debugexporter/go.mod

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ require (
4444
go.opentelemetry.io/collector/config/configretry v1.14.1 // indirect
4545
go.opentelemetry.io/collector/consumer/consumerprofiles v0.108.1 // indirect
4646
go.opentelemetry.io/collector/consumer/consumertest v0.108.1 // indirect
47+
go.opentelemetry.io/collector/exporter/exporterprofiles v0.108.1 // indirect
4748
go.opentelemetry.io/collector/extension v0.108.1 // indirect
4849
go.opentelemetry.io/collector/pdata/pprofile v0.108.1 // indirect
4950
go.opentelemetry.io/collector/receiver v0.108.1 // indirect
@@ -97,3 +98,5 @@ replace go.opentelemetry.io/collector/consumer/consumertest => ../../consumer/co
9798
replace go.opentelemetry.io/collector/component/componentstatus => ../../component/componentstatus
9899

99100
replace go.opentelemetry.io/collector/receiver/receiverprofiles => ../../receiver/receiverprofiles
101+
102+
replace go.opentelemetry.io/collector/exporter/exporterprofiles => ../exporterprofiles

exporter/exportertest/nop_exporter.go

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import (
1212
"go.opentelemetry.io/collector/component/componenttest"
1313
"go.opentelemetry.io/collector/consumer/consumertest"
1414
"go.opentelemetry.io/collector/exporter"
15+
"go.opentelemetry.io/collector/exporter/exporterprofiles"
1516
)
1617

1718
var nopType = component.MustNewType("nop")
@@ -33,6 +34,7 @@ func NewNopFactory() exporter.Factory {
3334
exporter.WithTraces(createTracesExporter, component.StabilityLevelStable),
3435
exporter.WithMetrics(createMetricsExporter, component.StabilityLevelStable),
3536
exporter.WithLogs(createLogsExporter, component.StabilityLevelStable),
37+
exporterprofiles.WithProfiles(createProfilesExporter, component.StabilityLevelAlpha),
3638
)
3739
}
3840

@@ -48,13 +50,17 @@ func createLogsExporter(context.Context, exporter.Settings, component.Config) (e
4850
return nopInstance, nil
4951
}
5052

53+
func createProfilesExporter(context.Context, exporter.Settings, component.Config) (exporterprofiles.Profiles, error) {
54+
return nopInstance, nil
55+
}
56+
5157
type nopConfig struct{}
5258

5359
var nopInstance = &nopExporter{
5460
Consumer: consumertest.NewNop(),
5561
}
5662

57-
// nopExporter stores consumed traces and metrics for testing purposes.
63+
// nopExporter stores consumed traces, metrics, logs and profiles for testing purposes.
5864
type nopExporter struct {
5965
component.StartFunc
6066
component.ShutdownFunc

exporter/exportertest/nop_exporter_test.go

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import (
1414
"go.opentelemetry.io/collector/component/componenttest"
1515
"go.opentelemetry.io/collector/pdata/plog"
1616
"go.opentelemetry.io/collector/pdata/pmetric"
17+
"go.opentelemetry.io/collector/pdata/pprofile"
1718
"go.opentelemetry.io/collector/pdata/ptrace"
1819
)
1920

@@ -41,6 +42,12 @@ func TestNewNopFactory(t *testing.T) {
4142
assert.NoError(t, logs.Start(context.Background(), componenttest.NewNopHost()))
4243
assert.NoError(t, logs.ConsumeLogs(context.Background(), plog.NewLogs()))
4344
assert.NoError(t, logs.Shutdown(context.Background()))
45+
46+
profiles, err := factory.CreateProfilesExporter(context.Background(), NewNopSettings(), cfg)
47+
require.NoError(t, err)
48+
assert.NoError(t, profiles.Start(context.Background(), componenttest.NewNopHost()))
49+
assert.NoError(t, profiles.ConsumeProfiles(context.Background(), pprofile.NewProfiles()))
50+
assert.NoError(t, profiles.Shutdown(context.Background()))
4451
}
4552

4653
func TestNewNopBuilder(t *testing.T) {

exporter/go.mod

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,10 @@ require (
1313
go.opentelemetry.io/collector/consumer v0.108.1
1414
go.opentelemetry.io/collector/consumer/consumerprofiles v0.108.1
1515
go.opentelemetry.io/collector/consumer/consumertest v0.108.1
16+
go.opentelemetry.io/collector/exporter/exporterprofiles v0.108.1
1617
go.opentelemetry.io/collector/extension v0.108.1
1718
go.opentelemetry.io/collector/pdata v1.14.1
19+
go.opentelemetry.io/collector/pdata/pprofile v0.108.1
1820
go.opentelemetry.io/collector/pdata/testdata v0.108.1
1921
go.opentelemetry.io/collector/receiver v0.108.1
2022
go.opentelemetry.io/otel v1.29.0
@@ -54,7 +56,6 @@ require (
5456
github.com/prometheus/procfs v0.15.1 // indirect
5557
go.opentelemetry.io/collector/component/componentstatus v0.108.1 // indirect
5658
go.opentelemetry.io/collector/confmap v1.14.1 // indirect
57-
go.opentelemetry.io/collector/pdata/pprofile v0.108.1 // indirect
5859
go.opentelemetry.io/collector/receiver/receiverprofiles v0.108.1 // indirect
5960
go.opentelemetry.io/otel/exporters/prometheus v0.51.0 // indirect
6061
golang.org/x/net v0.28.0 // indirect
@@ -97,3 +98,5 @@ replace go.opentelemetry.io/collector/consumer/consumertest => ../consumer/consu
9798
replace go.opentelemetry.io/collector/component/componentstatus => ../component/componentstatus
9899

99100
replace go.opentelemetry.io/collector/receiver/receiverprofiles => ../receiver/receiverprofiles
101+
102+
replace go.opentelemetry.io/collector/exporter/exporterprofiles => ./exporterprofiles

exporter/loggingexporter/go.mod

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ require (
4444
go.opentelemetry.io/collector/consumer v0.108.1 // indirect
4545
go.opentelemetry.io/collector/consumer/consumerprofiles v0.108.1 // indirect
4646
go.opentelemetry.io/collector/consumer/consumertest v0.108.1 // indirect
47+
go.opentelemetry.io/collector/exporter/exporterprofiles v0.108.1 // indirect
4748
go.opentelemetry.io/collector/extension v0.108.1 // indirect
4849
go.opentelemetry.io/collector/pdata/pprofile v0.108.1 // indirect
4950
go.opentelemetry.io/collector/receiver v0.108.1 // indirect
@@ -102,3 +103,5 @@ replace go.opentelemetry.io/collector/consumer/consumertest => ../../consumer/co
102103
replace go.opentelemetry.io/collector/component/componentstatus => ../../component/componentstatus
103104

104105
replace go.opentelemetry.io/collector/receiver/receiverprofiles => ../../receiver/receiverprofiles
106+
107+
replace go.opentelemetry.io/collector/exporter/exporterprofiles => ../exporterprofiles

exporter/nopexporter/go.mod

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ require (
3939
go.opentelemetry.io/collector/config/configtelemetry v0.108.1 // indirect
4040
go.opentelemetry.io/collector/consumer v0.108.1 // indirect
4141
go.opentelemetry.io/collector/consumer/consumerprofiles v0.108.1 // indirect
42+
go.opentelemetry.io/collector/exporter/exporterprofiles v0.108.1 // indirect
4243
go.opentelemetry.io/collector/pdata/pprofile v0.108.1 // indirect
4344
go.opentelemetry.io/collector/receiver v0.108.1 // indirect
4445
go.opentelemetry.io/collector/receiver/receiverprofiles v0.108.1 // indirect
@@ -92,3 +93,5 @@ replace go.opentelemetry.io/collector/consumer/consumertest => ../../consumer/co
9293
replace go.opentelemetry.io/collector/component/componentstatus => ../../component/componentstatus
9394

9495
replace go.opentelemetry.io/collector/receiver/receiverprofiles => ../../receiver/receiverprofiles
96+
97+
replace go.opentelemetry.io/collector/exporter/exporterprofiles => ../exporterprofiles

exporter/otlpexporter/go.mod

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,7 @@ require (
6060
go.opentelemetry.io/collector/config/internal v0.108.1 // indirect
6161
go.opentelemetry.io/collector/consumer/consumerprofiles v0.108.1 // indirect
6262
go.opentelemetry.io/collector/consumer/consumertest v0.108.1 // indirect
63+
go.opentelemetry.io/collector/exporter/exporterprofiles v0.108.1 // indirect
6364
go.opentelemetry.io/collector/extension v0.108.1 // indirect
6465
go.opentelemetry.io/collector/extension/auth v0.108.1 // indirect
6566
go.opentelemetry.io/collector/featuregate v1.14.1 // indirect
@@ -150,3 +151,5 @@ replace go.opentelemetry.io/collector/consumer/consumertest => ../../consumer/co
150151
replace go.opentelemetry.io/collector/component/componentstatus => ../../component/componentstatus
151152

152153
replace go.opentelemetry.io/collector/receiver/receiverprofiles => ../../receiver/receiverprofiles
154+
155+
replace go.opentelemetry.io/collector/exporter/exporterprofiles => ../exporterprofiles

0 commit comments

Comments
 (0)