Skip to content

Commit 2ddf1ad

Browse files
authored
Support profiles in consumertest (#10692)
<!--Ex. Fixing a bug - Describe the bug and how this fixes the issue. Ex. Adding a feature - Explain what this achieves.--> #### Description Following #10464, this adds profiles support in consumertest. cc @mx-psi
1 parent 88349c8 commit 2ddf1ad

File tree

43 files changed

+387
-7
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

43 files changed

+387
-7
lines changed

.chloggen/profiles-consumertest.yaml

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
# Use this changelog template to create an entry for release notes.
2+
3+
# One of 'breaking', 'deprecation', 'new_component', 'enhancement', 'bug_fix'
4+
change_type: enhancement
5+
6+
# The name of the component, or a single word describing the area of concern, (e.g. otlpreceiver)
7+
component: consumer/consumertest
8+
9+
# A brief description of the change. Surround your text with quotes ("") if it needs to start with a backtick (`).
10+
note: Allow testing profiles with consumertest.
11+
12+
# One or more tracking issues or pull requests related to the change
13+
issues: [10692]
14+
15+
# (Optional) One or more lines of additional information to render under the primary note.
16+
# These lines will be padded with 2 spaces and then inserted directly into the document.
17+
# Use pipe (|) for multiline entries.
18+
subtext:
19+
20+
# Optional: The change log or logs in which this entry should be included.
21+
# e.g. '[user]' or '[user, api]'
22+
# Include 'user' if the change is relevant to end users.
23+
# Include 'api' if there is a change to a library API.
24+
# Default: '[user]'
25+
change_logs: [api]

Makefile

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -278,6 +278,8 @@ check-contrib:
278278
-replace go.opentelemetry.io/collector/connector=$(CURDIR)/connector \
279279
-replace go.opentelemetry.io/collector/connector/forwardconnector=$(CURDIR)/connector/forwardconnector \
280280
-replace go.opentelemetry.io/collector/consumer=$(CURDIR)/consumer \
281+
-replace go.opentelemetry.io/collector/consumer/consumerprofiles=$(CURDIR)/consumer/consumerprofiles \
282+
-replace go.opentelemetry.io/collector/consumer/consumertest=$(CURDIR)/consumer/consumertest \
281283
-replace go.opentelemetry.io/collector/exporter=$(CURDIR)/exporter \
282284
-replace go.opentelemetry.io/collector/exporter/debugexporter=$(CURDIR)/exporter/debugexporter \
283285
-replace go.opentelemetry.io/collector/exporter/loggingexporter=$(CURDIR)/exporter/loggingexporter \
@@ -337,6 +339,8 @@ restore-contrib:
337339
-dropreplace go.opentelemetry.io/collector/connector \
338340
-dropreplace go.opentelemetry.io/collector/connector/forwardconnector \
339341
-dropreplace go.opentelemetry.io/collector/consumer \
342+
-dropreplace go.opentelemetry.io/collector/consumer/consumerprofiles \
343+
-dropreplace go.opentelemetry.io/collector/consumer/consumertest \
340344
-dropreplace go.opentelemetry.io/collector/exporter \
341345
-dropreplace go.opentelemetry.io/collector/exporter/debugexporter \
342346
-dropreplace go.opentelemetry.io/collector/exporter/loggingexporter \

cmd/builder/internal/builder/main_test.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,8 @@ var (
5959
"/confmap/provider/httpsprovider",
6060
"/confmap/provider/yamlprovider",
6161
"/consumer",
62+
"/consumer/consumerprofiles",
63+
"/consumer/consumertest",
6264
"/connector",
6365
"/exporter",
6466
"/exporter/debugexporter",

cmd/builder/test/core.builder.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ replaces:
3838
- go.opentelemetry.io/collector/confmap/provider/httpsprovider => ${WORKSPACE_DIR}/confmap/provider/httpsprovider
3939
- go.opentelemetry.io/collector/confmap/provider/yamlprovider => ${WORKSPACE_DIR}/confmap/provider/yamlprovider
4040
- go.opentelemetry.io/collector/consumer => ${WORKSPACE_DIR}/consumer
41+
- go.opentelemetry.io/collector/consumer/consumertest => ${WORKSPACE_DIR}/consumer/consumertest
4142
- go.opentelemetry.io/collector/connector => ${WORKSPACE_DIR}/connector
4243
- go.opentelemetry.io/collector/exporter => ${WORKSPACE_DIR}/exporter
4344
- go.opentelemetry.io/collector/exporter/debugexporter => ${WORKSPACE_DIR}/exporter/debugexporter

cmd/mdatagen/go.mod

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ require (
1010
go.opentelemetry.io/collector/confmap v0.105.0
1111
go.opentelemetry.io/collector/confmap/provider/fileprovider v0.105.0
1212
go.opentelemetry.io/collector/consumer v0.105.0
13+
go.opentelemetry.io/collector/consumer/consumertest v0.0.0-00010101000000-000000000000
1314
go.opentelemetry.io/collector/filter v0.105.0
1415
go.opentelemetry.io/collector/pdata v1.12.0
1516
go.opentelemetry.io/collector/receiver v0.105.0
@@ -46,8 +47,10 @@ require (
4647
github.com/prometheus/client_model v0.6.1 // indirect
4748
github.com/prometheus/common v0.55.0 // indirect
4849
github.com/prometheus/procfs v0.15.1 // indirect
50+
go.opentelemetry.io/collector/consumer/consumerprofiles v0.105.0 // indirect
4951
go.opentelemetry.io/collector/featuregate v1.12.0 // indirect
5052
go.opentelemetry.io/collector/internal/globalgates v0.105.0 // indirect
53+
go.opentelemetry.io/collector/pdata/pprofile v0.105.0 // indirect
5154
go.opentelemetry.io/otel v1.28.0 // indirect
5255
go.opentelemetry.io/otel/exporters/prometheus v0.50.0 // indirect
5356
go.opentelemetry.io/otel/sdk v1.28.0 // indirect
@@ -93,3 +96,7 @@ retract (
9396
replace go.opentelemetry.io/collector/pdata/pprofile => ../../pdata/pprofile
9497

9598
replace go.opentelemetry.io/collector/internal/globalgates => ../../internal/globalgates
99+
100+
replace go.opentelemetry.io/collector/consumer/consumerprofiles => ../../consumer/consumerprofiles
101+
102+
replace go.opentelemetry.io/collector/consumer/consumertest => ../../consumer/consumertest

cmd/otelcorecol/builder-config.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,8 @@ replaces:
6262
- go.opentelemetry.io/collector/confmap/provider/httpsprovider => ../../confmap/provider/httpsprovider
6363
- go.opentelemetry.io/collector/confmap/provider/yamlprovider => ../../confmap/provider/yamlprovider
6464
- go.opentelemetry.io/collector/consumer => ../../consumer
65+
- go.opentelemetry.io/collector/consumer/consumerprofiles => ../../consumer/consumerprofiles
66+
- go.opentelemetry.io/collector/consumer/consumertest => ../../consumer/consumertest
6567
- go.opentelemetry.io/collector/connector => ../../connector
6668
- go.opentelemetry.io/collector/connector/forwardconnector => ../../connector/forwardconnector
6769
- go.opentelemetry.io/collector/exporter => ../../exporter

cmd/otelcorecol/go.mod

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,10 +92,13 @@ require (
9292
go.opentelemetry.io/collector/config/configtls v1.12.0 // indirect
9393
go.opentelemetry.io/collector/config/internal v0.105.0 // indirect
9494
go.opentelemetry.io/collector/consumer v0.105.0 // indirect
95+
go.opentelemetry.io/collector/consumer/consumerprofiles v0.105.0 // indirect
96+
go.opentelemetry.io/collector/consumer/consumertest v0.0.0-00010101000000-000000000000 // indirect
9597
go.opentelemetry.io/collector/extension/auth v0.105.0 // indirect
9698
go.opentelemetry.io/collector/featuregate v1.12.0 // indirect
9799
go.opentelemetry.io/collector/internal/globalgates v0.105.0 // indirect
98100
go.opentelemetry.io/collector/pdata v1.12.0 // indirect
101+
go.opentelemetry.io/collector/pdata/pprofile v0.105.0 // indirect
99102
go.opentelemetry.io/collector/semconv v0.105.0 // indirect
100103
go.opentelemetry.io/collector/service v0.105.0 // indirect
101104
go.opentelemetry.io/contrib/config v0.8.0 // indirect
@@ -178,6 +181,10 @@ replace go.opentelemetry.io/collector/confmap/provider/yamlprovider => ../../con
178181

179182
replace go.opentelemetry.io/collector/consumer => ../../consumer
180183

184+
replace go.opentelemetry.io/collector/consumer/consumerprofiles => ../../consumer/consumerprofiles
185+
186+
replace go.opentelemetry.io/collector/consumer/consumertest => ../../consumer/consumertest
187+
181188
replace go.opentelemetry.io/collector/connector => ../../connector
182189

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

config/configgrpc/go.mod

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,3 +105,7 @@ replace go.opentelemetry.io/collector/pdata/pprofile => ../../pdata/pprofile
105105
replace go.opentelemetry.io/collector/component => ../../component
106106

107107
replace go.opentelemetry.io/collector/consumer => ../../consumer
108+
109+
replace go.opentelemetry.io/collector/consumer/consumerprofiles => ../../consumer/consumerprofiles
110+
111+
replace go.opentelemetry.io/collector/consumer/consumertest => ../../consumer/consumertest

config/confighttp/go.mod

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,3 +98,7 @@ replace go.opentelemetry.io/collector/consumer => ../../consumer
9898
replace go.opentelemetry.io/collector/pdata/testdata => ../../pdata/testdata
9999

100100
replace go.opentelemetry.io/collector/pdata/pprofile => ../../pdata/pprofile
101+
102+
replace go.opentelemetry.io/collector/consumer/consumerprofiles => ../../consumer/consumerprofiles
103+
104+
replace go.opentelemetry.io/collector/consumer/consumertest => ../../consumer/consumertest

config/internal/go.mod

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,3 +37,7 @@ replace go.opentelemetry.io/collector/pdata/testdata => ../../pdata/testdata
3737
replace go.opentelemetry.io/collector/pdata/pprofile => ../../pdata/pprofile
3838

3939
replace go.opentelemetry.io/collector/internal/globalgates => ../../internal/globalgates
40+
41+
replace go.opentelemetry.io/collector/consumer/consumerprofiles => ../../consumer/consumerprofiles
42+
43+
replace go.opentelemetry.io/collector/consumer/consumertest => ../../consumer/consumertest

connector/forwardconnector/go.mod

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ require (
88
go.opentelemetry.io/collector/confmap v0.105.0
99
go.opentelemetry.io/collector/connector v0.105.0
1010
go.opentelemetry.io/collector/consumer v0.105.0
11+
go.opentelemetry.io/collector/consumer/consumertest v0.0.0-00010101000000-000000000000
1112
go.opentelemetry.io/collector/pdata v1.12.0
1213
go.uber.org/goleak v1.3.0
1314
)
@@ -38,8 +39,10 @@ require (
3839
github.com/prometheus/procfs v0.15.1 // indirect
3940
go.opentelemetry.io/collector v0.105.0 // indirect
4041
go.opentelemetry.io/collector/config/configtelemetry v0.105.0 // indirect
42+
go.opentelemetry.io/collector/consumer/consumerprofiles v0.105.0 // indirect
4143
go.opentelemetry.io/collector/featuregate v1.12.0 // indirect
4244
go.opentelemetry.io/collector/internal/globalgates v0.105.0 // indirect
45+
go.opentelemetry.io/collector/pdata/pprofile v0.105.0 // indirect
4346
go.opentelemetry.io/otel v1.28.0 // indirect
4447
go.opentelemetry.io/otel/exporters/prometheus v0.50.0 // indirect
4548
go.opentelemetry.io/otel/metric v1.28.0 // indirect
@@ -83,3 +86,7 @@ retract (
8386
replace go.opentelemetry.io/collector/config/configtelemetry => ../../config/configtelemetry
8487

8588
replace go.opentelemetry.io/collector/pdata/pprofile => ../../pdata/pprofile
89+
90+
replace go.opentelemetry.io/collector/consumer/consumerprofiles => ../../consumer/consumerprofiles
91+
92+
replace go.opentelemetry.io/collector/consumer/consumertest => ../../consumer/consumertest

connector/go.mod

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ require (
88
go.opentelemetry.io/collector v0.105.0
99
go.opentelemetry.io/collector/component v0.105.0
1010
go.opentelemetry.io/collector/consumer v0.105.0
11+
go.opentelemetry.io/collector/consumer/consumertest v0.0.0-00010101000000-000000000000
1112
go.opentelemetry.io/collector/pdata v1.12.0
1213
go.opentelemetry.io/collector/pdata/testdata v0.105.0
1314
go.uber.org/goleak v1.3.0
@@ -32,6 +33,7 @@ require (
3233
github.com/prometheus/common v0.55.0 // indirect
3334
github.com/prometheus/procfs v0.15.1 // indirect
3435
go.opentelemetry.io/collector/config/configtelemetry v0.105.0 // indirect
36+
go.opentelemetry.io/collector/consumer/consumerprofiles v0.105.0 // indirect
3537
go.opentelemetry.io/collector/pdata/pprofile v0.105.0 // indirect
3638
go.opentelemetry.io/otel v1.28.0 // indirect
3739
go.opentelemetry.io/otel/exporters/prometheus v0.50.0 // indirect
@@ -67,3 +69,7 @@ replace go.opentelemetry.io/collector/pdata/testdata => ../pdata/testdata
6769
replace go.opentelemetry.io/collector/pdata/pprofile => ../pdata/pprofile
6870

6971
replace go.opentelemetry.io/collector/internal/globalgates => ../internal/globalgates
72+
73+
replace go.opentelemetry.io/collector/consumer/consumerprofiles => ../consumer/consumerprofiles
74+
75+
replace go.opentelemetry.io/collector/consumer/consumertest => ../consumer/consumertest

consumer/consumertest/Makefile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
include ../../Makefile.Common

consumer/consumertest/consumer.go

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,10 @@ import (
77
"context"
88

99
"go.opentelemetry.io/collector/consumer"
10+
"go.opentelemetry.io/collector/consumer/consumerprofiles"
1011
"go.opentelemetry.io/collector/pdata/plog"
1112
"go.opentelemetry.io/collector/pdata/pmetric"
13+
"go.opentelemetry.io/collector/pdata/pprofile"
1214
"go.opentelemetry.io/collector/pdata/ptrace"
1315
)
1416

@@ -29,12 +31,16 @@ type Consumer interface {
2931
// ConsumeLogs to implement the consumer.Logs.
3032
ConsumeLogs(context.Context, plog.Logs) error
3133

34+
// ConsumeProfiles to implement the consumerprofiles.Profiles.
35+
ConsumeProfiles(context.Context, pprofile.Profiles) error
36+
3237
unexported()
3338
}
3439

3540
var _ consumer.Logs = (Consumer)(nil)
3641
var _ consumer.Metrics = (Consumer)(nil)
3742
var _ consumer.Traces = (Consumer)(nil)
43+
var _ consumerprofiles.Profiles = (Consumer)(nil)
3844

3945
type nonMutatingConsumer struct{}
4046

@@ -48,6 +54,7 @@ type baseConsumer struct {
4854
consumer.ConsumeTracesFunc
4955
consumer.ConsumeMetricsFunc
5056
consumer.ConsumeLogsFunc
57+
consumerprofiles.ConsumeProfilesFunc
5158
}
5259

5360
func (bc baseConsumer) unexported() {}

consumer/consumertest/err.go

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,16 @@ import (
77

88
"go.opentelemetry.io/collector/pdata/plog"
99
"go.opentelemetry.io/collector/pdata/pmetric"
10+
"go.opentelemetry.io/collector/pdata/pprofile"
1011
"go.opentelemetry.io/collector/pdata/ptrace"
1112
)
1213

1314
// NewErr returns a Consumer that just drops all received data and returns the specified error to Consume* callers.
1415
func NewErr(err error) Consumer {
1516
return &baseConsumer{
16-
ConsumeTracesFunc: func(context.Context, ptrace.Traces) error { return err },
17-
ConsumeMetricsFunc: func(context.Context, pmetric.Metrics) error { return err },
18-
ConsumeLogsFunc: func(context.Context, plog.Logs) error { return err },
17+
ConsumeTracesFunc: func(context.Context, ptrace.Traces) error { return err },
18+
ConsumeMetricsFunc: func(context.Context, pmetric.Metrics) error { return err },
19+
ConsumeLogsFunc: func(context.Context, plog.Logs) error { return err },
20+
ConsumeProfilesFunc: func(context.Context, pprofile.Profiles) error { return err },
1921
}
2022
}

consumer/consumertest/err_test.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import (
1313

1414
"go.opentelemetry.io/collector/pdata/plog"
1515
"go.opentelemetry.io/collector/pdata/pmetric"
16+
"go.opentelemetry.io/collector/pdata/pprofile"
1617
"go.opentelemetry.io/collector/pdata/ptrace"
1718
)
1819

@@ -24,4 +25,5 @@ func TestErr(t *testing.T) {
2425
assert.Equal(t, err, ec.ConsumeLogs(context.Background(), plog.NewLogs()))
2526
assert.Equal(t, err, ec.ConsumeMetrics(context.Background(), pmetric.NewMetrics()))
2627
assert.Equal(t, err, ec.ConsumeTraces(context.Background(), ptrace.NewTraces()))
28+
assert.Equal(t, err, ec.ConsumeProfiles(context.Background(), pprofile.NewProfiles()))
2729
}

consumer/consumertest/go.mod

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
module go.opentelemetry.io/collector/consumer/consumertest
2+
3+
go 1.21.0
4+
5+
replace go.opentelemetry.io/collector/consumer => ../
6+
7+
require (
8+
github.com/stretchr/testify v1.9.0
9+
go.opentelemetry.io/collector/consumer v0.105.0
10+
go.opentelemetry.io/collector/consumer/consumerprofiles v0.105.0
11+
go.opentelemetry.io/collector/pdata v1.12.0
12+
go.opentelemetry.io/collector/pdata/pprofile v0.105.0
13+
go.opentelemetry.io/collector/pdata/testdata v0.105.0
14+
go.uber.org/goleak v1.3.0
15+
)
16+
17+
require (
18+
github.com/davecgh/go-spew v1.1.1 // indirect
19+
github.com/gogo/protobuf v1.3.2 // indirect
20+
github.com/json-iterator/go v1.1.12 // indirect
21+
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
22+
github.com/modern-go/reflect2 v1.0.2 // indirect
23+
github.com/pmezard/go-difflib v1.0.0 // indirect
24+
go.uber.org/multierr v1.11.0 // indirect
25+
golang.org/x/net v0.25.0 // indirect
26+
golang.org/x/sys v0.20.0 // indirect
27+
golang.org/x/text v0.15.0 // indirect
28+
google.golang.org/genproto/googleapis/rpc v0.0.0-20240528184218-531527333157 // indirect
29+
google.golang.org/grpc v1.65.0 // indirect
30+
google.golang.org/protobuf v1.34.2 // indirect
31+
gopkg.in/yaml.v3 v3.0.1 // indirect
32+
)
33+
34+
replace go.opentelemetry.io/collector/pdata/pprofile => ../../pdata/pprofile
35+
36+
replace go.opentelemetry.io/collector/pdata => ../../pdata
37+
38+
replace go.opentelemetry.io/collector/consumer/consumerprofiles => ../consumerprofiles
39+
40+
replace go.opentelemetry.io/collector/pdata/testdata => ../../pdata/testdata

0 commit comments

Comments
 (0)