@@ -39,9 +39,31 @@ var viewBenchmarks = []struct {
3939 },
4040}
4141
42+ var (
43+ sampledSpanContext = trace .NewSpanContext (trace.SpanContextConfig {
44+ SpanID : trace.SpanID {0o1 },
45+ TraceID : trace.TraceID {0o1 },
46+ TraceFlags : trace .FlagsSampled ,
47+ })
48+ notSampledSpanContext = trace .NewSpanContext (trace.SpanContextConfig {
49+ SpanID : trace.SpanID {0o1 },
50+ TraceID : trace.TraceID {0o1 },
51+ })
52+ )
53+
54+ var exemplarBenchmarks = []struct {
55+ Name string
56+ SpanContext trace.SpanContext
57+ }{
58+ {"ExemplarsDisabled" , notSampledSpanContext },
59+ {"ExemplarsEnabled" , sampledSpanContext },
60+ }
61+
4262func BenchmarkSyncMeasure (b * testing.B ) {
4363 for _ , bc := range viewBenchmarks {
44- b .Run (bc .Name , benchSyncViews (bc .Views ... ))
64+ for _ , eb := range exemplarBenchmarks {
65+ b .Run (fmt .Sprintf ("%s/%s" , bc .Name , eb .Name ), benchSyncViews (eb .SpanContext , bc .Views ... ))
66+ }
4567 }
4668}
4769
@@ -52,20 +74,21 @@ func exponentialAggregationSelector(ik InstrumentKind) Aggregation {
5274 return AggregationDefault {}
5375}
5476
55- func benchSyncViews (views ... View ) func (* testing.B ) {
77+ func benchSyncViews (sc trace. SpanContext , views ... View ) func (* testing.B ) {
5678 rdr := NewManualReader ()
5779 provider := NewMeterProvider (WithReader (rdr ), WithView (views ... ))
5880 meter := provider .Meter ("benchSyncViews" )
5981 expRdr := NewManualReader (WithAggregationSelector (exponentialAggregationSelector ))
6082 expProvider := NewMeterProvider (WithReader (expRdr ), WithView (views ... ))
6183 expMeter := expProvider .Meter ("benchSyncViews" )
6284 return func (b * testing.B ) {
85+ ctx := trace .ContextWithSpanContext (b .Context (), sc )
6386 iCtr , err := meter .Int64Counter ("int64-counter" )
6487 assert .NoError (b , err )
6588 b .Run ("Int64Counter" , benchMeasAttrs (func () measF {
6689 return func (s attribute.Set ) func () {
6790 o := []metric.AddOption {metric .WithAttributeSet (s )}
68- return func () { iCtr .Add (b . Context () , 1 , o ... ) }
91+ return func () { iCtr .Add (ctx , 1 , o ... ) }
6992 }
7093 }()))
7194
@@ -74,7 +97,7 @@ func benchSyncViews(views ...View) func(*testing.B) {
7497 b .Run ("Float64Counter" , benchMeasAttrs (func () measF {
7598 return func (s attribute.Set ) func () {
7699 o := []metric.AddOption {metric .WithAttributeSet (s )}
77- return func () { fCtr .Add (b . Context () , 1 , o ... ) }
100+ return func () { fCtr .Add (ctx , 1 , o ... ) }
78101 }
79102 }()))
80103
@@ -83,7 +106,7 @@ func benchSyncViews(views ...View) func(*testing.B) {
83106 b .Run ("Int64UpDownCounter" , benchMeasAttrs (func () measF {
84107 return func (s attribute.Set ) func () {
85108 o := []metric.AddOption {metric .WithAttributeSet (s )}
86- return func () { iUDCtr .Add (b . Context () , 1 , o ... ) }
109+ return func () { iUDCtr .Add (ctx , 1 , o ... ) }
87110 }
88111 }()))
89112
@@ -92,7 +115,7 @@ func benchSyncViews(views ...View) func(*testing.B) {
92115 b .Run ("Float64UpDownCounter" , benchMeasAttrs (func () measF {
93116 return func (s attribute.Set ) func () {
94117 o := []metric.AddOption {metric .WithAttributeSet (s )}
95- return func () { fUDCtr .Add (b . Context () , 1 , o ... ) }
118+ return func () { fUDCtr .Add (ctx , 1 , o ... ) }
96119 }
97120 }()))
98121
@@ -101,7 +124,7 @@ func benchSyncViews(views ...View) func(*testing.B) {
101124 b .Run ("Int64Gauge" , benchMeasAttrs (func () measF {
102125 return func (s attribute.Set ) func () {
103126 o := []metric.RecordOption {metric .WithAttributeSet (s )}
104- return func () { iGauge .Record (b . Context () , 1 , o ... ) }
127+ return func () { iGauge .Record (ctx , 1 , o ... ) }
105128 }
106129 }()))
107130
@@ -110,7 +133,7 @@ func benchSyncViews(views ...View) func(*testing.B) {
110133 b .Run ("Float64Gauge" , benchMeasAttrs (func () measF {
111134 return func (s attribute.Set ) func () {
112135 o := []metric.RecordOption {metric .WithAttributeSet (s )}
113- return func () { fGauge .Record (b . Context () , 1 , o ... ) }
136+ return func () { fGauge .Record (ctx , 1 , o ... ) }
114137 }
115138 }()))
116139
@@ -119,7 +142,7 @@ func benchSyncViews(views ...View) func(*testing.B) {
119142 b .Run ("Int64Histogram" , benchMeasAttrs (func () measF {
120143 return func (s attribute.Set ) func () {
121144 o := []metric.RecordOption {metric .WithAttributeSet (s )}
122- return func () { iHist .Record (b . Context () , 1 , o ... ) }
145+ return func () { iHist .Record (ctx , 1 , o ... ) }
123146 }
124147 }()))
125148
@@ -128,7 +151,7 @@ func benchSyncViews(views ...View) func(*testing.B) {
128151 b .Run ("Float64Histogram" , benchMeasAttrs (func () measF {
129152 return func (s attribute.Set ) func () {
130153 o := []metric.RecordOption {metric .WithAttributeSet (s )}
131- return func () { fHist .Record (b . Context () , 1 , o ... ) }
154+ return func () { fHist .Record (ctx , 1 , o ... ) }
132155 }
133156 }()))
134157
@@ -137,7 +160,7 @@ func benchSyncViews(views ...View) func(*testing.B) {
137160 b .Run ("ExponentialInt64Histogram" , benchMeasAttrs (func () measF {
138161 return func (s attribute.Set ) func () {
139162 o := []metric.RecordOption {metric .WithAttributeSet (s )}
140- return func () { expIHist .Record (b . Context () , 1 , o ... ) }
163+ return func () { expIHist .Record (ctx , 1 , o ... ) }
141164 }
142165 }()))
143166
@@ -146,7 +169,7 @@ func benchSyncViews(views ...View) func(*testing.B) {
146169 b .Run ("ExponentialFloat64Histogram" , benchMeasAttrs (func () measF {
147170 return func (s attribute.Set ) func () {
148171 o := []metric.RecordOption {metric .WithAttributeSet (s )}
149- return func () { expFHist .Record (b . Context () , 1 , o ... ) }
172+ return func () { expFHist .Record (ctx , 1 , o ... ) }
150173 }
151174 }()))
152175 }
@@ -406,12 +429,7 @@ func benchCollectAttrs(setup func(attribute.Set) Reader) func(*testing.B) {
406429}
407430
408431func BenchmarkExemplars (b * testing.B ) {
409- sc := trace .NewSpanContext (trace.SpanContextConfig {
410- SpanID : trace.SpanID {0o1 },
411- TraceID : trace.TraceID {0o1 },
412- TraceFlags : trace .FlagsSampled ,
413- })
414- ctx := trace .ContextWithSpanContext (b .Context (), sc )
432+ ctx := trace .ContextWithSpanContext (b .Context (), sampledSpanContext )
415433
416434 attr := attribute .NewSet (
417435 attribute .String ("user" , "Alice" ),
0 commit comments