@@ -80,6 +80,11 @@ func InstrumentHandlerDuration(obs prometheus.ObserverVec, next http.Handler, op
8080 for label , resolve := range hOpts .extraLabelsFromCtx {
8181 l [label ] = resolve (r .Context ())
8282 }
83+
84+ if hOpts .getExemplarFn == nil {
85+ obs .With (l ).Observe (time .Since (now ).Seconds ())
86+ return
87+ }
8388 obs .With (l ).(prometheus.ExemplarObserver ).ObserveWithExemplar (time .Since (now ).Seconds (), hOpts .getExemplarFn (r .Context ()))
8489 }
8590 }
@@ -91,6 +96,11 @@ func InstrumentHandlerDuration(obs prometheus.ObserverVec, next http.Handler, op
9196 for label , resolve := range hOpts .extraLabelsFromCtx {
9297 l [label ] = resolve (r .Context ())
9398 }
99+
100+ if hOpts .getExemplarFn == nil {
101+ obs .With (l ).Observe (time .Since (now ).Seconds ())
102+ return
103+ }
94104 obs .With (l ).(prometheus.ExemplarObserver ).ObserveWithExemplar (time .Since (now ).Seconds (), hOpts .getExemplarFn (r .Context ()))
95105 }
96106}
@@ -130,6 +140,11 @@ func InstrumentHandlerCounter(counter *prometheus.CounterVec, next http.Handler,
130140 for label , resolve := range hOpts .extraLabelsFromCtx {
131141 l [label ] = resolve (r .Context ())
132142 }
143+
144+ if hOpts .getExemplarFn == nil {
145+ counter .With (l ).Inc ()
146+ return
147+ }
133148 counter .With (l ).(prometheus.ExemplarAdder ).AddWithExemplar (1 , hOpts .getExemplarFn (r .Context ()))
134149 }
135150 }
@@ -141,6 +156,11 @@ func InstrumentHandlerCounter(counter *prometheus.CounterVec, next http.Handler,
141156 for label , resolve := range hOpts .extraLabelsFromCtx {
142157 l [label ] = resolve (r .Context ())
143158 }
159+
160+ if hOpts .getExemplarFn == nil {
161+ counter .With (l ).Inc ()
162+ return
163+ }
144164 counter .With (l ).(prometheus.ExemplarAdder ).AddWithExemplar (1 , hOpts .getExemplarFn (r .Context ()))
145165 }
146166}
@@ -183,7 +203,12 @@ func InstrumentHandlerTimeToWriteHeader(obs prometheus.ObserverVec, next http.Ha
183203 for label , resolve := range hOpts .extraLabelsFromCtx {
184204 l [label ] = resolve (r .Context ())
185205 }
186- obs .With (l ).(prometheus.ExemplarObserver ).ObserveWithExemplar (time .Since (now ).Seconds (), hOpts .getExemplarFn (r .Context ()))
206+
207+ if hOpts .getExemplarFn == nil {
208+ obs .With (l ).Observe (time .Since (now ).Seconds ())
209+ } else {
210+ obs .With (l ).(prometheus.ExemplarObserver ).ObserveWithExemplar (time .Since (now ).Seconds (), hOpts .getExemplarFn (r .Context ()))
211+ }
187212 })
188213 next .ServeHTTP (d , r )
189214 }
@@ -227,6 +252,11 @@ func InstrumentHandlerRequestSize(obs prometheus.ObserverVec, next http.Handler,
227252 for label , resolve := range hOpts .extraLabelsFromCtx {
228253 l [label ] = resolve (r .Context ())
229254 }
255+
256+ if hOpts .getExemplarFn == nil {
257+ obs .With (l ).Observe (float64 (size ))
258+ return
259+ }
230260 obs .With (l ).(prometheus.ExemplarObserver ).ObserveWithExemplar (float64 (size ), hOpts .getExemplarFn (r .Context ()))
231261 }
232262 }
@@ -239,6 +269,11 @@ func InstrumentHandlerRequestSize(obs prometheus.ObserverVec, next http.Handler,
239269 for label , resolve := range hOpts .extraLabelsFromCtx {
240270 l [label ] = resolve (r .Context ())
241271 }
272+
273+ if hOpts .getExemplarFn == nil {
274+ obs .With (l ).Observe (float64 (size ))
275+ return
276+ }
242277 obs .With (l ).(prometheus.ExemplarObserver ).ObserveWithExemplar (float64 (size ), hOpts .getExemplarFn (r .Context ()))
243278 }
244279}
@@ -279,6 +314,11 @@ func InstrumentHandlerResponseSize(obs prometheus.ObserverVec, next http.Handler
279314 for label , resolve := range hOpts .extraLabelsFromCtx {
280315 l [label ] = resolve (r .Context ())
281316 }
317+
318+ if hOpts .getExemplarFn == nil {
319+ obs .With (l ).Observe (float64 (d .Written ()))
320+ return
321+ }
282322 obs .With (l ).(prometheus.ExemplarObserver ).ObserveWithExemplar (float64 (d .Written ()), hOpts .getExemplarFn (r .Context ()))
283323 })
284324}
0 commit comments