Skip to content

Commit 340e775

Browse files
authored
[chore] cleaning up test to use mdatagen test harness (#11098)
Follow up for #10910 (comment), ping @djaglowski as the author of the PR Signed-off-by: Alex Boten <[email protected]>
1 parent 936ffbb commit 340e775

File tree

3 files changed

+96
-159
lines changed

3 files changed

+96
-159
lines changed

processor/processorhelper/logs_test.go

Lines changed: 30 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -6,20 +6,15 @@ package processorhelper
66
import (
77
"context"
88
"errors"
9-
"strings"
109
"testing"
1110

1211
"github.com/stretchr/testify/assert"
1312
"github.com/stretchr/testify/require"
1413
"go.opentelemetry.io/otel/attribute"
15-
"go.opentelemetry.io/otel/metric"
16-
sdkmetric "go.opentelemetry.io/otel/sdk/metric"
1714
"go.opentelemetry.io/otel/sdk/metric/metricdata"
18-
"go.opentelemetry.io/otel/sdk/metric/metricdata/metricdatatest"
1915

2016
"go.opentelemetry.io/collector/component"
2117
"go.opentelemetry.io/collector/component/componenttest"
22-
"go.opentelemetry.io/collector/config/configtelemetry"
2318
"go.opentelemetry.io/collector/consumer"
2419
"go.opentelemetry.io/collector/consumer/consumertest"
2520
"go.opentelemetry.io/collector/pdata/plog"
@@ -91,60 +86,44 @@ func TestLogsProcessor_RecordInOut(t *testing.T) {
9186
incomingLogRecords.AppendEmpty()
9287
incomingLogRecords.AppendEmpty()
9388

94-
metricReader := sdkmetric.NewManualReader()
95-
set := processortest.NewNopSettings()
96-
set.TelemetrySettings.MetricsLevel = configtelemetry.LevelBasic
97-
set.TelemetrySettings.LeveledMeterProvider = func(level configtelemetry.Level) metric.MeterProvider {
98-
if level >= configtelemetry.LevelBasic {
99-
return sdkmetric.NewMeterProvider(sdkmetric.WithReader(metricReader))
100-
}
101-
return nil
102-
}
103-
104-
lp, err := NewLogsProcessor(context.Background(), set, &testLogsCfg, consumertest.NewNop(), mockAggregate)
89+
testTelemetry := setupTestTelemetry()
90+
lp, err := NewLogsProcessor(context.Background(), testTelemetry.NewSettings(), &testLogsCfg, consumertest.NewNop(), mockAggregate)
10591
require.NoError(t, err)
10692

10793
assert.NoError(t, lp.Start(context.Background(), componenttest.NewNopHost()))
10894
assert.NoError(t, lp.ConsumeLogs(context.Background(), incomingLogs))
10995
assert.NoError(t, lp.Shutdown(context.Background()))
11096

111-
ownMetrics := new(metricdata.ResourceMetrics)
112-
require.NoError(t, metricReader.Collect(context.Background(), ownMetrics))
113-
114-
require.Len(t, ownMetrics.ScopeMetrics, 1)
115-
require.Len(t, ownMetrics.ScopeMetrics[0].Metrics, 2)
116-
117-
inMetric := ownMetrics.ScopeMetrics[0].Metrics[0]
118-
outMetric := ownMetrics.ScopeMetrics[0].Metrics[1]
119-
if strings.Contains(inMetric.Name, "outgoing") {
120-
inMetric, outMetric = outMetric, inMetric
121-
}
122-
123-
metricdatatest.AssertAggregationsEqual(t, metricdata.Sum[int64]{
124-
Temporality: metricdata.CumulativeTemporality,
125-
IsMonotonic: true,
126-
DataPoints: []metricdata.DataPoint[int64]{
127-
{
128-
Attributes: attribute.NewSet(attribute.KeyValue{
129-
Key: attribute.Key("processor"),
130-
Value: attribute.StringValue(set.ID.String()),
131-
}),
132-
Value: 3,
97+
testTelemetry.assertMetrics(t, []metricdata.Metrics{
98+
{
99+
Name: "otelcol_processor_incoming_log_records",
100+
Description: "Number of log records passed to the processor.",
101+
Unit: "{records}",
102+
Data: metricdata.Sum[int64]{
103+
Temporality: metricdata.CumulativeTemporality,
104+
IsMonotonic: true,
105+
DataPoints: []metricdata.DataPoint[int64]{
106+
{
107+
Value: 3,
108+
Attributes: attribute.NewSet(attribute.String("processor", "processorhelper")),
109+
},
110+
},
133111
},
134112
},
135-
}, inMetric.Data, metricdatatest.IgnoreTimestamp())
136-
137-
metricdatatest.AssertAggregationsEqual(t, metricdata.Sum[int64]{
138-
Temporality: metricdata.CumulativeTemporality,
139-
IsMonotonic: true,
140-
DataPoints: []metricdata.DataPoint[int64]{
141-
{
142-
Attributes: attribute.NewSet(attribute.KeyValue{
143-
Key: attribute.Key("processor"),
144-
Value: attribute.StringValue(set.ID.String()),
145-
}),
146-
Value: 1,
113+
{
114+
Name: "otelcol_processor_outgoing_log_records",
115+
Description: "Number of log records emitted from the processor.",
116+
Unit: "{records}",
117+
Data: metricdata.Sum[int64]{
118+
Temporality: metricdata.CumulativeTemporality,
119+
IsMonotonic: true,
120+
DataPoints: []metricdata.DataPoint[int64]{
121+
{
122+
Value: 1,
123+
Attributes: attribute.NewSet(attribute.String("processor", "processorhelper")),
124+
},
125+
},
147126
},
148127
},
149-
}, outMetric.Data, metricdatatest.IgnoreTimestamp())
128+
})
150129
}

processor/processorhelper/metrics_test.go

Lines changed: 34 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -6,20 +6,15 @@ package processorhelper
66
import (
77
"context"
88
"errors"
9-
"strings"
109
"testing"
1110

1211
"github.com/stretchr/testify/assert"
1312
"github.com/stretchr/testify/require"
1413
"go.opentelemetry.io/otel/attribute"
15-
"go.opentelemetry.io/otel/metric"
16-
sdkmetric "go.opentelemetry.io/otel/sdk/metric"
1714
"go.opentelemetry.io/otel/sdk/metric/metricdata"
18-
"go.opentelemetry.io/otel/sdk/metric/metricdata/metricdatatest"
1915

2016
"go.opentelemetry.io/collector/component"
2117
"go.opentelemetry.io/collector/component/componenttest"
22-
"go.opentelemetry.io/collector/config/configtelemetry"
2318
"go.opentelemetry.io/collector/consumer"
2419
"go.opentelemetry.io/collector/consumer/consumertest"
2520
"go.opentelemetry.io/collector/pdata/pmetric"
@@ -76,76 +71,60 @@ func newTestMProcessor(retError error) ProcessMetricsFunc {
7671
}
7772

7873
func TestMetricsProcessor_RecordInOut(t *testing.T) {
79-
// Regardless of how many data points are ingested, emit just one
74+
// Regardless of how many data points are ingested, emit 3
8075
mockAggregate := func(_ context.Context, _ pmetric.Metrics) (pmetric.Metrics, error) {
8176
md := pmetric.NewMetrics()
8277
md.ResourceMetrics().AppendEmpty().ScopeMetrics().AppendEmpty().Metrics().AppendEmpty().SetEmptySum().DataPoints().AppendEmpty()
78+
md.ResourceMetrics().AppendEmpty().ScopeMetrics().AppendEmpty().Metrics().AppendEmpty().SetEmptySum().DataPoints().AppendEmpty()
79+
md.ResourceMetrics().AppendEmpty().ScopeMetrics().AppendEmpty().Metrics().AppendEmpty().SetEmptySum().DataPoints().AppendEmpty()
8380
return md, nil
8481
}
8582

8683
incomingMetrics := pmetric.NewMetrics()
8784
dps := incomingMetrics.ResourceMetrics().AppendEmpty().ScopeMetrics().AppendEmpty().Metrics().AppendEmpty().SetEmptySum().DataPoints()
8885

89-
// Add 3 data points to the incoming
90-
dps.AppendEmpty()
86+
// Add 2 data points to the incoming
9187
dps.AppendEmpty()
9288
dps.AppendEmpty()
9389

94-
metricReader := sdkmetric.NewManualReader()
95-
set := processortest.NewNopSettings()
96-
set.TelemetrySettings.MetricsLevel = configtelemetry.LevelNormal
97-
set.TelemetrySettings.MetricsLevel = configtelemetry.LevelBasic
98-
set.TelemetrySettings.LeveledMeterProvider = func(level configtelemetry.Level) metric.MeterProvider {
99-
if level >= configtelemetry.LevelBasic {
100-
return sdkmetric.NewMeterProvider(sdkmetric.WithReader(metricReader))
101-
}
102-
return nil
103-
}
104-
105-
mp, err := NewMetricsProcessor(context.Background(), set, &testMetricsCfg, consumertest.NewNop(), mockAggregate)
90+
testTelemetry := setupTestTelemetry()
91+
mp, err := NewMetricsProcessor(context.Background(), testTelemetry.NewSettings(), &testMetricsCfg, consumertest.NewNop(), mockAggregate)
10692
require.NoError(t, err)
10793

10894
assert.NoError(t, mp.Start(context.Background(), componenttest.NewNopHost()))
10995
assert.NoError(t, mp.ConsumeMetrics(context.Background(), incomingMetrics))
11096
assert.NoError(t, mp.Shutdown(context.Background()))
11197

112-
ownMetrics := new(metricdata.ResourceMetrics)
113-
require.NoError(t, metricReader.Collect(context.Background(), ownMetrics))
114-
115-
require.Len(t, ownMetrics.ScopeMetrics, 1)
116-
require.Len(t, ownMetrics.ScopeMetrics[0].Metrics, 2)
117-
118-
inMetric := ownMetrics.ScopeMetrics[0].Metrics[0]
119-
outMetric := ownMetrics.ScopeMetrics[0].Metrics[1]
120-
if strings.Contains(inMetric.Name, "outgoing") {
121-
inMetric, outMetric = outMetric, inMetric
122-
}
123-
124-
metricdatatest.AssertAggregationsEqual(t, metricdata.Sum[int64]{
125-
Temporality: metricdata.CumulativeTemporality,
126-
IsMonotonic: true,
127-
DataPoints: []metricdata.DataPoint[int64]{
128-
{
129-
Attributes: attribute.NewSet(attribute.KeyValue{
130-
Key: attribute.Key("processor"),
131-
Value: attribute.StringValue(set.ID.String()),
132-
}),
133-
Value: 3,
98+
testTelemetry.assertMetrics(t, []metricdata.Metrics{
99+
{
100+
Name: "otelcol_processor_incoming_metric_points",
101+
Description: "Number of metric points passed to the processor.",
102+
Unit: "{datapoints}",
103+
Data: metricdata.Sum[int64]{
104+
Temporality: metricdata.CumulativeTemporality,
105+
IsMonotonic: true,
106+
DataPoints: []metricdata.DataPoint[int64]{
107+
{
108+
Value: 2,
109+
Attributes: attribute.NewSet(attribute.String("processor", "processorhelper")),
110+
},
111+
},
134112
},
135113
},
136-
}, inMetric.Data, metricdatatest.IgnoreTimestamp())
137-
138-
metricdatatest.AssertAggregationsEqual(t, metricdata.Sum[int64]{
139-
Temporality: metricdata.CumulativeTemporality,
140-
IsMonotonic: true,
141-
DataPoints: []metricdata.DataPoint[int64]{
142-
{
143-
Attributes: attribute.NewSet(attribute.KeyValue{
144-
Key: attribute.Key("processor"),
145-
Value: attribute.StringValue(set.ID.String()),
146-
}),
147-
Value: 1,
114+
{
115+
Name: "otelcol_processor_outgoing_metric_points",
116+
Description: "Number of metric points emitted from the processor.",
117+
Unit: "{datapoints}",
118+
Data: metricdata.Sum[int64]{
119+
Temporality: metricdata.CumulativeTemporality,
120+
IsMonotonic: true,
121+
DataPoints: []metricdata.DataPoint[int64]{
122+
{
123+
Value: 3,
124+
Attributes: attribute.NewSet(attribute.String("processor", "processorhelper")),
125+
},
126+
},
148127
},
149128
},
150-
}, outMetric.Data, metricdatatest.IgnoreTimestamp())
129+
})
151130
}

processor/processorhelper/traces_test.go

Lines changed: 32 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -6,20 +6,15 @@ package processorhelper
66
import (
77
"context"
88
"errors"
9-
"strings"
109
"testing"
1110

1211
"github.com/stretchr/testify/assert"
1312
"github.com/stretchr/testify/require"
1413
"go.opentelemetry.io/otel/attribute"
15-
"go.opentelemetry.io/otel/metric"
16-
sdkmetric "go.opentelemetry.io/otel/sdk/metric"
1714
"go.opentelemetry.io/otel/sdk/metric/metricdata"
18-
"go.opentelemetry.io/otel/sdk/metric/metricdata/metricdatatest"
1915

2016
"go.opentelemetry.io/collector/component"
2117
"go.opentelemetry.io/collector/component/componenttest"
22-
"go.opentelemetry.io/collector/config/configtelemetry"
2318
"go.opentelemetry.io/collector/consumer"
2419
"go.opentelemetry.io/collector/consumer/consumertest"
2520
"go.opentelemetry.io/collector/pdata/ptrace"
@@ -86,66 +81,50 @@ func TestTracesProcessor_RecordInOut(t *testing.T) {
8681
incomingTraces := ptrace.NewTraces()
8782
incomingSpans := incomingTraces.ResourceSpans().AppendEmpty().ScopeSpans().AppendEmpty().Spans()
8883

89-
// Add 3 records to the incoming
84+
// Add 4 records to the incoming
85+
incomingSpans.AppendEmpty()
9086
incomingSpans.AppendEmpty()
9187
incomingSpans.AppendEmpty()
9288
incomingSpans.AppendEmpty()
9389

94-
metricReader := sdkmetric.NewManualReader()
95-
set := processortest.NewNopSettings()
96-
set.TelemetrySettings.MetricsLevel = configtelemetry.LevelNormal
97-
set.TelemetrySettings.MetricsLevel = configtelemetry.LevelBasic
98-
set.TelemetrySettings.LeveledMeterProvider = func(level configtelemetry.Level) metric.MeterProvider {
99-
if level >= configtelemetry.LevelBasic {
100-
return sdkmetric.NewMeterProvider(sdkmetric.WithReader(metricReader))
101-
}
102-
return nil
103-
}
104-
105-
tp, err := NewTracesProcessor(context.Background(), set, &testLogsCfg, consumertest.NewNop(), mockAggregate)
90+
testTelemetry := setupTestTelemetry()
91+
tp, err := NewTracesProcessor(context.Background(), testTelemetry.NewSettings(), &testLogsCfg, consumertest.NewNop(), mockAggregate)
10692
require.NoError(t, err)
10793

10894
assert.NoError(t, tp.Start(context.Background(), componenttest.NewNopHost()))
10995
assert.NoError(t, tp.ConsumeTraces(context.Background(), incomingTraces))
11096
assert.NoError(t, tp.Shutdown(context.Background()))
11197

112-
ownMetrics := new(metricdata.ResourceMetrics)
113-
require.NoError(t, metricReader.Collect(context.Background(), ownMetrics))
114-
115-
require.Len(t, ownMetrics.ScopeMetrics, 1)
116-
require.Len(t, ownMetrics.ScopeMetrics[0].Metrics, 2)
117-
118-
inMetric := ownMetrics.ScopeMetrics[0].Metrics[0]
119-
outMetric := ownMetrics.ScopeMetrics[0].Metrics[1]
120-
if strings.Contains(inMetric.Name, "outgoing") {
121-
inMetric, outMetric = outMetric, inMetric
122-
}
123-
124-
metricdatatest.AssertAggregationsEqual(t, metricdata.Sum[int64]{
125-
Temporality: metricdata.CumulativeTemporality,
126-
IsMonotonic: true,
127-
DataPoints: []metricdata.DataPoint[int64]{
128-
{
129-
Attributes: attribute.NewSet(attribute.KeyValue{
130-
Key: attribute.Key("processor"),
131-
Value: attribute.StringValue(set.ID.String()),
132-
}),
133-
Value: 3,
98+
testTelemetry.assertMetrics(t, []metricdata.Metrics{
99+
{
100+
Name: "otelcol_processor_incoming_spans",
101+
Description: "Number of spans passed to the processor.",
102+
Unit: "{spans}",
103+
Data: metricdata.Sum[int64]{
104+
Temporality: metricdata.CumulativeTemporality,
105+
IsMonotonic: true,
106+
DataPoints: []metricdata.DataPoint[int64]{
107+
{
108+
Value: 4,
109+
Attributes: attribute.NewSet(attribute.String("processor", "processorhelper")),
110+
},
111+
},
134112
},
135113
},
136-
}, inMetric.Data, metricdatatest.IgnoreTimestamp())
137-
138-
metricdatatest.AssertAggregationsEqual(t, metricdata.Sum[int64]{
139-
Temporality: metricdata.CumulativeTemporality,
140-
IsMonotonic: true,
141-
DataPoints: []metricdata.DataPoint[int64]{
142-
{
143-
Attributes: attribute.NewSet(attribute.KeyValue{
144-
Key: attribute.Key("processor"),
145-
Value: attribute.StringValue(set.ID.String()),
146-
}),
147-
Value: 1,
114+
{
115+
Name: "otelcol_processor_outgoing_spans",
116+
Description: "Number of spans emitted from the processor.",
117+
Unit: "{spans}",
118+
Data: metricdata.Sum[int64]{
119+
Temporality: metricdata.CumulativeTemporality,
120+
IsMonotonic: true,
121+
DataPoints: []metricdata.DataPoint[int64]{
122+
{
123+
Value: 1,
124+
Attributes: attribute.NewSet(attribute.String("processor", "processorhelper")),
125+
},
126+
},
148127
},
149128
},
150-
}, outMetric.Data, metricdatatest.IgnoreTimestamp())
129+
})
151130
}

0 commit comments

Comments
 (0)