@@ -45,11 +45,21 @@ func BenchmarkSyncMeasure(b *testing.B) {
4545 }
4646}
4747
48+ func exponentialAggregationSelector (ik InstrumentKind ) Aggregation {
49+ if ik == InstrumentKindHistogram {
50+ return AggregationBase2ExponentialHistogram {MaxScale : 20 , MaxSize : 160 }
51+ }
52+ return AggregationDefault {}
53+ }
54+
4855func benchSyncViews (views ... View ) func (* testing.B ) {
4956 ctx := context .Background ()
5057 rdr := NewManualReader ()
5158 provider := NewMeterProvider (WithReader (rdr ), WithView (views ... ))
5259 meter := provider .Meter ("benchSyncViews" )
60+ expRdr := NewManualReader (WithAggregationSelector (exponentialAggregationSelector ))
61+ expProvider := NewMeterProvider (WithReader (expRdr ), WithView (views ... ))
62+ expMeter := expProvider .Meter ("benchSyncViews" )
5363 return func (b * testing.B ) {
5464 iCtr , err := meter .Int64Counter ("int64-counter" )
5565 assert .NoError (b , err )
@@ -104,6 +114,24 @@ func benchSyncViews(views ...View) func(*testing.B) {
104114 return func () { fHist .Record (ctx , 1 , o ... ) }
105115 }
106116 }()))
117+
118+ expIHist , err := expMeter .Int64Histogram ("exponential-int64-histogram" )
119+ assert .NoError (b , err )
120+ b .Run ("ExponentialInt64Histogram" , benchMeasAttrs (func () measF {
121+ return func (s attribute.Set ) func () {
122+ o := []metric.RecordOption {metric .WithAttributeSet (s )}
123+ return func () { expIHist .Record (ctx , 1 , o ... ) }
124+ }
125+ }()))
126+
127+ expFHist , err := expMeter .Float64Histogram ("exponential-float64-histogram" )
128+ assert .NoError (b , err )
129+ b .Run ("ExponentialFloat64Histogram" , benchMeasAttrs (func () measF {
130+ return func (s attribute.Set ) func () {
131+ o := []metric.RecordOption {metric .WithAttributeSet (s )}
132+ return func () { expFHist .Record (ctx , 1 , o ... ) }
133+ }
134+ }()))
107135 }
108136}
109137
0 commit comments