@@ -15,8 +15,9 @@ import (
15
15
)
16
16
17
17
// Measure unmarshal performance between Remote Write 1.0 and 2.0.
18
+ // Testing with large data sets, use "-benchtime 5s" to get more accurate results.
18
19
func BenchmarkUnMarshal (b * testing.B ) {
19
- const numSeries = 1000
20
+ const numSeries = 10000
20
21
21
22
const numFamilies = 100 // Number of unique metric families.
22
23
@@ -51,6 +52,7 @@ func BenchmarkUnMarshal(b *testing.B) {
51
52
for i := 0 ; i < numFamilies ; i ++ {
52
53
rw1Request .Metadata [i ].MetricFamilyName = fmt .Sprintf ("metric_%d" , i )
53
54
rw1Request .Metadata [i ].Help = fmt .Sprintf ("help_%d" , i )
55
+ rw1Request .Metadata [i ].Unit = fmt .Sprintf ("unit_%d" , i )
54
56
rw1Request .Metadata [i ].Type = rw1 .MetricMetadata_COUNTER
55
57
}
56
58
@@ -79,12 +81,13 @@ func BenchmarkUnMarshal(b *testing.B) {
79
81
rw2Ts .Exemplars = append (rw2Ts .Exemplars , rw2Exemplar )
80
82
}
81
83
rw2Ts .Metadata .Type = rw2 .Metadata_METRIC_TYPE_COUNTER
82
- rw2Ts .Metadata .HelpRef = symBuilder .GetSymbol (rw1Request .Metadata [i / numFamilies ].Help )
83
- rw2Ts .Metadata .UnitRef = symBuilder .GetSymbol (rw1Request .Metadata [i / numFamilies ].Unit )
84
+ rw2Ts .Metadata .HelpRef = symBuilder .GetSymbol (rw1Request .Metadata [i % numFamilies ].Help )
85
+ rw2Ts .Metadata .UnitRef = symBuilder .GetSymbol (rw1Request .Metadata [i % numFamilies ].Unit )
84
86
85
87
rw2Request .Timeseries = append (rw2Request .Timeseries , rw2Ts )
86
88
}
87
89
rw2Request .Symbols = symBuilder .GetSymbols ()
90
+ require .Len (b , rw2Request .Symbols , numCommonLabels * 2 + numSeries * numUniqueLabels * 2 + numFamilies * 2 + numExemplarLabels * numSeries * numExemplars * 2 )
88
91
89
92
rw1Data , err := rw1Request .Marshal ()
90
93
require .NoError (b , err )
@@ -124,10 +127,11 @@ func generateLabels(prefix string, seriesNumber, numCommonLabels, numUniqueLabel
124
127
labels [i ].Name = prefix + "common_label_" + strconv .Itoa (i )
125
128
labels [i ].Value = prefix + "common_value_" + strconv .Itoa (i )
126
129
}
127
- for i := numCommonLabels ; i < numCommonLabels + numUniqueLabels ; i ++ {
128
- uid := seriesNumber * (numCommonLabels + numUniqueLabels ) + i
129
- labels [i ].Name = prefix + "unique_label_" + strconv .Itoa (uid )
130
- labels [i ].Value = prefix + "unique_value_" + strconv .Itoa (uid )
130
+ for i := 0 ; i < numUniqueLabels ; i ++ {
131
+ idx := numCommonLabels + i
132
+ uid := seriesNumber * (numUniqueLabels ) + i
133
+ labels [idx ].Name = prefix + "unique_label_" + strconv .Itoa (uid )
134
+ labels [idx ].Value = prefix + "unique_value_" + strconv .Itoa (uid )
131
135
}
132
136
return labels
133
137
}
0 commit comments