@@ -39,9 +39,31 @@ var viewBenchmarks = []struct {
39
39
},
40
40
}
41
41
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
+
42
62
func BenchmarkSyncMeasure (b * testing.B ) {
43
63
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
+ }
45
67
}
46
68
}
47
69
@@ -52,20 +74,21 @@ func exponentialAggregationSelector(ik InstrumentKind) Aggregation {
52
74
return AggregationDefault {}
53
75
}
54
76
55
- func benchSyncViews (views ... View ) func (* testing.B ) {
77
+ func benchSyncViews (sc trace. SpanContext , views ... View ) func (* testing.B ) {
56
78
rdr := NewManualReader ()
57
79
provider := NewMeterProvider (WithReader (rdr ), WithView (views ... ))
58
80
meter := provider .Meter ("benchSyncViews" )
59
81
expRdr := NewManualReader (WithAggregationSelector (exponentialAggregationSelector ))
60
82
expProvider := NewMeterProvider (WithReader (expRdr ), WithView (views ... ))
61
83
expMeter := expProvider .Meter ("benchSyncViews" )
62
84
return func (b * testing.B ) {
85
+ ctx := trace .ContextWithSpanContext (b .Context (), sc )
63
86
iCtr , err := meter .Int64Counter ("int64-counter" )
64
87
assert .NoError (b , err )
65
88
b .Run ("Int64Counter" , benchMeasAttrs (func () measF {
66
89
return func (s attribute.Set ) func () {
67
90
o := []metric.AddOption {metric .WithAttributeSet (s )}
68
- return func () { iCtr .Add (b . Context () , 1 , o ... ) }
91
+ return func () { iCtr .Add (ctx , 1 , o ... ) }
69
92
}
70
93
}()))
71
94
@@ -74,7 +97,7 @@ func benchSyncViews(views ...View) func(*testing.B) {
74
97
b .Run ("Float64Counter" , benchMeasAttrs (func () measF {
75
98
return func (s attribute.Set ) func () {
76
99
o := []metric.AddOption {metric .WithAttributeSet (s )}
77
- return func () { fCtr .Add (b . Context () , 1 , o ... ) }
100
+ return func () { fCtr .Add (ctx , 1 , o ... ) }
78
101
}
79
102
}()))
80
103
@@ -83,7 +106,7 @@ func benchSyncViews(views ...View) func(*testing.B) {
83
106
b .Run ("Int64UpDownCounter" , benchMeasAttrs (func () measF {
84
107
return func (s attribute.Set ) func () {
85
108
o := []metric.AddOption {metric .WithAttributeSet (s )}
86
- return func () { iUDCtr .Add (b . Context () , 1 , o ... ) }
109
+ return func () { iUDCtr .Add (ctx , 1 , o ... ) }
87
110
}
88
111
}()))
89
112
@@ -92,7 +115,7 @@ func benchSyncViews(views ...View) func(*testing.B) {
92
115
b .Run ("Float64UpDownCounter" , benchMeasAttrs (func () measF {
93
116
return func (s attribute.Set ) func () {
94
117
o := []metric.AddOption {metric .WithAttributeSet (s )}
95
- return func () { fUDCtr .Add (b . Context () , 1 , o ... ) }
118
+ return func () { fUDCtr .Add (ctx , 1 , o ... ) }
96
119
}
97
120
}()))
98
121
@@ -101,7 +124,7 @@ func benchSyncViews(views ...View) func(*testing.B) {
101
124
b .Run ("Int64Gauge" , benchMeasAttrs (func () measF {
102
125
return func (s attribute.Set ) func () {
103
126
o := []metric.RecordOption {metric .WithAttributeSet (s )}
104
- return func () { iGauge .Record (b . Context () , 1 , o ... ) }
127
+ return func () { iGauge .Record (ctx , 1 , o ... ) }
105
128
}
106
129
}()))
107
130
@@ -110,7 +133,7 @@ func benchSyncViews(views ...View) func(*testing.B) {
110
133
b .Run ("Float64Gauge" , benchMeasAttrs (func () measF {
111
134
return func (s attribute.Set ) func () {
112
135
o := []metric.RecordOption {metric .WithAttributeSet (s )}
113
- return func () { fGauge .Record (b . Context () , 1 , o ... ) }
136
+ return func () { fGauge .Record (ctx , 1 , o ... ) }
114
137
}
115
138
}()))
116
139
@@ -119,7 +142,7 @@ func benchSyncViews(views ...View) func(*testing.B) {
119
142
b .Run ("Int64Histogram" , benchMeasAttrs (func () measF {
120
143
return func (s attribute.Set ) func () {
121
144
o := []metric.RecordOption {metric .WithAttributeSet (s )}
122
- return func () { iHist .Record (b . Context () , 1 , o ... ) }
145
+ return func () { iHist .Record (ctx , 1 , o ... ) }
123
146
}
124
147
}()))
125
148
@@ -128,7 +151,7 @@ func benchSyncViews(views ...View) func(*testing.B) {
128
151
b .Run ("Float64Histogram" , benchMeasAttrs (func () measF {
129
152
return func (s attribute.Set ) func () {
130
153
o := []metric.RecordOption {metric .WithAttributeSet (s )}
131
- return func () { fHist .Record (b . Context () , 1 , o ... ) }
154
+ return func () { fHist .Record (ctx , 1 , o ... ) }
132
155
}
133
156
}()))
134
157
@@ -137,7 +160,7 @@ func benchSyncViews(views ...View) func(*testing.B) {
137
160
b .Run ("ExponentialInt64Histogram" , benchMeasAttrs (func () measF {
138
161
return func (s attribute.Set ) func () {
139
162
o := []metric.RecordOption {metric .WithAttributeSet (s )}
140
- return func () { expIHist .Record (b . Context () , 1 , o ... ) }
163
+ return func () { expIHist .Record (ctx , 1 , o ... ) }
141
164
}
142
165
}()))
143
166
@@ -146,7 +169,7 @@ func benchSyncViews(views ...View) func(*testing.B) {
146
169
b .Run ("ExponentialFloat64Histogram" , benchMeasAttrs (func () measF {
147
170
return func (s attribute.Set ) func () {
148
171
o := []metric.RecordOption {metric .WithAttributeSet (s )}
149
- return func () { expFHist .Record (b . Context () , 1 , o ... ) }
172
+ return func () { expFHist .Record (ctx , 1 , o ... ) }
150
173
}
151
174
}()))
152
175
}
@@ -406,12 +429,7 @@ func benchCollectAttrs(setup func(attribute.Set) Reader) func(*testing.B) {
406
429
}
407
430
408
431
func 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 )
415
433
416
434
attr := attribute .NewSet (
417
435
attribute .String ("user" , "Alice" ),
0 commit comments