Skip to content

Commit 516a8c1

Browse files
committed
[metadatatest] Generate NewSettings that accepts componenttest.Telemetry
Signed-off-by: Bogdan Drutu <[email protected]>
1 parent c119b2a commit 516a8c1

File tree

23 files changed

+265
-191
lines changed

23 files changed

+265
-191
lines changed

.chloggen/newsettings.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: metadatatest
8+
9+
# A brief description of the change. Surround your text with quotes ("") if it needs to start with a backtick (`).
10+
note: Generate NewSettings that accepts componenttest.Telemetry
11+
12+
# One or more tracking issues or pull requests related to the change
13+
issues: [12216]
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]

cmd/mdatagen/internal/samplereceiver/internal/metadatatest/generated_telemetrytest.go

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

cmd/mdatagen/internal/samplereceiver/metrics_test.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -26,17 +26,17 @@ func TestGeneratedMetrics(t *testing.T) {
2626
}
2727

2828
func TestComponentTelemetry(t *testing.T) {
29-
tt := metadatatest.SetupTelemetry()
29+
tt := componenttest.NewTelemetry()
3030
factory := NewFactory()
31-
receiver, err := factory.CreateMetrics(context.Background(), tt.NewSettings(), componenttest.NewNopHost(), new(consumertest.MetricsSink))
31+
receiver, err := factory.CreateMetrics(context.Background(), metadatatest.NewSettings(tt), componenttest.NewNopHost(), new(consumertest.MetricsSink))
3232
require.NoError(t, err)
33-
metadatatest.AssertEqualBatchSizeTriggerSend(t, tt.Telemetry,
33+
metadatatest.AssertEqualBatchSizeTriggerSend(t, tt,
3434
[]metricdata.DataPoint[int64]{
3535
{
3636
Value: 1,
3737
},
3838
}, metricdatatest.IgnoreTimestamp())
39-
metadatatest.AssertEqualProcessRuntimeTotalAllocBytes(t, tt.Telemetry,
39+
metadatatest.AssertEqualProcessRuntimeTotalAllocBytes(t, tt,
4040
[]metricdata.DataPoint[int64]{
4141
{
4242
Value: 2,
@@ -45,7 +45,7 @@ func TestComponentTelemetry(t *testing.T) {
4545
rcv, ok := receiver.(nopReceiver)
4646
require.True(t, ok)
4747
rcv.initOptionalMetric()
48-
metadatatest.AssertEqualQueueLength(t, tt.Telemetry,
48+
metadatatest.AssertEqualQueueLength(t, tt,
4949
[]metricdata.DataPoint[int64]{
5050
{
5151
Value: 3,

cmd/mdatagen/internal/templates/telemetrytest.go.tmpl

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ import (
2121
)
2222

2323
type Telemetry struct {
24-
componenttest.Telemetry
24+
*componenttest.Telemetry
2525
}
2626

2727
func SetupTelemetry(opts ...componenttest.TelemetryOption) Telemetry {
@@ -50,9 +50,18 @@ func (tt *Telemetry) AssertMetrics(t *testing.T, expected []metricdata.Metrics,
5050
require.Equal(t, len(expected), lenMetrics(md))
5151
}
5252

53+
{{ if or isConnector isExporter isExtension isProcessor isReceiver isScraper }}
54+
func NewSettings(tt *componenttest.Telemetry) {{ .Status.Class }}.Settings {
55+
set := {{ .Status.Class }}test.NewNopSettings()
56+
set.ID = component.NewID(component.MustNewType("{{ .Type }}"))
57+
set.TelemetrySettings = tt.NewTelemetrySettings()
58+
return set
59+
}
60+
{{- end }}
61+
5362
{{ range $name, $metric := .Telemetry.Metrics }}
5463

55-
func AssertEqual{{ $name.Render }}(t *testing.T, tt componenttest.Telemetry, dps []metricdata.{{- if eq $metric.Data.Type "Histogram" }} {{$metric.Data.Type}} {{- end }}DataPoint[{{ $metric.Data.BasicType }}], opts ...metricdatatest.Option) {
64+
func AssertEqual{{ $name.Render }}(t *testing.T, tt *componenttest.Telemetry, dps []metricdata.{{- if eq $metric.Data.Type "Histogram" }} {{$metric.Data.Type}} {{- end }}DataPoint[{{ $metric.Data.BasicType }}], opts ...metricdatatest.Option) {
5665
want := metricdata.Metrics{
5766
Name: "otelcol_{{ $name }}",
5867
Description: "{{ $metric.Description }}{{ $metric.Stability }}",
@@ -73,7 +82,7 @@ func AssertEqual{{ $name.Render }}(t *testing.T, tt componenttest.Telemetry, dps
7382

7483
{{- end }}
7584

76-
func getMetric(t *testing.T, tt componenttest.Telemetry, name string) metricdata.Metrics {
85+
func getMetric(t *testing.T, tt *componenttest.Telemetry, name string) metricdata.Metrics {
7786
var md metricdata.ResourceMetrics
7887
require.NoError(t, tt.Reader.Collect(context.Background(), &md))
7988
return getMetricFromResource(name, md)

component/componenttest/obsreporttest.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ const (
2626
)
2727

2828
type TestTelemetry struct {
29-
Telemetry
29+
*Telemetry
3030
id component.ID
3131
}
3232

component/componenttest/telemetry.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ type Telemetry struct {
4747
traceProvider *sdktrace.TracerProvider
4848
}
4949

50-
func NewTelemetry(opts ...TelemetryOption) Telemetry {
50+
func NewTelemetry(opts ...TelemetryOption) *Telemetry {
5151
reader := sdkmetric.NewManualReader()
5252
spanRecorder := new(tracetest.SpanRecorder)
5353
tOpts := telemetryOption{
@@ -57,7 +57,7 @@ func NewTelemetry(opts ...TelemetryOption) Telemetry {
5757
for _, opt := range opts {
5858
opt.apply(&tOpts)
5959
}
60-
return Telemetry{
60+
return &Telemetry{
6161
Reader: reader,
6262
SpanRecorder: spanRecorder,
6363
meterProvider: sdkmetric.NewMeterProvider(tOpts.metricOpts...),

exporter/exporterhelper/internal/metadatatest/generated_telemetrytest.go

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

0 commit comments

Comments
 (0)