Skip to content

Commit 03904de

Browse files
authored
Remove the number of items from returned values in Push funcs (#2684)
Even in code for metrics we did not have a consistent implementation, also most important thing was not used anymore in observability helper. Signed-off-by: Bogdan Drutu <[email protected]>
1 parent 59a20a1 commit 03904de

File tree

20 files changed

+194
-313
lines changed

20 files changed

+194
-313
lines changed

exporter/exporterhelper/common.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ type request interface {
4545
context() context.Context
4646
// setContext updates the Context of the requests.
4747
setContext(context.Context)
48-
export(ctx context.Context) (int, error)
48+
export(ctx context.Context) error
4949
// Returns a new request that contains the items left to be sent.
5050
onPartialError(consumererror.PartialError) request
5151
// Returns the count of spans/metric points or log records.
@@ -54,7 +54,7 @@ type request interface {
5454

5555
// requestSender is an abstraction of a sender for a request independent of the type of the data (traces, metrics, logs).
5656
type requestSender interface {
57-
send(req request) (int, error)
57+
send(req request) error
5858
}
5959

6060
// baseRequest is a base implementation for the request.
@@ -205,7 +205,7 @@ type timeoutSender struct {
205205
}
206206

207207
// send implements the requestSender interface
208-
func (ts *timeoutSender) send(req request) (int, error) {
208+
func (ts *timeoutSender) send(req request) error {
209209
// Intentionally don't overwrite the context inside the request, because in case of retries deadline will not be
210210
// updated because this deadline most likely is before the next one.
211211
ctx := req.context()

exporter/exporterhelper/factory_test.go

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -36,14 +36,14 @@ var (
3636
TypeVal: typeStr,
3737
NameVal: typeStr,
3838
}
39-
nopTracesExporter, _ = NewTraceExporter(defaultCfg, zap.NewNop(), func(ctx context.Context, td pdata.Traces) (droppedSpans int, err error) {
40-
return 0, nil
39+
nopTracesExporter, _ = NewTraceExporter(defaultCfg, zap.NewNop(), func(ctx context.Context, td pdata.Traces) error {
40+
return nil
4141
})
42-
nopMetricsExporter, _ = NewMetricsExporter(defaultCfg, zap.NewNop(), func(ctx context.Context, md pdata.Metrics) (droppedTimeSeries int, err error) {
43-
return 0, nil
42+
nopMetricsExporter, _ = NewMetricsExporter(defaultCfg, zap.NewNop(), func(ctx context.Context, md pdata.Metrics) error {
43+
return nil
4444
})
45-
nopLogsExporter, _ = NewLogsExporter(defaultCfg, zap.NewNop(), func(ctx context.Context, md pdata.Logs) (droppedTimeSeries int, err error) {
46-
return 0, nil
45+
nopLogsExporter, _ = NewLogsExporter(defaultCfg, zap.NewNop(), func(ctx context.Context, md pdata.Logs) error {
46+
return nil
4747
})
4848
)
4949

exporter/exporterhelper/logshelper.go

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ import (
2929

3030
// PushLogs is a helper function that is similar to ConsumeLogs but also returns
3131
// the number of dropped logs.
32-
type PushLogs func(ctx context.Context, md pdata.Logs) (droppedTimeSeries int, err error)
32+
type PushLogs func(ctx context.Context, md pdata.Logs) error
3333

3434
type logsRequest struct {
3535
baseRequest
@@ -49,7 +49,7 @@ func (req *logsRequest) onPartialError(partialErr consumererror.PartialError) re
4949
return newLogsRequest(req.ctx, partialErr.GetLogs(), req.pusher)
5050
}
5151

52-
func (req *logsRequest) export(ctx context.Context) (int, error) {
52+
func (req *logsRequest) export(ctx context.Context) error {
5353
return req.pusher(ctx, req.ld)
5454
}
5555

@@ -63,8 +63,7 @@ type logsExporter struct {
6363
}
6464

6565
func (lexp *logsExporter) ConsumeLogs(ctx context.Context, ld pdata.Logs) error {
66-
_, err := lexp.sender.send(newLogsRequest(ctx, ld, lexp.pusher))
67-
return err
66+
return lexp.sender.send(newLogsRequest(ctx, ld, lexp.pusher))
6867
}
6968

7069
// NewLogsExporter creates an LogsExporter that records observability metrics and wraps every request with a Span.
@@ -105,9 +104,9 @@ type logsExporterWithObservability struct {
105104
nextSender requestSender
106105
}
107106

108-
func (lewo *logsExporterWithObservability) send(req request) (int, error) {
107+
func (lewo *logsExporterWithObservability) send(req request) error {
109108
req.setContext(lewo.obsrep.StartLogsExportOp(req.context()))
110-
numDroppedLogs, err := lewo.nextSender.send(req)
109+
err := lewo.nextSender.send(req)
111110
lewo.obsrep.EndLogsExportOp(req.context(), req.count(), err)
112-
return numDroppedLogs, err
111+
return err
113112
}

exporter/exporterhelper/logshelper_test.go

Lines changed: 13 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -57,13 +57,13 @@ func TestLogsRequest(t *testing.T) {
5757
}
5858

5959
func TestLogsExporter_InvalidName(t *testing.T) {
60-
le, err := NewLogsExporter(nil, zap.NewNop(), newPushLogsData(0, nil))
60+
le, err := NewLogsExporter(nil, zap.NewNop(), newPushLogsData(nil))
6161
require.Nil(t, le)
6262
require.Equal(t, errNilConfig, err)
6363
}
6464

6565
func TestLogsExporter_NilLogger(t *testing.T) {
66-
le, err := NewLogsExporter(fakeLogsExporterConfig, nil, newPushLogsData(0, nil))
66+
le, err := NewLogsExporter(fakeLogsExporterConfig, nil, newPushLogsData(nil))
6767
require.Nil(t, le)
6868
require.Equal(t, errNilLogger, err)
6969
}
@@ -76,7 +76,7 @@ func TestLogsExporter_NilPushLogsData(t *testing.T) {
7676

7777
func TestLogsExporter_Default(t *testing.T) {
7878
ld := testdata.GenerateLogDataEmpty()
79-
le, err := NewLogsExporter(fakeLogsExporterConfig, zap.NewNop(), newPushLogsData(0, nil))
79+
le, err := NewLogsExporter(fakeLogsExporterConfig, zap.NewNop(), newPushLogsData(nil))
8080
assert.NotNil(t, le)
8181
assert.NoError(t, err)
8282

@@ -87,22 +87,14 @@ func TestLogsExporter_Default(t *testing.T) {
8787
func TestLogsExporter_Default_ReturnError(t *testing.T) {
8888
ld := testdata.GenerateLogDataEmpty()
8989
want := errors.New("my_error")
90-
le, err := NewLogsExporter(fakeLogsExporterConfig, zap.NewNop(), newPushLogsData(0, want))
90+
le, err := NewLogsExporter(fakeLogsExporterConfig, zap.NewNop(), newPushLogsData(want))
9191
require.Nil(t, err)
9292
require.NotNil(t, le)
9393
require.Equal(t, want, le.ConsumeLogs(context.Background(), ld))
9494
}
9595

9696
func TestLogsExporter_WithRecordLogs(t *testing.T) {
97-
le, err := NewLogsExporter(fakeLogsExporterConfig, zap.NewNop(), newPushLogsData(0, nil))
98-
require.Nil(t, err)
99-
require.NotNil(t, le)
100-
101-
checkRecordedMetricsForLogsExporter(t, le, nil)
102-
}
103-
104-
func TestLogsExporter_WithRecordLogs_NonZeroDropped(t *testing.T) {
105-
le, err := NewLogsExporter(fakeLogsExporterConfig, zap.NewNop(), newPushLogsData(1, nil))
97+
le, err := NewLogsExporter(fakeLogsExporterConfig, zap.NewNop(), newPushLogsData(nil))
10698
require.Nil(t, err)
10799
require.NotNil(t, le)
108100

@@ -111,30 +103,23 @@ func TestLogsExporter_WithRecordLogs_NonZeroDropped(t *testing.T) {
111103

112104
func TestLogsExporter_WithRecordLogs_ReturnError(t *testing.T) {
113105
want := errors.New("my_error")
114-
le, err := NewLogsExporter(fakeLogsExporterConfig, zap.NewNop(), newPushLogsData(0, want))
106+
le, err := NewLogsExporter(fakeLogsExporterConfig, zap.NewNop(), newPushLogsData(want))
115107
require.Nil(t, err)
116108
require.NotNil(t, le)
117109

118110
checkRecordedMetricsForLogsExporter(t, le, want)
119111
}
120112

121113
func TestLogsExporter_WithSpan(t *testing.T) {
122-
le, err := NewLogsExporter(fakeLogsExporterConfig, zap.NewNop(), newPushLogsData(0, nil))
123-
require.Nil(t, err)
124-
require.NotNil(t, le)
125-
checkWrapSpanForLogsExporter(t, le, nil, 1)
126-
}
127-
128-
func TestLogsExporter_WithSpan_NonZeroDropped(t *testing.T) {
129-
le, err := NewLogsExporter(fakeLogsExporterConfig, zap.NewNop(), newPushLogsData(1, nil))
114+
le, err := NewLogsExporter(fakeLogsExporterConfig, zap.NewNop(), newPushLogsData(nil))
130115
require.Nil(t, err)
131116
require.NotNil(t, le)
132117
checkWrapSpanForLogsExporter(t, le, nil, 1)
133118
}
134119

135120
func TestLogsExporter_WithSpan_ReturnError(t *testing.T) {
136121
want := errors.New("my_error")
137-
le, err := NewLogsExporter(fakeLogsExporterConfig, zap.NewNop(), newPushLogsData(0, want))
122+
le, err := NewLogsExporter(fakeLogsExporterConfig, zap.NewNop(), newPushLogsData(want))
138123
require.Nil(t, err)
139124
require.NotNil(t, le)
140125
checkWrapSpanForLogsExporter(t, le, want, 1)
@@ -144,7 +129,7 @@ func TestLogsExporter_WithShutdown(t *testing.T) {
144129
shutdownCalled := false
145130
shutdown := func(context.Context) error { shutdownCalled = true; return nil }
146131

147-
le, err := NewLogsExporter(fakeLogsExporterConfig, zap.NewNop(), newPushLogsData(0, nil), WithShutdown(shutdown))
132+
le, err := NewLogsExporter(fakeLogsExporterConfig, zap.NewNop(), newPushLogsData(nil), WithShutdown(shutdown))
148133
assert.NotNil(t, le)
149134
assert.NoError(t, err)
150135

@@ -156,16 +141,16 @@ func TestLogsExporter_WithShutdown_ReturnError(t *testing.T) {
156141
want := errors.New("my_error")
157142
shutdownErr := func(context.Context) error { return want }
158143

159-
le, err := NewLogsExporter(fakeLogsExporterConfig, zap.NewNop(), newPushLogsData(0, nil), WithShutdown(shutdownErr))
144+
le, err := NewLogsExporter(fakeLogsExporterConfig, zap.NewNop(), newPushLogsData(nil), WithShutdown(shutdownErr))
160145
assert.NotNil(t, le)
161146
assert.NoError(t, err)
162147

163148
assert.Equal(t, le.Shutdown(context.Background()), want)
164149
}
165150

166-
func newPushLogsData(droppedTimeSeries int, retError error) PushLogs {
167-
return func(ctx context.Context, td pdata.Logs) (int, error) {
168-
return droppedTimeSeries, retError
151+
func newPushLogsData(retError error) PushLogs {
152+
return func(ctx context.Context, td pdata.Logs) error {
153+
return retError
169154
}
170155
}
171156

exporter/exporterhelper/metricshelper.go

Lines changed: 7 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ import (
2929

3030
// PushMetrics is a helper function that is similar to ConsumeMetrics but also returns
3131
// the number of dropped metrics.
32-
type PushMetrics func(ctx context.Context, md pdata.Metrics) (droppedTimeSeries int, err error)
32+
type PushMetrics func(ctx context.Context, md pdata.Metrics) error
3333

3434
type metricsRequest struct {
3535
baseRequest
@@ -49,7 +49,7 @@ func (req *metricsRequest) onPartialError(partialErr consumererror.PartialError)
4949
return newMetricsRequest(req.ctx, partialErr.GetMetrics(), req.pusher)
5050
}
5151

52-
func (req *metricsRequest) export(ctx context.Context) (int, error) {
52+
func (req *metricsRequest) export(ctx context.Context) error {
5353
return req.pusher(ctx, req.md)
5454
}
5555

@@ -67,8 +67,7 @@ func (mexp *metricsExporter) ConsumeMetrics(ctx context.Context, md pdata.Metric
6767
if mexp.baseExporter.convertResourceToTelemetry {
6868
md = convertResourceToLabels(md)
6969
}
70-
_, err := mexp.sender.send(newMetricsRequest(ctx, md, mexp.pusher))
71-
return err
70+
return mexp.sender.send(newMetricsRequest(ctx, md, mexp.pusher))
7271
}
7372

7473
// NewMetricsExporter creates an MetricsExporter that records observability metrics and wraps every request with a Span.
@@ -109,16 +108,9 @@ type metricsSenderWithObservability struct {
109108
nextSender requestSender
110109
}
111110

112-
func (mewo *metricsSenderWithObservability) send(req request) (int, error) {
111+
func (mewo *metricsSenderWithObservability) send(req request) error {
113112
req.setContext(mewo.obsrep.StartMetricsExportOp(req.context()))
114-
_, err := mewo.nextSender.send(req)
115-
116-
// TODO: this is not ideal: it should come from the next function itself.
117-
// temporarily loading it from internal format. Once full switch is done
118-
// to new metrics will remove this.
119-
mReq := req.(*metricsRequest)
120-
numReceivedMetrics, numPoints := mReq.md.MetricAndDataPointCount()
121-
122-
mewo.obsrep.EndMetricsExportOp(req.context(), numPoints, err)
123-
return numReceivedMetrics, err
113+
err := mewo.nextSender.send(req)
114+
mewo.obsrep.EndMetricsExportOp(req.context(), req.count(), err)
115+
return err
124116
}

exporter/exporterhelper/metricshelper_test.go

Lines changed: 15 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -57,13 +57,13 @@ func TestMetricsRequest(t *testing.T) {
5757
}
5858

5959
func TestMetricsExporter_InvalidName(t *testing.T) {
60-
me, err := NewMetricsExporter(nil, zap.NewNop(), newPushMetricsData(0, nil))
60+
me, err := NewMetricsExporter(nil, zap.NewNop(), newPushMetricsData(nil))
6161
require.Nil(t, me)
6262
require.Equal(t, errNilConfig, err)
6363
}
6464

6565
func TestMetricsExporter_NilLogger(t *testing.T) {
66-
me, err := NewMetricsExporter(fakeMetricsExporterConfig, nil, newPushMetricsData(0, nil))
66+
me, err := NewMetricsExporter(fakeMetricsExporterConfig, nil, newPushMetricsData(nil))
6767
require.Nil(t, me)
6868
require.Equal(t, errNilLogger, err)
6969
}
@@ -76,7 +76,7 @@ func TestMetricsExporter_NilPushMetricsData(t *testing.T) {
7676

7777
func TestMetricsExporter_Default(t *testing.T) {
7878
md := testdata.GenerateMetricsEmpty()
79-
me, err := NewMetricsExporter(fakeMetricsExporterConfig, zap.NewNop(), newPushMetricsData(0, nil))
79+
me, err := NewMetricsExporter(fakeMetricsExporterConfig, zap.NewNop(), newPushMetricsData(nil))
8080
assert.NotNil(t, me)
8181
assert.NoError(t, err)
8282

@@ -87,22 +87,14 @@ func TestMetricsExporter_Default(t *testing.T) {
8787
func TestMetricsExporter_Default_ReturnError(t *testing.T) {
8888
md := testdata.GenerateMetricsEmpty()
8989
want := errors.New("my_error")
90-
me, err := NewMetricsExporter(fakeMetricsExporterConfig, zap.NewNop(), newPushMetricsData(0, want))
90+
me, err := NewMetricsExporter(fakeMetricsExporterConfig, zap.NewNop(), newPushMetricsData(want))
9191
require.Nil(t, err)
9292
require.NotNil(t, me)
9393
require.Equal(t, want, me.ConsumeMetrics(context.Background(), md))
9494
}
9595

9696
func TestMetricsExporter_WithRecordMetrics(t *testing.T) {
97-
me, err := NewMetricsExporter(fakeMetricsExporterConfig, zap.NewNop(), newPushMetricsData(0, nil))
98-
require.Nil(t, err)
99-
require.NotNil(t, me)
100-
101-
checkRecordedMetricsForMetricsExporter(t, me, nil)
102-
}
103-
104-
func TestMetricsExporter_WithRecordMetrics_NonZeroDropped(t *testing.T) {
105-
me, err := NewMetricsExporter(fakeMetricsExporterConfig, zap.NewNop(), newPushMetricsData(1, nil))
97+
me, err := NewMetricsExporter(fakeMetricsExporterConfig, zap.NewNop(), newPushMetricsData(nil))
10698
require.Nil(t, err)
10799
require.NotNil(t, me)
108100

@@ -111,30 +103,23 @@ func TestMetricsExporter_WithRecordMetrics_NonZeroDropped(t *testing.T) {
111103

112104
func TestMetricsExporter_WithRecordMetrics_ReturnError(t *testing.T) {
113105
want := errors.New("my_error")
114-
me, err := NewMetricsExporter(fakeMetricsExporterConfig, zap.NewNop(), newPushMetricsData(0, want))
106+
me, err := NewMetricsExporter(fakeMetricsExporterConfig, zap.NewNop(), newPushMetricsData(want))
115107
require.Nil(t, err)
116108
require.NotNil(t, me)
117109

118110
checkRecordedMetricsForMetricsExporter(t, me, want)
119111
}
120112

121113
func TestMetricsExporter_WithSpan(t *testing.T) {
122-
me, err := NewMetricsExporter(fakeMetricsExporterConfig, zap.NewNop(), newPushMetricsData(0, nil))
123-
require.Nil(t, err)
124-
require.NotNil(t, me)
125-
checkWrapSpanForMetricsExporter(t, me, nil, 1)
126-
}
127-
128-
func TestMetricsExporter_WithSpan_NonZeroDropped(t *testing.T) {
129-
me, err := NewMetricsExporter(fakeMetricsExporterConfig, zap.NewNop(), newPushMetricsData(1, nil))
114+
me, err := NewMetricsExporter(fakeMetricsExporterConfig, zap.NewNop(), newPushMetricsData(nil))
130115
require.Nil(t, err)
131116
require.NotNil(t, me)
132117
checkWrapSpanForMetricsExporter(t, me, nil, 1)
133118
}
134119

135120
func TestMetricsExporter_WithSpan_ReturnError(t *testing.T) {
136121
want := errors.New("my_error")
137-
me, err := NewMetricsExporter(fakeMetricsExporterConfig, zap.NewNop(), newPushMetricsData(0, want))
122+
me, err := NewMetricsExporter(fakeMetricsExporterConfig, zap.NewNop(), newPushMetricsData(want))
138123
require.Nil(t, err)
139124
require.NotNil(t, me)
140125
checkWrapSpanForMetricsExporter(t, me, want, 1)
@@ -144,7 +129,7 @@ func TestMetricsExporter_WithShutdown(t *testing.T) {
144129
shutdownCalled := false
145130
shutdown := func(context.Context) error { shutdownCalled = true; return nil }
146131

147-
me, err := NewMetricsExporter(fakeMetricsExporterConfig, zap.NewNop(), newPushMetricsData(0, nil), WithShutdown(shutdown))
132+
me, err := NewMetricsExporter(fakeMetricsExporterConfig, zap.NewNop(), newPushMetricsData(nil), WithShutdown(shutdown))
148133
assert.NotNil(t, me)
149134
assert.NoError(t, err)
150135

@@ -154,7 +139,7 @@ func TestMetricsExporter_WithShutdown(t *testing.T) {
154139

155140
func TestMetricsExporter_WithResourceToTelemetryConversionDisabled(t *testing.T) {
156141
md := testdata.GenerateMetricsTwoMetrics()
157-
me, err := NewMetricsExporter(fakeMetricsExporterConfig, zap.NewNop(), newPushMetricsData(0, nil), WithResourceToTelemetryConversion(defaultResourceToTelemetrySettings()))
142+
me, err := NewMetricsExporter(fakeMetricsExporterConfig, zap.NewNop(), newPushMetricsData(nil), WithResourceToTelemetryConversion(defaultResourceToTelemetrySettings()))
158143
assert.NotNil(t, me)
159144
assert.NoError(t, err)
160145

@@ -164,7 +149,7 @@ func TestMetricsExporter_WithResourceToTelemetryConversionDisabled(t *testing.T)
164149

165150
func TestMetricsExporter_WithResourceToTelemetryConversionEbabled(t *testing.T) {
166151
md := testdata.GenerateMetricsTwoMetrics()
167-
me, err := NewMetricsExporter(fakeMetricsExporterConfig, zap.NewNop(), newPushMetricsData(0, nil), WithResourceToTelemetryConversion(ResourceToTelemetrySettings{Enabled: true}))
152+
me, err := NewMetricsExporter(fakeMetricsExporterConfig, zap.NewNop(), newPushMetricsData(nil), WithResourceToTelemetryConversion(ResourceToTelemetrySettings{Enabled: true}))
168153
assert.NotNil(t, me)
169154
assert.NoError(t, err)
170155

@@ -176,16 +161,16 @@ func TestMetricsExporter_WithShutdown_ReturnError(t *testing.T) {
176161
want := errors.New("my_error")
177162
shutdownErr := func(context.Context) error { return want }
178163

179-
me, err := NewMetricsExporter(fakeMetricsExporterConfig, zap.NewNop(), newPushMetricsData(0, nil), WithShutdown(shutdownErr))
164+
me, err := NewMetricsExporter(fakeMetricsExporterConfig, zap.NewNop(), newPushMetricsData(nil), WithShutdown(shutdownErr))
180165
assert.NotNil(t, me)
181166
assert.NoError(t, err)
182167

183168
assert.Equal(t, me.Shutdown(context.Background()), want)
184169
}
185170

186-
func newPushMetricsData(droppedTimeSeries int, retError error) PushMetrics {
187-
return func(ctx context.Context, td pdata.Metrics) (int, error) {
188-
return droppedTimeSeries, retError
171+
func newPushMetricsData(retError error) PushMetrics {
172+
return func(ctx context.Context, td pdata.Metrics) error {
173+
return retError
189174
}
190175
}
191176

0 commit comments

Comments
 (0)