Skip to content

Commit dd17797

Browse files
authored
Add profiles support to nop exporter (#14332)
#### Link to tracking issue Fixes #14331 Signed-off-by: Israel Blancas <iblancasa@gmail.com>
1 parent fc890e9 commit dd17797

File tree

7 files changed

+53
-10
lines changed

7 files changed

+53
-10
lines changed

.chloggen/14331.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. receiver/otlp)
7+
component: exporter/nop
8+
9+
# A brief description of the change. Surround your text with quotes ("") if it needs to start with a backtick (`).
10+
note: Add profiles support to nop exporter
11+
12+
# One or more tracking issues or pull requests related to the change
13+
issues: [14331]
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: ['user']

exporter/nopexporter/README.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,13 @@
33
<!-- status autogenerated section -->
44
| Status | |
55
| ------------- |-----------|
6-
| Stability | [beta]: traces, metrics, logs |
6+
| Stability | [development]: profiles |
7+
| | [beta]: traces, metrics, logs |
78
| Distributions | [core], [contrib], [k8s] |
89
| Issues | [![Open issues](https://img.shields.io/github/issues-search/open-telemetry/opentelemetry-collector?query=is%3Aissue%20is%3Aopen%20label%3Aexporter%2Fnop%20&label=open&color=orange&logo=opentelemetry)](https://github.com/open-telemetry/opentelemetry-collector/issues?q=is%3Aopen+is%3Aissue+label%3Aexporter%2Fnop) [![Closed issues](https://img.shields.io/github/issues-search/open-telemetry/opentelemetry-collector?query=is%3Aissue%20is%3Aclosed%20label%3Aexporter%2Fnop%20&label=closed&color=blue&logo=opentelemetry)](https://github.com/open-telemetry/opentelemetry-collector/issues?q=is%3Aclosed+is%3Aissue+label%3Aexporter%2Fnop) |
910
| [Code Owners](https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/main/CONTRIBUTING.md#becoming-a-code-owner) | [@evan-bradley](https://www.github.com/evan-bradley) |
1011

12+
[development]: https://github.com/open-telemetry/opentelemetry-collector/blob/main/docs/component-stability.md#development
1113
[beta]: https://github.com/open-telemetry/opentelemetry-collector/blob/main/docs/component-stability.md#beta
1214
[core]: https://github.com/open-telemetry/opentelemetry-collector-releases/tree/main/distributions/otelcol
1315
[contrib]: https://github.com/open-telemetry/opentelemetry-collector-releases/tree/main/distributions/otelcol-contrib

exporter/nopexporter/go.mod

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,9 @@ require (
1010
go.opentelemetry.io/collector/consumer/consumertest v0.142.0
1111
go.opentelemetry.io/collector/exporter v1.48.0
1212
go.opentelemetry.io/collector/exporter/exportertest v0.142.0
13+
go.opentelemetry.io/collector/exporter/xexporter v0.142.0
1314
go.opentelemetry.io/collector/pdata v1.48.0
15+
go.opentelemetry.io/collector/pdata/pprofile v0.142.0
1416
go.uber.org/goleak v1.3.0
1517
)
1618

@@ -36,9 +38,7 @@ require (
3638
go.opentelemetry.io/collector/consumer v1.48.0 // indirect
3739
go.opentelemetry.io/collector/consumer/consumererror v0.142.0 // indirect
3840
go.opentelemetry.io/collector/consumer/xconsumer v0.142.0 // indirect
39-
go.opentelemetry.io/collector/exporter/xexporter v0.142.0 // indirect
4041
go.opentelemetry.io/collector/featuregate v1.48.0 // indirect
41-
go.opentelemetry.io/collector/pdata/pprofile v0.142.0 // indirect
4242
go.opentelemetry.io/collector/pipeline v1.48.0 // indirect
4343
go.opentelemetry.io/collector/receiver v1.48.0 // indirect
4444
go.opentelemetry.io/collector/receiver/receivertest v0.142.0 // indirect

exporter/nopexporter/internal/metadata/generated_status.go

Lines changed: 4 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

exporter/nopexporter/metadata.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,4 +9,5 @@ status:
99
class: exporter
1010
stability:
1111
beta: [traces, metrics, logs]
12+
development: [profiles]
1213
distributions: [core, contrib, k8s]

exporter/nopexporter/nop_exporter.go

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,16 +10,18 @@ import (
1010
"go.opentelemetry.io/collector/consumer/consumertest"
1111
"go.opentelemetry.io/collector/exporter"
1212
"go.opentelemetry.io/collector/exporter/nopexporter/internal/metadata"
13+
"go.opentelemetry.io/collector/exporter/xexporter"
1314
)
1415

1516
// NewFactory returns an exporter.Factory that constructs nop exporters.
1617
func NewFactory() exporter.Factory {
17-
return exporter.NewFactory(
18+
return xexporter.NewFactory(
1819
metadata.Type,
1920
func() component.Config { return &struct{}{} },
20-
exporter.WithTraces(createTraces, metadata.TracesStability),
21-
exporter.WithMetrics(createMetrics, metadata.MetricsStability),
22-
exporter.WithLogs(createLogs, metadata.LogsStability),
21+
xexporter.WithTraces(createTraces, metadata.TracesStability),
22+
xexporter.WithMetrics(createMetrics, metadata.MetricsStability),
23+
xexporter.WithLogs(createLogs, metadata.LogsStability),
24+
xexporter.WithProfiles(createProfiles, metadata.ProfilesStability),
2325
)
2426
}
2527

@@ -35,6 +37,10 @@ func createLogs(context.Context, exporter.Settings, component.Config) (exporter.
3537
return nopInstance, nil
3638
}
3739

40+
func createProfiles(context.Context, exporter.Settings, component.Config) (xexporter.Profiles, error) {
41+
return nopInstance, nil
42+
}
43+
3844
var nopInstance = &nop{
3945
Consumer: consumertest.NewNop(),
4046
}

exporter/nopexporter/nop_exporter_test.go

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,10 @@ import (
1313
"go.opentelemetry.io/collector/component"
1414
"go.opentelemetry.io/collector/component/componenttest"
1515
"go.opentelemetry.io/collector/exporter/exportertest"
16+
"go.opentelemetry.io/collector/exporter/xexporter"
1617
"go.opentelemetry.io/collector/pdata/plog"
1718
"go.opentelemetry.io/collector/pdata/pmetric"
19+
"go.opentelemetry.io/collector/pdata/pprofile"
1820
"go.opentelemetry.io/collector/pdata/ptrace"
1921
)
2022

@@ -42,4 +44,10 @@ func TestNewNopFactory(t *testing.T) {
4244
assert.NoError(t, logs.Start(context.Background(), componenttest.NewNopHost()))
4345
assert.NoError(t, logs.ConsumeLogs(context.Background(), plog.NewLogs()))
4446
assert.NoError(t, logs.Shutdown(context.Background()))
47+
48+
profiles, err := factory.(xexporter.Factory).CreateProfiles(context.Background(), exportertest.NewNopSettings(factory.Type()), cfg)
49+
require.NoError(t, err)
50+
assert.NoError(t, profiles.Start(context.Background(), componenttest.NewNopHost()))
51+
assert.NoError(t, profiles.ConsumeProfiles(context.Background(), pprofile.NewProfiles()))
52+
assert.NoError(t, profiles.Shutdown(context.Background()))
4553
}

0 commit comments

Comments
 (0)