@@ -36,8 +36,10 @@ func TestSplitMetrics_noop(t *testing.T) {
3636func TestSplitMetrics (t * testing.T ) {
3737 md := testdata .GenerateMetricsManyMetricsSameResource (20 )
3838 metrics := md .ResourceMetrics ().At (0 ).InstrumentationLibraryMetrics ().At (0 ).Metrics ()
39+ dataPointCount := metrics .At (0 ).DataPointCount ()
3940 for i := 0 ; i < metrics .Len (); i ++ {
4041 metrics .At (i ).SetName (getTestMetricName (0 , i ))
42+ assert .Equal (t , dataPointCount , metrics .At (i ).DataPointCount ())
4143 }
4244 cp := pdata .NewMetrics ()
4345 cpMetrics := cp .ResourceMetrics ().AppendEmpty ().InstrumentationLibraryMetrics ().AppendEmpty ().Metrics ()
@@ -52,9 +54,10 @@ func TestSplitMetrics(t *testing.T) {
5254 metrics .At (3 ).CopyTo (cpMetrics .At (3 ))
5355 metrics .At (4 ).CopyTo (cpMetrics .At (4 ))
5456
55- splitSize := 5
57+ splitMetricCount := 5
58+ splitSize := splitMetricCount * dataPointCount
5659 split := splitMetrics (splitSize , md )
57- assert .Equal (t , splitSize , split .MetricCount ())
60+ assert .Equal (t , splitMetricCount , split .MetricCount ())
5861 assert .Equal (t , cp , split )
5962 assert .Equal (t , 15 , md .MetricCount ())
6063 assert .Equal (t , "test-metric-int-0-0" , split .ResourceMetrics ().At (0 ).InstrumentationLibraryMetrics ().At (0 ).Metrics ().At (0 ).Name ())
@@ -79,8 +82,10 @@ func TestSplitMetrics(t *testing.T) {
7982func TestSplitMetricsMultipleResourceSpans (t * testing.T ) {
8083 md := testdata .GenerateMetricsManyMetricsSameResource (20 )
8184 metrics := md .ResourceMetrics ().At (0 ).InstrumentationLibraryMetrics ().At (0 ).Metrics ()
85+ dataPointCount := metrics .At (0 ).DataPointCount ()
8286 for i := 0 ; i < metrics .Len (); i ++ {
8387 metrics .At (i ).SetName (getTestMetricName (0 , i ))
88+ assert .Equal (t , dataPointCount , metrics .At (i ).DataPointCount ())
8489 }
8590 // add second index to resource metrics
8691 testdata .GenerateMetricsManyMetricsSameResource (20 ).
@@ -90,9 +95,10 @@ func TestSplitMetricsMultipleResourceSpans(t *testing.T) {
9095 metrics .At (i ).SetName (getTestMetricName (1 , i ))
9196 }
9297
93- splitSize := 5
98+ splitMetricCount := 5
99+ splitSize := splitMetricCount * dataPointCount
94100 split := splitMetrics (splitSize , md )
95- assert .Equal (t , splitSize , split .MetricCount ())
101+ assert .Equal (t , splitMetricCount , split .MetricCount ())
96102 assert .Equal (t , 35 , md .MetricCount ())
97103 assert .Equal (t , "test-metric-int-0-0" , split .ResourceMetrics ().At (0 ).InstrumentationLibraryMetrics ().At (0 ).Metrics ().At (0 ).Name ())
98104 assert .Equal (t , "test-metric-int-0-4" , split .ResourceMetrics ().At (0 ).InstrumentationLibraryMetrics ().At (0 ).Metrics ().At (4 ).Name ())
@@ -101,8 +107,10 @@ func TestSplitMetricsMultipleResourceSpans(t *testing.T) {
101107func TestSplitMetricsMultipleResourceSpans_SplitSizeGreaterThanMetricSize (t * testing.T ) {
102108 td := testdata .GenerateMetricsManyMetricsSameResource (20 )
103109 metrics := td .ResourceMetrics ().At (0 ).InstrumentationLibraryMetrics ().At (0 ).Metrics ()
110+ dataPointCount := metrics .At (0 ).DataPointCount ()
104111 for i := 0 ; i < metrics .Len (); i ++ {
105112 metrics .At (i ).SetName (getTestMetricName (0 , i ))
113+ assert .Equal (t , dataPointCount , metrics .At (i ).DataPointCount ())
106114 }
107115 td .ResourceMetrics ().Resize (2 )
108116 // add second index to resource metrics
@@ -113,10 +121,11 @@ func TestSplitMetricsMultipleResourceSpans_SplitSizeGreaterThanMetricSize(t *tes
113121 metrics .At (i ).SetName (getTestMetricName (1 , i ))
114122 }
115123
116- splitSize := 25
124+ splitMetricCount := 25
125+ splitSize := splitMetricCount * dataPointCount
117126 split := splitMetrics (splitSize , td )
118- assert .Equal (t , splitSize , split .MetricCount ())
119- assert .Equal (t , 40 - splitSize , td .MetricCount ())
127+ assert .Equal (t , splitMetricCount , split .MetricCount ())
128+ assert .Equal (t , 40 - splitMetricCount , td .MetricCount ())
120129 assert .Equal (t , 1 , td .ResourceMetrics ().Len ())
121130 assert .Equal (t , "test-metric-int-0-0" , split .ResourceMetrics ().At (0 ).InstrumentationLibraryMetrics ().At (0 ).Metrics ().At (0 ).Name ())
122131 assert .Equal (t , "test-metric-int-0-19" , split .ResourceMetrics ().At (0 ).InstrumentationLibraryMetrics ().At (0 ).Metrics ().At (19 ).Name ())
@@ -166,3 +175,31 @@ func BenchmarkCloneMetrics(b *testing.B) {
166175 }
167176 }
168177}
178+
179+ func TestSplitMetricsNotFull (t * testing.T ) {
180+ md := testdata .GenerateMetricsManyMetricsSameResource (10 )
181+ metrics := md .ResourceMetrics ().At (0 ).InstrumentationLibraryMetrics ().At (0 ).Metrics ()
182+ dataPointCount := 2
183+ for i := 0 ; i < metrics .Len (); i ++ {
184+ metrics .At (i ).SetName (getTestMetricName (0 , i ))
185+ assert .Equal (t , dataPointCount , metrics .At (i ).DataPointCount ())
186+ }
187+
188+ splitSize := 9
189+ split := splitMetrics (splitSize , md )
190+ assert .Equal (t , 4 , split .MetricCount ())
191+ assert .Equal (t , 6 , md .MetricCount ())
192+ assert .Equal (t , "test-metric-int-0-0" , split .ResourceMetrics ().At (0 ).InstrumentationLibraryMetrics ().At (0 ).Metrics ().At (0 ).Name ())
193+ assert .Equal (t , "test-metric-int-0-3" , split .ResourceMetrics ().At (0 ).InstrumentationLibraryMetrics ().At (0 ).Metrics ().At (3 ).Name ())
194+
195+ split = splitMetrics (splitSize , md )
196+ assert .Equal (t , 4 , split .MetricCount ())
197+ assert .Equal (t , 2 , md .MetricCount ())
198+ assert .Equal (t , "test-metric-int-0-4" , split .ResourceMetrics ().At (0 ).InstrumentationLibraryMetrics ().At (0 ).Metrics ().At (0 ).Name ())
199+ assert .Equal (t , "test-metric-int-0-7" , split .ResourceMetrics ().At (0 ).InstrumentationLibraryMetrics ().At (0 ).Metrics ().At (3 ).Name ())
200+
201+ split = splitMetrics (splitSize , md )
202+ assert .Equal (t , 2 , split .MetricCount ())
203+ assert .Equal (t , "test-metric-int-0-8" , split .ResourceMetrics ().At (0 ).InstrumentationLibraryMetrics ().At (0 ).Metrics ().At (0 ).Name ())
204+ assert .Equal (t , "test-metric-int-0-9" , split .ResourceMetrics ().At (0 ).InstrumentationLibraryMetrics ().At (0 ).Metrics ().At (1 ).Name ())
205+ }
0 commit comments