You've already forked opentelemetry-go
mirror of
https://github.com/open-telemetry/opentelemetry-go.git
synced 2025-11-27 22:49:15 +02:00
Change the Reader.Collect Signature. (#3732)
* Changes the signature of Collect(). This DOES NOT make the SDK reuse memory, but it does enable it to be added.
This commit is contained in:
@@ -53,13 +53,14 @@ func (ts *readerTestSuite) TearDownTest() {
|
||||
}
|
||||
|
||||
func (ts *readerTestSuite) TestErrorForNotRegistered() {
|
||||
_, err := ts.Reader.Collect(context.Background())
|
||||
err := ts.Reader.Collect(context.Background(), &metricdata.ResourceMetrics{})
|
||||
ts.ErrorIs(err, ErrReaderNotRegistered)
|
||||
}
|
||||
|
||||
func (ts *readerTestSuite) TestSDKProducer() {
|
||||
ts.Reader.register(testSDKProducer{})
|
||||
m, err := ts.Reader.Collect(context.Background())
|
||||
m := metricdata.ResourceMetrics{}
|
||||
err := ts.Reader.Collect(context.Background(), &m)
|
||||
ts.NoError(err)
|
||||
ts.Equal(testResourceMetricsA, m)
|
||||
}
|
||||
@@ -67,7 +68,8 @@ func (ts *readerTestSuite) TestSDKProducer() {
|
||||
func (ts *readerTestSuite) TestExternalProducer() {
|
||||
ts.Reader.register(testSDKProducer{})
|
||||
ts.Reader.RegisterProducer(testExternalProducer{})
|
||||
m, err := ts.Reader.Collect(context.Background())
|
||||
m := metricdata.ResourceMetrics{}
|
||||
err := ts.Reader.Collect(context.Background(), &m)
|
||||
ts.NoError(err)
|
||||
ts.Equal(testResourceMetricsAB, m)
|
||||
}
|
||||
@@ -78,7 +80,8 @@ func (ts *readerTestSuite) TestCollectAfterShutdown() {
|
||||
ts.Reader.RegisterProducer(testExternalProducer{})
|
||||
ts.Require().NoError(ts.Reader.Shutdown(ctx))
|
||||
|
||||
m, err := ts.Reader.Collect(ctx)
|
||||
m := metricdata.ResourceMetrics{}
|
||||
err := ts.Reader.Collect(ctx, &m)
|
||||
ts.ErrorIs(err, ErrReaderShutdown)
|
||||
ts.Equal(metricdata.ResourceMetrics{}, m)
|
||||
}
|
||||
@@ -113,7 +116,7 @@ func (ts *readerTestSuite) TestMultipleRegister() {
|
||||
// This should be ignored.
|
||||
ts.Reader.register(p1)
|
||||
|
||||
_, err := ts.Reader.Collect(context.Background())
|
||||
err := ts.Reader.Collect(context.Background(), &metricdata.ResourceMetrics{})
|
||||
ts.Equal(assert.AnError, err)
|
||||
}
|
||||
|
||||
@@ -134,7 +137,8 @@ func (ts *readerTestSuite) TestExternalProducerPartialSuccess() {
|
||||
},
|
||||
)
|
||||
|
||||
m, err := ts.Reader.Collect(context.Background())
|
||||
m := metricdata.ResourceMetrics{}
|
||||
err := ts.Reader.Collect(context.Background(), &m)
|
||||
ts.Equal(assert.AnError, err)
|
||||
ts.Equal(testResourceMetricsAB, m)
|
||||
}
|
||||
@@ -146,7 +150,8 @@ func (ts *readerTestSuite) TestSDKFailureBlocksExternalProducer() {
|
||||
}})
|
||||
ts.Reader.RegisterProducer(testExternalProducer{})
|
||||
|
||||
m, err := ts.Reader.Collect(context.Background())
|
||||
m := metricdata.ResourceMetrics{}
|
||||
err := ts.Reader.Collect(context.Background(), &m)
|
||||
ts.Equal(assert.AnError, err)
|
||||
ts.Equal(metricdata.ResourceMetrics{}, m)
|
||||
}
|
||||
@@ -165,7 +170,7 @@ func (ts *readerTestSuite) TestMethodConcurrency() {
|
||||
wg.Add(1)
|
||||
go func() {
|
||||
defer wg.Done()
|
||||
_, _ = ts.Reader.Collect(ctx)
|
||||
_ = ts.Reader.Collect(ctx, nil)
|
||||
}()
|
||||
|
||||
wg.Add(1)
|
||||
@@ -190,11 +195,17 @@ func (ts *readerTestSuite) TestShutdownBeforeRegister() {
|
||||
ts.Reader.register(testSDKProducer{})
|
||||
ts.Reader.RegisterProducer(testExternalProducer{})
|
||||
|
||||
m, err := ts.Reader.Collect(ctx)
|
||||
m := metricdata.ResourceMetrics{}
|
||||
err := ts.Reader.Collect(ctx, &m)
|
||||
ts.ErrorIs(err, ErrReaderShutdown)
|
||||
ts.Equal(metricdata.ResourceMetrics{}, m)
|
||||
}
|
||||
|
||||
func (ts *readerTestSuite) TestCollectNilResourceMetricError() {
|
||||
ctx := context.Background()
|
||||
ts.Assert().Error(ts.Reader.Collect(ctx, nil))
|
||||
}
|
||||
|
||||
var testScopeMetricsA = metricdata.ScopeMetrics{
|
||||
Scope: instrumentation.Scope{Name: "sdk/metric/test/reader"},
|
||||
Metrics: []metricdata.Metrics{{
|
||||
@@ -279,7 +290,7 @@ func benchReaderCollectFunc(r Reader) func(*testing.B) {
|
||||
b.ResetTimer()
|
||||
|
||||
for n := 0; n < b.N; n++ {
|
||||
collectedMetrics, err = r.Collect(ctx)
|
||||
err = r.Collect(ctx, &collectedMetrics)
|
||||
assert.Equalf(b, testResourceMetricsA, collectedMetrics, "unexpected Collect response: (%#v, %v)", collectedMetrics, err)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user