1
0
mirror of https://github.com/open-telemetry/opentelemetry-go.git synced 2025-12-03 23:21:27 +02:00
Files
opentelemetry-go/sdk/metric/benchmark_test.go

511 lines
15 KiB
Go
Raw Normal View History

// Copyright The OpenTelemetry Authors
// SPDX-License-Identifier: Apache-2.0
package metric // import "go.opentelemetry.io/otel/sdk/metric"
import (
"context"
"fmt"
"runtime"
"strconv"
"testing"
"github.com/stretchr/testify/assert"
"go.opentelemetry.io/otel/attribute"
"go.opentelemetry.io/otel/metric"
"go.opentelemetry.io/otel/sdk/metric/metricdata"
"go.opentelemetry.io/otel/trace"
)
var viewBenchmarks = []struct {
Name string
Views []View
}{
{"NoView", []View{}},
{
"DropView",
[]View{NewView(
Instrument{Name: "*"},
Stream{Aggregation: AggregationDrop{}},
)},
},
{
"AttrFilterView",
[]View{NewView(
Instrument{Name: "*"},
Stream{AttributeFilter: attribute.NewAllowKeysFilter("K")},
)},
},
}
Add measure benchmarks with exemplars recorded (#7406) Part of https://github.com/open-telemetry/opentelemetry-go/issues/7388 This adds benchmarks for making measurements that also record an exemplar. This will help demonstrate any improvements to locking in the exemplar reservoir. Parallel benchmarks: ``` goos: linux goarch: amd64 pkg: go.opentelemetry.io/otel/sdk/metric cpu: Intel(R) Xeon(R) CPU @ 2.20GHz BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Counter/Attributes/0-24 57819 258.8 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Counter/Attributes/1-24 46058 255.0 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Counter/Attributes/10-24 70351 271.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Counter/Attributes/0-24 67525 220.7 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Counter/Attributes/1-24 67789 248.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Counter/Attributes/10-24 63385 246.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64UpDownCounter/Attributes/0-24 67786 213.8 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64UpDownCounter/Attributes/1-24 73093 226.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64UpDownCounter/Attributes/10-24 55597 230.7 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64UpDownCounter/Attributes/0-24 77805 216.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64UpDownCounter/Attributes/1-24 71512 234.7 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64UpDownCounter/Attributes/10-24 60094 258.8 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Histogram/Attributes/0-24 66192 266.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Histogram/Attributes/1-24 50511 242.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Histogram/Attributes/10-24 42548 295.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Histogram/Attributes/0-24 48874 229.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Histogram/Attributes/1-24 50904 271.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Histogram/Attributes/10-24 59074 253.8 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialInt64Histogram/Attributes/0-24 55216 292.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialInt64Histogram/Attributes/1-24 53492 375.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialInt64Histogram/Attributes/10-24 40346 273.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialFloat64Histogram/Attributes/0-24 51520 310.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialFloat64Histogram/Attributes/1-24 43227 303.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialFloat64Histogram/Attributes/10-24 44754 295.4 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Counter/Attributes/0-24 44091 294.7 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Counter/Attributes/1-24 43164 300.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Counter/Attributes/10-24 46014 269.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Counter/Attributes/0-24 38978 281.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Counter/Attributes/1-24 41292 316.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Counter/Attributes/10-24 38986 303.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64UpDownCounter/Attributes/0-24 33555 299.0 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64UpDownCounter/Attributes/1-24 44396 322.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64UpDownCounter/Attributes/10-24 38211 273.0 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64UpDownCounter/Attributes/0-24 45652 296.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64UpDownCounter/Attributes/1-24 38984 270.8 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64UpDownCounter/Attributes/10-24 36280 313.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Histogram/Attributes/0-24 34377 437.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Histogram/Attributes/1-24 34992 344.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Histogram/Attributes/10-24 33795 384.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Histogram/Attributes/0-24 38080 353.7 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Histogram/Attributes/1-24 36568 315.4 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Histogram/Attributes/10-24 32418 309.7 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialInt64Histogram/Attributes/0-24 33217 320.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialInt64Histogram/Attributes/1-24 27937 407.7 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialInt64Histogram/Attributes/10-24 30818 350.0 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialFloat64Histogram/Attributes/0-24 36286 346.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialFloat64Histogram/Attributes/1-24 35863 342.4 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialFloat64Histogram/Attributes/10-24 32378 327.8 ns/op 0 B/op 0 allocs/op ``` Single-threaded benchmarks: ``` goos: linux goarch: amd64 pkg: go.opentelemetry.io/otel/sdk/metric cpu: Intel(R) Xeon(R) CPU @ 2.20GHz BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Counter/Attributes/0 115218 109.8 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Counter/Attributes/1 106142 112.0 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Counter/Attributes/10 101562 115.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Counter/Attributes/0 93019 112.1 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Counter/Attributes/1 107089 117.4 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Counter/Attributes/10 106411 117.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64UpDownCounter/Attributes/0 110683 113.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64UpDownCounter/Attributes/1 84825 122.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64UpDownCounter/Attributes/10 98952 113.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64UpDownCounter/Attributes/0 115419 105.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64UpDownCounter/Attributes/1 97251 114.7 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64UpDownCounter/Attributes/10 106036 111.8 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Histogram/Attributes/0 130296 92.98 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Histogram/Attributes/1 120679 100.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Histogram/Attributes/10 116985 102.1 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Histogram/Attributes/0 125479 96.42 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Histogram/Attributes/1 115527 103.7 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Histogram/Attributes/10 89858 117.8 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialInt64Histogram/Attributes/0 76768 152.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialInt64Histogram/Attributes/1 72832 161.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialInt64Histogram/Attributes/10 73298 160.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialFloat64Histogram/Attributes/0 81826 154.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialFloat64Histogram/Attributes/1 73779 158.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialFloat64Histogram/Attributes/10 75606 161.4 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Counter/Attributes/0 61503 188.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Counter/Attributes/1 63260 185.4 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Counter/Attributes/10 62704 189.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Counter/Attributes/0 63615 180.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Counter/Attributes/1 62072 190.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Counter/Attributes/10 61260 192.1 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64UpDownCounter/Attributes/0 61561 182.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64UpDownCounter/Attributes/1 60334 192.7 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64UpDownCounter/Attributes/10 64114 192.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64UpDownCounter/Attributes/0 63980 181.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64UpDownCounter/Attributes/1 61138 189.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64UpDownCounter/Attributes/10 62150 196.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Histogram/Attributes/0 51895 237.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Histogram/Attributes/1 52554 230.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Histogram/Attributes/10 53581 228.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Histogram/Attributes/0 55407 221.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Histogram/Attributes/1 50701 226.0 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Histogram/Attributes/10 50460 231.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialInt64Histogram/Attributes/0 53390 221.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialInt64Histogram/Attributes/1 51373 229.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialInt64Histogram/Attributes/10 51154 228.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialFloat64Histogram/Attributes/0 52167 230.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialFloat64Histogram/Attributes/1 48598 247.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialFloat64Histogram/Attributes/10 51086 230.8 ns/op 0 B/op 0 allocs/op ```
2025-09-25 09:55:45 -04:00
var (
sampledSpanContext = trace.NewSpanContext(trace.SpanContextConfig{
SpanID: trace.SpanID{0o1},
TraceID: trace.TraceID{0o1},
TraceFlags: trace.FlagsSampled,
})
notSampledSpanContext = trace.NewSpanContext(trace.SpanContextConfig{
SpanID: trace.SpanID{0o1},
TraceID: trace.TraceID{0o1},
})
)
var exemplarBenchmarks = []struct {
Name string
SpanContext trace.SpanContext
}{
{"ExemplarsDisabled", notSampledSpanContext},
{"ExemplarsEnabled", sampledSpanContext},
}
func BenchmarkSyncMeasure(b *testing.B) {
for _, bc := range viewBenchmarks {
Add measure benchmarks with exemplars recorded (#7406) Part of https://github.com/open-telemetry/opentelemetry-go/issues/7388 This adds benchmarks for making measurements that also record an exemplar. This will help demonstrate any improvements to locking in the exemplar reservoir. Parallel benchmarks: ``` goos: linux goarch: amd64 pkg: go.opentelemetry.io/otel/sdk/metric cpu: Intel(R) Xeon(R) CPU @ 2.20GHz BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Counter/Attributes/0-24 57819 258.8 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Counter/Attributes/1-24 46058 255.0 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Counter/Attributes/10-24 70351 271.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Counter/Attributes/0-24 67525 220.7 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Counter/Attributes/1-24 67789 248.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Counter/Attributes/10-24 63385 246.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64UpDownCounter/Attributes/0-24 67786 213.8 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64UpDownCounter/Attributes/1-24 73093 226.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64UpDownCounter/Attributes/10-24 55597 230.7 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64UpDownCounter/Attributes/0-24 77805 216.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64UpDownCounter/Attributes/1-24 71512 234.7 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64UpDownCounter/Attributes/10-24 60094 258.8 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Histogram/Attributes/0-24 66192 266.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Histogram/Attributes/1-24 50511 242.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Histogram/Attributes/10-24 42548 295.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Histogram/Attributes/0-24 48874 229.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Histogram/Attributes/1-24 50904 271.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Histogram/Attributes/10-24 59074 253.8 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialInt64Histogram/Attributes/0-24 55216 292.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialInt64Histogram/Attributes/1-24 53492 375.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialInt64Histogram/Attributes/10-24 40346 273.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialFloat64Histogram/Attributes/0-24 51520 310.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialFloat64Histogram/Attributes/1-24 43227 303.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialFloat64Histogram/Attributes/10-24 44754 295.4 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Counter/Attributes/0-24 44091 294.7 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Counter/Attributes/1-24 43164 300.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Counter/Attributes/10-24 46014 269.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Counter/Attributes/0-24 38978 281.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Counter/Attributes/1-24 41292 316.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Counter/Attributes/10-24 38986 303.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64UpDownCounter/Attributes/0-24 33555 299.0 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64UpDownCounter/Attributes/1-24 44396 322.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64UpDownCounter/Attributes/10-24 38211 273.0 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64UpDownCounter/Attributes/0-24 45652 296.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64UpDownCounter/Attributes/1-24 38984 270.8 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64UpDownCounter/Attributes/10-24 36280 313.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Histogram/Attributes/0-24 34377 437.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Histogram/Attributes/1-24 34992 344.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Histogram/Attributes/10-24 33795 384.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Histogram/Attributes/0-24 38080 353.7 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Histogram/Attributes/1-24 36568 315.4 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Histogram/Attributes/10-24 32418 309.7 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialInt64Histogram/Attributes/0-24 33217 320.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialInt64Histogram/Attributes/1-24 27937 407.7 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialInt64Histogram/Attributes/10-24 30818 350.0 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialFloat64Histogram/Attributes/0-24 36286 346.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialFloat64Histogram/Attributes/1-24 35863 342.4 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialFloat64Histogram/Attributes/10-24 32378 327.8 ns/op 0 B/op 0 allocs/op ``` Single-threaded benchmarks: ``` goos: linux goarch: amd64 pkg: go.opentelemetry.io/otel/sdk/metric cpu: Intel(R) Xeon(R) CPU @ 2.20GHz BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Counter/Attributes/0 115218 109.8 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Counter/Attributes/1 106142 112.0 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Counter/Attributes/10 101562 115.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Counter/Attributes/0 93019 112.1 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Counter/Attributes/1 107089 117.4 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Counter/Attributes/10 106411 117.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64UpDownCounter/Attributes/0 110683 113.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64UpDownCounter/Attributes/1 84825 122.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64UpDownCounter/Attributes/10 98952 113.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64UpDownCounter/Attributes/0 115419 105.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64UpDownCounter/Attributes/1 97251 114.7 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64UpDownCounter/Attributes/10 106036 111.8 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Histogram/Attributes/0 130296 92.98 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Histogram/Attributes/1 120679 100.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Histogram/Attributes/10 116985 102.1 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Histogram/Attributes/0 125479 96.42 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Histogram/Attributes/1 115527 103.7 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Histogram/Attributes/10 89858 117.8 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialInt64Histogram/Attributes/0 76768 152.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialInt64Histogram/Attributes/1 72832 161.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialInt64Histogram/Attributes/10 73298 160.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialFloat64Histogram/Attributes/0 81826 154.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialFloat64Histogram/Attributes/1 73779 158.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialFloat64Histogram/Attributes/10 75606 161.4 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Counter/Attributes/0 61503 188.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Counter/Attributes/1 63260 185.4 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Counter/Attributes/10 62704 189.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Counter/Attributes/0 63615 180.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Counter/Attributes/1 62072 190.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Counter/Attributes/10 61260 192.1 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64UpDownCounter/Attributes/0 61561 182.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64UpDownCounter/Attributes/1 60334 192.7 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64UpDownCounter/Attributes/10 64114 192.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64UpDownCounter/Attributes/0 63980 181.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64UpDownCounter/Attributes/1 61138 189.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64UpDownCounter/Attributes/10 62150 196.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Histogram/Attributes/0 51895 237.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Histogram/Attributes/1 52554 230.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Histogram/Attributes/10 53581 228.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Histogram/Attributes/0 55407 221.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Histogram/Attributes/1 50701 226.0 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Histogram/Attributes/10 50460 231.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialInt64Histogram/Attributes/0 53390 221.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialInt64Histogram/Attributes/1 51373 229.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialInt64Histogram/Attributes/10 51154 228.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialFloat64Histogram/Attributes/0 52167 230.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialFloat64Histogram/Attributes/1 48598 247.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialFloat64Histogram/Attributes/10 51086 230.8 ns/op 0 B/op 0 allocs/op ```
2025-09-25 09:55:45 -04:00
for _, eb := range exemplarBenchmarks {
b.Run(fmt.Sprintf("%s/%s", bc.Name, eb.Name), benchSyncViews(eb.SpanContext, bc.Views...))
}
}
}
Add benchmark for exponential histogram measurements (#7305) This is helpful for my work optimizing locking in https://github.com/open-telemetry/opentelemetry-go/pull/7189 ``` goos: linux goarch: amd64 pkg: go.opentelemetry.io/otel/sdk/metric cpu: Intel(R) Xeon(R) CPU @ 2.20GHz BenchmarkSyncMeasure/NoView/ExponentialFloat64Histogram/Attributes/0-24 43419 306.0 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExponentialFloat64Histogram/Attributes/0-24 40675 316.1 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExponentialFloat64Histogram/Attributes/0-24 53746 305.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExponentialFloat64Histogram/Attributes/0-24 38224 296.1 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExponentialFloat64Histogram/Attributes/0-24 53796 330.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExponentialFloat64Histogram/Attributes/0-24 47823 316.4 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExponentialFloat64Histogram/Attributes/1-24 32172 373.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExponentialFloat64Histogram/Attributes/1-24 33084 379.0 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExponentialFloat64Histogram/Attributes/1-24 29956 360.4 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExponentialFloat64Histogram/Attributes/1-24 33921 370.1 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExponentialFloat64Histogram/Attributes/1-24 34449 387.7 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExponentialFloat64Histogram/Attributes/1-24 29156 393.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExponentialFloat64Histogram/Attributes/10-24 10768 1040 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExponentialFloat64Histogram/Attributes/10-24 11190 1056 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExponentialFloat64Histogram/Attributes/10-24 11078 1176 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExponentialFloat64Histogram/Attributes/10-24 10929 1219 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExponentialFloat64Histogram/Attributes/10-24 10454 1066 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExponentialFloat64Histogram/Attributes/10-24 10501 1064 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/DropView/ExponentialFloat64Histogram/Attributes/0-24 5919898 1.879 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/DropView/ExponentialFloat64Histogram/Attributes/0-24 5834685 1.990 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/DropView/ExponentialFloat64Histogram/Attributes/0-24 5782334 2.433 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/DropView/ExponentialFloat64Histogram/Attributes/0-24 5320924 2.404 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/DropView/ExponentialFloat64Histogram/Attributes/0-24 5742800 2.109 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/DropView/ExponentialFloat64Histogram/Attributes/0-24 5885475 2.056 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/DropView/ExponentialFloat64Histogram/Attributes/1-24 4331547 2.758 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/DropView/ExponentialFloat64Histogram/Attributes/1-24 3848244 2.725 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/DropView/ExponentialFloat64Histogram/Attributes/1-24 4542189 2.636 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/DropView/ExponentialFloat64Histogram/Attributes/1-24 4201015 2.641 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/DropView/ExponentialFloat64Histogram/Attributes/1-24 4597094 2.608 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/DropView/ExponentialFloat64Histogram/Attributes/1-24 4869811 2.491 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/DropView/ExponentialFloat64Histogram/Attributes/10-24 4826077 2.329 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/DropView/ExponentialFloat64Histogram/Attributes/10-24 4866612 2.382 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/DropView/ExponentialFloat64Histogram/Attributes/10-24 5149305 2.310 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/DropView/ExponentialFloat64Histogram/Attributes/10-24 5101305 2.384 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/DropView/ExponentialFloat64Histogram/Attributes/10-24 4854940 2.440 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/DropView/ExponentialFloat64Histogram/Attributes/10-24 4874742 2.501 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/AttrFilterView/ExponentialFloat64Histogram/Attributes/0-24 55272 359.0 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/AttrFilterView/ExponentialFloat64Histogram/Attributes/0-24 52195 318.4 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/AttrFilterView/ExponentialFloat64Histogram/Attributes/0-24 52324 330.8 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/AttrFilterView/ExponentialFloat64Histogram/Attributes/0-24 49879 321.4 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/AttrFilterView/ExponentialFloat64Histogram/Attributes/0-24 56212 351.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/AttrFilterView/ExponentialFloat64Histogram/Attributes/0-24 43362 301.4 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/AttrFilterView/ExponentialFloat64Histogram/Attributes/1-24 30296 461.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/AttrFilterView/ExponentialFloat64Histogram/Attributes/1-24 24178 469.0 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/AttrFilterView/ExponentialFloat64Histogram/Attributes/1-24 24901 477.0 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/AttrFilterView/ExponentialFloat64Histogram/Attributes/1-24 21748 477.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/AttrFilterView/ExponentialFloat64Histogram/Attributes/1-24 23972 512.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/AttrFilterView/ExponentialFloat64Histogram/Attributes/1-24 28039 499.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/AttrFilterView/ExponentialFloat64Histogram/Attributes/10-24 7598 1646 ns/op 704 B/op 2 allocs/op BenchmarkSyncMeasure/AttrFilterView/ExponentialFloat64Histogram/Attributes/10-24 7452 1660 ns/op 704 B/op 2 allocs/op BenchmarkSyncMeasure/AttrFilterView/ExponentialFloat64Histogram/Attributes/10-24 7620 1644 ns/op 704 B/op 2 allocs/op BenchmarkSyncMeasure/AttrFilterView/ExponentialFloat64Histogram/Attributes/10-24 6459 1853 ns/op 704 B/op 2 allocs/op BenchmarkSyncMeasure/AttrFilterView/ExponentialFloat64Histogram/Attributes/10-24 7950 1575 ns/op 704 B/op 2 allocs/op BenchmarkSyncMeasure/AttrFilterView/ExponentialFloat64Histogram/Attributes/10-24 8948 1421 ns/op 704 B/op 2 allocs/op ```
2025-09-08 03:19:44 -04:00
func exponentialAggregationSelector(ik InstrumentKind) Aggregation {
if ik == InstrumentKindHistogram {
return AggregationBase2ExponentialHistogram{MaxScale: 20, MaxSize: 160}
}
return AggregationDefault{}
}
Add measure benchmarks with exemplars recorded (#7406) Part of https://github.com/open-telemetry/opentelemetry-go/issues/7388 This adds benchmarks for making measurements that also record an exemplar. This will help demonstrate any improvements to locking in the exemplar reservoir. Parallel benchmarks: ``` goos: linux goarch: amd64 pkg: go.opentelemetry.io/otel/sdk/metric cpu: Intel(R) Xeon(R) CPU @ 2.20GHz BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Counter/Attributes/0-24 57819 258.8 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Counter/Attributes/1-24 46058 255.0 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Counter/Attributes/10-24 70351 271.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Counter/Attributes/0-24 67525 220.7 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Counter/Attributes/1-24 67789 248.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Counter/Attributes/10-24 63385 246.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64UpDownCounter/Attributes/0-24 67786 213.8 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64UpDownCounter/Attributes/1-24 73093 226.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64UpDownCounter/Attributes/10-24 55597 230.7 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64UpDownCounter/Attributes/0-24 77805 216.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64UpDownCounter/Attributes/1-24 71512 234.7 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64UpDownCounter/Attributes/10-24 60094 258.8 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Histogram/Attributes/0-24 66192 266.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Histogram/Attributes/1-24 50511 242.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Histogram/Attributes/10-24 42548 295.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Histogram/Attributes/0-24 48874 229.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Histogram/Attributes/1-24 50904 271.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Histogram/Attributes/10-24 59074 253.8 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialInt64Histogram/Attributes/0-24 55216 292.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialInt64Histogram/Attributes/1-24 53492 375.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialInt64Histogram/Attributes/10-24 40346 273.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialFloat64Histogram/Attributes/0-24 51520 310.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialFloat64Histogram/Attributes/1-24 43227 303.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialFloat64Histogram/Attributes/10-24 44754 295.4 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Counter/Attributes/0-24 44091 294.7 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Counter/Attributes/1-24 43164 300.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Counter/Attributes/10-24 46014 269.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Counter/Attributes/0-24 38978 281.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Counter/Attributes/1-24 41292 316.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Counter/Attributes/10-24 38986 303.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64UpDownCounter/Attributes/0-24 33555 299.0 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64UpDownCounter/Attributes/1-24 44396 322.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64UpDownCounter/Attributes/10-24 38211 273.0 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64UpDownCounter/Attributes/0-24 45652 296.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64UpDownCounter/Attributes/1-24 38984 270.8 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64UpDownCounter/Attributes/10-24 36280 313.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Histogram/Attributes/0-24 34377 437.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Histogram/Attributes/1-24 34992 344.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Histogram/Attributes/10-24 33795 384.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Histogram/Attributes/0-24 38080 353.7 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Histogram/Attributes/1-24 36568 315.4 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Histogram/Attributes/10-24 32418 309.7 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialInt64Histogram/Attributes/0-24 33217 320.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialInt64Histogram/Attributes/1-24 27937 407.7 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialInt64Histogram/Attributes/10-24 30818 350.0 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialFloat64Histogram/Attributes/0-24 36286 346.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialFloat64Histogram/Attributes/1-24 35863 342.4 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialFloat64Histogram/Attributes/10-24 32378 327.8 ns/op 0 B/op 0 allocs/op ``` Single-threaded benchmarks: ``` goos: linux goarch: amd64 pkg: go.opentelemetry.io/otel/sdk/metric cpu: Intel(R) Xeon(R) CPU @ 2.20GHz BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Counter/Attributes/0 115218 109.8 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Counter/Attributes/1 106142 112.0 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Counter/Attributes/10 101562 115.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Counter/Attributes/0 93019 112.1 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Counter/Attributes/1 107089 117.4 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Counter/Attributes/10 106411 117.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64UpDownCounter/Attributes/0 110683 113.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64UpDownCounter/Attributes/1 84825 122.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64UpDownCounter/Attributes/10 98952 113.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64UpDownCounter/Attributes/0 115419 105.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64UpDownCounter/Attributes/1 97251 114.7 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64UpDownCounter/Attributes/10 106036 111.8 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Histogram/Attributes/0 130296 92.98 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Histogram/Attributes/1 120679 100.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Histogram/Attributes/10 116985 102.1 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Histogram/Attributes/0 125479 96.42 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Histogram/Attributes/1 115527 103.7 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Histogram/Attributes/10 89858 117.8 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialInt64Histogram/Attributes/0 76768 152.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialInt64Histogram/Attributes/1 72832 161.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialInt64Histogram/Attributes/10 73298 160.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialFloat64Histogram/Attributes/0 81826 154.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialFloat64Histogram/Attributes/1 73779 158.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialFloat64Histogram/Attributes/10 75606 161.4 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Counter/Attributes/0 61503 188.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Counter/Attributes/1 63260 185.4 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Counter/Attributes/10 62704 189.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Counter/Attributes/0 63615 180.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Counter/Attributes/1 62072 190.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Counter/Attributes/10 61260 192.1 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64UpDownCounter/Attributes/0 61561 182.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64UpDownCounter/Attributes/1 60334 192.7 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64UpDownCounter/Attributes/10 64114 192.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64UpDownCounter/Attributes/0 63980 181.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64UpDownCounter/Attributes/1 61138 189.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64UpDownCounter/Attributes/10 62150 196.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Histogram/Attributes/0 51895 237.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Histogram/Attributes/1 52554 230.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Histogram/Attributes/10 53581 228.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Histogram/Attributes/0 55407 221.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Histogram/Attributes/1 50701 226.0 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Histogram/Attributes/10 50460 231.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialInt64Histogram/Attributes/0 53390 221.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialInt64Histogram/Attributes/1 51373 229.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialInt64Histogram/Attributes/10 51154 228.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialFloat64Histogram/Attributes/0 52167 230.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialFloat64Histogram/Attributes/1 48598 247.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialFloat64Histogram/Attributes/10 51086 230.8 ns/op 0 B/op 0 allocs/op ```
2025-09-25 09:55:45 -04:00
func benchSyncViews(sc trace.SpanContext, views ...View) func(*testing.B) {
rdr := NewManualReader()
provider := NewMeterProvider(WithReader(rdr), WithView(views...))
meter := provider.Meter("benchSyncViews")
Add benchmark for exponential histogram measurements (#7305) This is helpful for my work optimizing locking in https://github.com/open-telemetry/opentelemetry-go/pull/7189 ``` goos: linux goarch: amd64 pkg: go.opentelemetry.io/otel/sdk/metric cpu: Intel(R) Xeon(R) CPU @ 2.20GHz BenchmarkSyncMeasure/NoView/ExponentialFloat64Histogram/Attributes/0-24 43419 306.0 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExponentialFloat64Histogram/Attributes/0-24 40675 316.1 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExponentialFloat64Histogram/Attributes/0-24 53746 305.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExponentialFloat64Histogram/Attributes/0-24 38224 296.1 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExponentialFloat64Histogram/Attributes/0-24 53796 330.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExponentialFloat64Histogram/Attributes/0-24 47823 316.4 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExponentialFloat64Histogram/Attributes/1-24 32172 373.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExponentialFloat64Histogram/Attributes/1-24 33084 379.0 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExponentialFloat64Histogram/Attributes/1-24 29956 360.4 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExponentialFloat64Histogram/Attributes/1-24 33921 370.1 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExponentialFloat64Histogram/Attributes/1-24 34449 387.7 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExponentialFloat64Histogram/Attributes/1-24 29156 393.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExponentialFloat64Histogram/Attributes/10-24 10768 1040 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExponentialFloat64Histogram/Attributes/10-24 11190 1056 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExponentialFloat64Histogram/Attributes/10-24 11078 1176 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExponentialFloat64Histogram/Attributes/10-24 10929 1219 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExponentialFloat64Histogram/Attributes/10-24 10454 1066 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExponentialFloat64Histogram/Attributes/10-24 10501 1064 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/DropView/ExponentialFloat64Histogram/Attributes/0-24 5919898 1.879 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/DropView/ExponentialFloat64Histogram/Attributes/0-24 5834685 1.990 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/DropView/ExponentialFloat64Histogram/Attributes/0-24 5782334 2.433 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/DropView/ExponentialFloat64Histogram/Attributes/0-24 5320924 2.404 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/DropView/ExponentialFloat64Histogram/Attributes/0-24 5742800 2.109 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/DropView/ExponentialFloat64Histogram/Attributes/0-24 5885475 2.056 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/DropView/ExponentialFloat64Histogram/Attributes/1-24 4331547 2.758 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/DropView/ExponentialFloat64Histogram/Attributes/1-24 3848244 2.725 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/DropView/ExponentialFloat64Histogram/Attributes/1-24 4542189 2.636 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/DropView/ExponentialFloat64Histogram/Attributes/1-24 4201015 2.641 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/DropView/ExponentialFloat64Histogram/Attributes/1-24 4597094 2.608 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/DropView/ExponentialFloat64Histogram/Attributes/1-24 4869811 2.491 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/DropView/ExponentialFloat64Histogram/Attributes/10-24 4826077 2.329 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/DropView/ExponentialFloat64Histogram/Attributes/10-24 4866612 2.382 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/DropView/ExponentialFloat64Histogram/Attributes/10-24 5149305 2.310 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/DropView/ExponentialFloat64Histogram/Attributes/10-24 5101305 2.384 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/DropView/ExponentialFloat64Histogram/Attributes/10-24 4854940 2.440 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/DropView/ExponentialFloat64Histogram/Attributes/10-24 4874742 2.501 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/AttrFilterView/ExponentialFloat64Histogram/Attributes/0-24 55272 359.0 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/AttrFilterView/ExponentialFloat64Histogram/Attributes/0-24 52195 318.4 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/AttrFilterView/ExponentialFloat64Histogram/Attributes/0-24 52324 330.8 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/AttrFilterView/ExponentialFloat64Histogram/Attributes/0-24 49879 321.4 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/AttrFilterView/ExponentialFloat64Histogram/Attributes/0-24 56212 351.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/AttrFilterView/ExponentialFloat64Histogram/Attributes/0-24 43362 301.4 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/AttrFilterView/ExponentialFloat64Histogram/Attributes/1-24 30296 461.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/AttrFilterView/ExponentialFloat64Histogram/Attributes/1-24 24178 469.0 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/AttrFilterView/ExponentialFloat64Histogram/Attributes/1-24 24901 477.0 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/AttrFilterView/ExponentialFloat64Histogram/Attributes/1-24 21748 477.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/AttrFilterView/ExponentialFloat64Histogram/Attributes/1-24 23972 512.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/AttrFilterView/ExponentialFloat64Histogram/Attributes/1-24 28039 499.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/AttrFilterView/ExponentialFloat64Histogram/Attributes/10-24 7598 1646 ns/op 704 B/op 2 allocs/op BenchmarkSyncMeasure/AttrFilterView/ExponentialFloat64Histogram/Attributes/10-24 7452 1660 ns/op 704 B/op 2 allocs/op BenchmarkSyncMeasure/AttrFilterView/ExponentialFloat64Histogram/Attributes/10-24 7620 1644 ns/op 704 B/op 2 allocs/op BenchmarkSyncMeasure/AttrFilterView/ExponentialFloat64Histogram/Attributes/10-24 6459 1853 ns/op 704 B/op 2 allocs/op BenchmarkSyncMeasure/AttrFilterView/ExponentialFloat64Histogram/Attributes/10-24 7950 1575 ns/op 704 B/op 2 allocs/op BenchmarkSyncMeasure/AttrFilterView/ExponentialFloat64Histogram/Attributes/10-24 8948 1421 ns/op 704 B/op 2 allocs/op ```
2025-09-08 03:19:44 -04:00
expRdr := NewManualReader(WithAggregationSelector(exponentialAggregationSelector))
expProvider := NewMeterProvider(WithReader(expRdr), WithView(views...))
expMeter := expProvider.Meter("benchSyncViews")
return func(b *testing.B) {
Add measure benchmarks with exemplars recorded (#7406) Part of https://github.com/open-telemetry/opentelemetry-go/issues/7388 This adds benchmarks for making measurements that also record an exemplar. This will help demonstrate any improvements to locking in the exemplar reservoir. Parallel benchmarks: ``` goos: linux goarch: amd64 pkg: go.opentelemetry.io/otel/sdk/metric cpu: Intel(R) Xeon(R) CPU @ 2.20GHz BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Counter/Attributes/0-24 57819 258.8 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Counter/Attributes/1-24 46058 255.0 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Counter/Attributes/10-24 70351 271.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Counter/Attributes/0-24 67525 220.7 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Counter/Attributes/1-24 67789 248.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Counter/Attributes/10-24 63385 246.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64UpDownCounter/Attributes/0-24 67786 213.8 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64UpDownCounter/Attributes/1-24 73093 226.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64UpDownCounter/Attributes/10-24 55597 230.7 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64UpDownCounter/Attributes/0-24 77805 216.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64UpDownCounter/Attributes/1-24 71512 234.7 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64UpDownCounter/Attributes/10-24 60094 258.8 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Histogram/Attributes/0-24 66192 266.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Histogram/Attributes/1-24 50511 242.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Histogram/Attributes/10-24 42548 295.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Histogram/Attributes/0-24 48874 229.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Histogram/Attributes/1-24 50904 271.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Histogram/Attributes/10-24 59074 253.8 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialInt64Histogram/Attributes/0-24 55216 292.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialInt64Histogram/Attributes/1-24 53492 375.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialInt64Histogram/Attributes/10-24 40346 273.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialFloat64Histogram/Attributes/0-24 51520 310.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialFloat64Histogram/Attributes/1-24 43227 303.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialFloat64Histogram/Attributes/10-24 44754 295.4 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Counter/Attributes/0-24 44091 294.7 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Counter/Attributes/1-24 43164 300.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Counter/Attributes/10-24 46014 269.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Counter/Attributes/0-24 38978 281.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Counter/Attributes/1-24 41292 316.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Counter/Attributes/10-24 38986 303.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64UpDownCounter/Attributes/0-24 33555 299.0 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64UpDownCounter/Attributes/1-24 44396 322.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64UpDownCounter/Attributes/10-24 38211 273.0 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64UpDownCounter/Attributes/0-24 45652 296.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64UpDownCounter/Attributes/1-24 38984 270.8 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64UpDownCounter/Attributes/10-24 36280 313.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Histogram/Attributes/0-24 34377 437.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Histogram/Attributes/1-24 34992 344.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Histogram/Attributes/10-24 33795 384.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Histogram/Attributes/0-24 38080 353.7 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Histogram/Attributes/1-24 36568 315.4 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Histogram/Attributes/10-24 32418 309.7 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialInt64Histogram/Attributes/0-24 33217 320.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialInt64Histogram/Attributes/1-24 27937 407.7 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialInt64Histogram/Attributes/10-24 30818 350.0 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialFloat64Histogram/Attributes/0-24 36286 346.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialFloat64Histogram/Attributes/1-24 35863 342.4 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialFloat64Histogram/Attributes/10-24 32378 327.8 ns/op 0 B/op 0 allocs/op ``` Single-threaded benchmarks: ``` goos: linux goarch: amd64 pkg: go.opentelemetry.io/otel/sdk/metric cpu: Intel(R) Xeon(R) CPU @ 2.20GHz BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Counter/Attributes/0 115218 109.8 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Counter/Attributes/1 106142 112.0 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Counter/Attributes/10 101562 115.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Counter/Attributes/0 93019 112.1 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Counter/Attributes/1 107089 117.4 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Counter/Attributes/10 106411 117.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64UpDownCounter/Attributes/0 110683 113.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64UpDownCounter/Attributes/1 84825 122.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64UpDownCounter/Attributes/10 98952 113.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64UpDownCounter/Attributes/0 115419 105.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64UpDownCounter/Attributes/1 97251 114.7 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64UpDownCounter/Attributes/10 106036 111.8 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Histogram/Attributes/0 130296 92.98 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Histogram/Attributes/1 120679 100.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Histogram/Attributes/10 116985 102.1 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Histogram/Attributes/0 125479 96.42 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Histogram/Attributes/1 115527 103.7 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Histogram/Attributes/10 89858 117.8 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialInt64Histogram/Attributes/0 76768 152.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialInt64Histogram/Attributes/1 72832 161.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialInt64Histogram/Attributes/10 73298 160.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialFloat64Histogram/Attributes/0 81826 154.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialFloat64Histogram/Attributes/1 73779 158.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialFloat64Histogram/Attributes/10 75606 161.4 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Counter/Attributes/0 61503 188.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Counter/Attributes/1 63260 185.4 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Counter/Attributes/10 62704 189.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Counter/Attributes/0 63615 180.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Counter/Attributes/1 62072 190.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Counter/Attributes/10 61260 192.1 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64UpDownCounter/Attributes/0 61561 182.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64UpDownCounter/Attributes/1 60334 192.7 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64UpDownCounter/Attributes/10 64114 192.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64UpDownCounter/Attributes/0 63980 181.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64UpDownCounter/Attributes/1 61138 189.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64UpDownCounter/Attributes/10 62150 196.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Histogram/Attributes/0 51895 237.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Histogram/Attributes/1 52554 230.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Histogram/Attributes/10 53581 228.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Histogram/Attributes/0 55407 221.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Histogram/Attributes/1 50701 226.0 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Histogram/Attributes/10 50460 231.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialInt64Histogram/Attributes/0 53390 221.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialInt64Histogram/Attributes/1 51373 229.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialInt64Histogram/Attributes/10 51154 228.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialFloat64Histogram/Attributes/0 52167 230.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialFloat64Histogram/Attributes/1 48598 247.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialFloat64Histogram/Attributes/10 51086 230.8 ns/op 0 B/op 0 allocs/op ```
2025-09-25 09:55:45 -04:00
ctx := trace.ContextWithSpanContext(b.Context(), sc)
iCtr, err := meter.Int64Counter("int64-counter")
assert.NoError(b, err)
b.Run("Int64Counter", benchMeasAttrs(func() measF {
return func(s attribute.Set) func() {
o := []metric.AddOption{metric.WithAttributeSet(s)}
Add measure benchmarks with exemplars recorded (#7406) Part of https://github.com/open-telemetry/opentelemetry-go/issues/7388 This adds benchmarks for making measurements that also record an exemplar. This will help demonstrate any improvements to locking in the exemplar reservoir. Parallel benchmarks: ``` goos: linux goarch: amd64 pkg: go.opentelemetry.io/otel/sdk/metric cpu: Intel(R) Xeon(R) CPU @ 2.20GHz BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Counter/Attributes/0-24 57819 258.8 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Counter/Attributes/1-24 46058 255.0 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Counter/Attributes/10-24 70351 271.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Counter/Attributes/0-24 67525 220.7 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Counter/Attributes/1-24 67789 248.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Counter/Attributes/10-24 63385 246.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64UpDownCounter/Attributes/0-24 67786 213.8 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64UpDownCounter/Attributes/1-24 73093 226.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64UpDownCounter/Attributes/10-24 55597 230.7 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64UpDownCounter/Attributes/0-24 77805 216.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64UpDownCounter/Attributes/1-24 71512 234.7 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64UpDownCounter/Attributes/10-24 60094 258.8 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Histogram/Attributes/0-24 66192 266.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Histogram/Attributes/1-24 50511 242.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Histogram/Attributes/10-24 42548 295.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Histogram/Attributes/0-24 48874 229.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Histogram/Attributes/1-24 50904 271.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Histogram/Attributes/10-24 59074 253.8 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialInt64Histogram/Attributes/0-24 55216 292.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialInt64Histogram/Attributes/1-24 53492 375.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialInt64Histogram/Attributes/10-24 40346 273.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialFloat64Histogram/Attributes/0-24 51520 310.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialFloat64Histogram/Attributes/1-24 43227 303.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialFloat64Histogram/Attributes/10-24 44754 295.4 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Counter/Attributes/0-24 44091 294.7 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Counter/Attributes/1-24 43164 300.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Counter/Attributes/10-24 46014 269.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Counter/Attributes/0-24 38978 281.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Counter/Attributes/1-24 41292 316.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Counter/Attributes/10-24 38986 303.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64UpDownCounter/Attributes/0-24 33555 299.0 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64UpDownCounter/Attributes/1-24 44396 322.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64UpDownCounter/Attributes/10-24 38211 273.0 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64UpDownCounter/Attributes/0-24 45652 296.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64UpDownCounter/Attributes/1-24 38984 270.8 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64UpDownCounter/Attributes/10-24 36280 313.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Histogram/Attributes/0-24 34377 437.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Histogram/Attributes/1-24 34992 344.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Histogram/Attributes/10-24 33795 384.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Histogram/Attributes/0-24 38080 353.7 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Histogram/Attributes/1-24 36568 315.4 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Histogram/Attributes/10-24 32418 309.7 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialInt64Histogram/Attributes/0-24 33217 320.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialInt64Histogram/Attributes/1-24 27937 407.7 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialInt64Histogram/Attributes/10-24 30818 350.0 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialFloat64Histogram/Attributes/0-24 36286 346.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialFloat64Histogram/Attributes/1-24 35863 342.4 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialFloat64Histogram/Attributes/10-24 32378 327.8 ns/op 0 B/op 0 allocs/op ``` Single-threaded benchmarks: ``` goos: linux goarch: amd64 pkg: go.opentelemetry.io/otel/sdk/metric cpu: Intel(R) Xeon(R) CPU @ 2.20GHz BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Counter/Attributes/0 115218 109.8 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Counter/Attributes/1 106142 112.0 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Counter/Attributes/10 101562 115.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Counter/Attributes/0 93019 112.1 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Counter/Attributes/1 107089 117.4 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Counter/Attributes/10 106411 117.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64UpDownCounter/Attributes/0 110683 113.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64UpDownCounter/Attributes/1 84825 122.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64UpDownCounter/Attributes/10 98952 113.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64UpDownCounter/Attributes/0 115419 105.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64UpDownCounter/Attributes/1 97251 114.7 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64UpDownCounter/Attributes/10 106036 111.8 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Histogram/Attributes/0 130296 92.98 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Histogram/Attributes/1 120679 100.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Histogram/Attributes/10 116985 102.1 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Histogram/Attributes/0 125479 96.42 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Histogram/Attributes/1 115527 103.7 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Histogram/Attributes/10 89858 117.8 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialInt64Histogram/Attributes/0 76768 152.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialInt64Histogram/Attributes/1 72832 161.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialInt64Histogram/Attributes/10 73298 160.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialFloat64Histogram/Attributes/0 81826 154.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialFloat64Histogram/Attributes/1 73779 158.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialFloat64Histogram/Attributes/10 75606 161.4 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Counter/Attributes/0 61503 188.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Counter/Attributes/1 63260 185.4 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Counter/Attributes/10 62704 189.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Counter/Attributes/0 63615 180.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Counter/Attributes/1 62072 190.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Counter/Attributes/10 61260 192.1 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64UpDownCounter/Attributes/0 61561 182.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64UpDownCounter/Attributes/1 60334 192.7 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64UpDownCounter/Attributes/10 64114 192.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64UpDownCounter/Attributes/0 63980 181.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64UpDownCounter/Attributes/1 61138 189.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64UpDownCounter/Attributes/10 62150 196.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Histogram/Attributes/0 51895 237.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Histogram/Attributes/1 52554 230.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Histogram/Attributes/10 53581 228.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Histogram/Attributes/0 55407 221.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Histogram/Attributes/1 50701 226.0 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Histogram/Attributes/10 50460 231.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialInt64Histogram/Attributes/0 53390 221.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialInt64Histogram/Attributes/1 51373 229.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialInt64Histogram/Attributes/10 51154 228.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialFloat64Histogram/Attributes/0 52167 230.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialFloat64Histogram/Attributes/1 48598 247.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialFloat64Histogram/Attributes/10 51086 230.8 ns/op 0 B/op 0 allocs/op ```
2025-09-25 09:55:45 -04:00
return func() { iCtr.Add(ctx, 1, o...) }
}
}()))
fCtr, err := meter.Float64Counter("float64-counter")
assert.NoError(b, err)
b.Run("Float64Counter", benchMeasAttrs(func() measF {
return func(s attribute.Set) func() {
o := []metric.AddOption{metric.WithAttributeSet(s)}
Add measure benchmarks with exemplars recorded (#7406) Part of https://github.com/open-telemetry/opentelemetry-go/issues/7388 This adds benchmarks for making measurements that also record an exemplar. This will help demonstrate any improvements to locking in the exemplar reservoir. Parallel benchmarks: ``` goos: linux goarch: amd64 pkg: go.opentelemetry.io/otel/sdk/metric cpu: Intel(R) Xeon(R) CPU @ 2.20GHz BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Counter/Attributes/0-24 57819 258.8 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Counter/Attributes/1-24 46058 255.0 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Counter/Attributes/10-24 70351 271.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Counter/Attributes/0-24 67525 220.7 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Counter/Attributes/1-24 67789 248.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Counter/Attributes/10-24 63385 246.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64UpDownCounter/Attributes/0-24 67786 213.8 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64UpDownCounter/Attributes/1-24 73093 226.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64UpDownCounter/Attributes/10-24 55597 230.7 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64UpDownCounter/Attributes/0-24 77805 216.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64UpDownCounter/Attributes/1-24 71512 234.7 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64UpDownCounter/Attributes/10-24 60094 258.8 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Histogram/Attributes/0-24 66192 266.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Histogram/Attributes/1-24 50511 242.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Histogram/Attributes/10-24 42548 295.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Histogram/Attributes/0-24 48874 229.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Histogram/Attributes/1-24 50904 271.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Histogram/Attributes/10-24 59074 253.8 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialInt64Histogram/Attributes/0-24 55216 292.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialInt64Histogram/Attributes/1-24 53492 375.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialInt64Histogram/Attributes/10-24 40346 273.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialFloat64Histogram/Attributes/0-24 51520 310.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialFloat64Histogram/Attributes/1-24 43227 303.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialFloat64Histogram/Attributes/10-24 44754 295.4 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Counter/Attributes/0-24 44091 294.7 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Counter/Attributes/1-24 43164 300.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Counter/Attributes/10-24 46014 269.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Counter/Attributes/0-24 38978 281.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Counter/Attributes/1-24 41292 316.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Counter/Attributes/10-24 38986 303.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64UpDownCounter/Attributes/0-24 33555 299.0 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64UpDownCounter/Attributes/1-24 44396 322.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64UpDownCounter/Attributes/10-24 38211 273.0 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64UpDownCounter/Attributes/0-24 45652 296.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64UpDownCounter/Attributes/1-24 38984 270.8 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64UpDownCounter/Attributes/10-24 36280 313.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Histogram/Attributes/0-24 34377 437.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Histogram/Attributes/1-24 34992 344.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Histogram/Attributes/10-24 33795 384.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Histogram/Attributes/0-24 38080 353.7 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Histogram/Attributes/1-24 36568 315.4 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Histogram/Attributes/10-24 32418 309.7 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialInt64Histogram/Attributes/0-24 33217 320.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialInt64Histogram/Attributes/1-24 27937 407.7 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialInt64Histogram/Attributes/10-24 30818 350.0 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialFloat64Histogram/Attributes/0-24 36286 346.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialFloat64Histogram/Attributes/1-24 35863 342.4 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialFloat64Histogram/Attributes/10-24 32378 327.8 ns/op 0 B/op 0 allocs/op ``` Single-threaded benchmarks: ``` goos: linux goarch: amd64 pkg: go.opentelemetry.io/otel/sdk/metric cpu: Intel(R) Xeon(R) CPU @ 2.20GHz BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Counter/Attributes/0 115218 109.8 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Counter/Attributes/1 106142 112.0 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Counter/Attributes/10 101562 115.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Counter/Attributes/0 93019 112.1 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Counter/Attributes/1 107089 117.4 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Counter/Attributes/10 106411 117.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64UpDownCounter/Attributes/0 110683 113.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64UpDownCounter/Attributes/1 84825 122.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64UpDownCounter/Attributes/10 98952 113.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64UpDownCounter/Attributes/0 115419 105.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64UpDownCounter/Attributes/1 97251 114.7 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64UpDownCounter/Attributes/10 106036 111.8 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Histogram/Attributes/0 130296 92.98 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Histogram/Attributes/1 120679 100.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Histogram/Attributes/10 116985 102.1 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Histogram/Attributes/0 125479 96.42 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Histogram/Attributes/1 115527 103.7 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Histogram/Attributes/10 89858 117.8 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialInt64Histogram/Attributes/0 76768 152.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialInt64Histogram/Attributes/1 72832 161.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialInt64Histogram/Attributes/10 73298 160.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialFloat64Histogram/Attributes/0 81826 154.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialFloat64Histogram/Attributes/1 73779 158.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialFloat64Histogram/Attributes/10 75606 161.4 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Counter/Attributes/0 61503 188.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Counter/Attributes/1 63260 185.4 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Counter/Attributes/10 62704 189.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Counter/Attributes/0 63615 180.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Counter/Attributes/1 62072 190.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Counter/Attributes/10 61260 192.1 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64UpDownCounter/Attributes/0 61561 182.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64UpDownCounter/Attributes/1 60334 192.7 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64UpDownCounter/Attributes/10 64114 192.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64UpDownCounter/Attributes/0 63980 181.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64UpDownCounter/Attributes/1 61138 189.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64UpDownCounter/Attributes/10 62150 196.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Histogram/Attributes/0 51895 237.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Histogram/Attributes/1 52554 230.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Histogram/Attributes/10 53581 228.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Histogram/Attributes/0 55407 221.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Histogram/Attributes/1 50701 226.0 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Histogram/Attributes/10 50460 231.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialInt64Histogram/Attributes/0 53390 221.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialInt64Histogram/Attributes/1 51373 229.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialInt64Histogram/Attributes/10 51154 228.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialFloat64Histogram/Attributes/0 52167 230.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialFloat64Histogram/Attributes/1 48598 247.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialFloat64Histogram/Attributes/10 51086 230.8 ns/op 0 B/op 0 allocs/op ```
2025-09-25 09:55:45 -04:00
return func() { fCtr.Add(ctx, 1, o...) }
}
}()))
iUDCtr, err := meter.Int64UpDownCounter("int64-up-down-counter")
assert.NoError(b, err)
b.Run("Int64UpDownCounter", benchMeasAttrs(func() measF {
return func(s attribute.Set) func() {
o := []metric.AddOption{metric.WithAttributeSet(s)}
Add measure benchmarks with exemplars recorded (#7406) Part of https://github.com/open-telemetry/opentelemetry-go/issues/7388 This adds benchmarks for making measurements that also record an exemplar. This will help demonstrate any improvements to locking in the exemplar reservoir. Parallel benchmarks: ``` goos: linux goarch: amd64 pkg: go.opentelemetry.io/otel/sdk/metric cpu: Intel(R) Xeon(R) CPU @ 2.20GHz BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Counter/Attributes/0-24 57819 258.8 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Counter/Attributes/1-24 46058 255.0 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Counter/Attributes/10-24 70351 271.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Counter/Attributes/0-24 67525 220.7 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Counter/Attributes/1-24 67789 248.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Counter/Attributes/10-24 63385 246.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64UpDownCounter/Attributes/0-24 67786 213.8 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64UpDownCounter/Attributes/1-24 73093 226.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64UpDownCounter/Attributes/10-24 55597 230.7 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64UpDownCounter/Attributes/0-24 77805 216.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64UpDownCounter/Attributes/1-24 71512 234.7 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64UpDownCounter/Attributes/10-24 60094 258.8 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Histogram/Attributes/0-24 66192 266.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Histogram/Attributes/1-24 50511 242.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Histogram/Attributes/10-24 42548 295.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Histogram/Attributes/0-24 48874 229.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Histogram/Attributes/1-24 50904 271.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Histogram/Attributes/10-24 59074 253.8 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialInt64Histogram/Attributes/0-24 55216 292.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialInt64Histogram/Attributes/1-24 53492 375.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialInt64Histogram/Attributes/10-24 40346 273.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialFloat64Histogram/Attributes/0-24 51520 310.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialFloat64Histogram/Attributes/1-24 43227 303.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialFloat64Histogram/Attributes/10-24 44754 295.4 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Counter/Attributes/0-24 44091 294.7 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Counter/Attributes/1-24 43164 300.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Counter/Attributes/10-24 46014 269.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Counter/Attributes/0-24 38978 281.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Counter/Attributes/1-24 41292 316.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Counter/Attributes/10-24 38986 303.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64UpDownCounter/Attributes/0-24 33555 299.0 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64UpDownCounter/Attributes/1-24 44396 322.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64UpDownCounter/Attributes/10-24 38211 273.0 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64UpDownCounter/Attributes/0-24 45652 296.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64UpDownCounter/Attributes/1-24 38984 270.8 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64UpDownCounter/Attributes/10-24 36280 313.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Histogram/Attributes/0-24 34377 437.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Histogram/Attributes/1-24 34992 344.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Histogram/Attributes/10-24 33795 384.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Histogram/Attributes/0-24 38080 353.7 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Histogram/Attributes/1-24 36568 315.4 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Histogram/Attributes/10-24 32418 309.7 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialInt64Histogram/Attributes/0-24 33217 320.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialInt64Histogram/Attributes/1-24 27937 407.7 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialInt64Histogram/Attributes/10-24 30818 350.0 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialFloat64Histogram/Attributes/0-24 36286 346.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialFloat64Histogram/Attributes/1-24 35863 342.4 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialFloat64Histogram/Attributes/10-24 32378 327.8 ns/op 0 B/op 0 allocs/op ``` Single-threaded benchmarks: ``` goos: linux goarch: amd64 pkg: go.opentelemetry.io/otel/sdk/metric cpu: Intel(R) Xeon(R) CPU @ 2.20GHz BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Counter/Attributes/0 115218 109.8 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Counter/Attributes/1 106142 112.0 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Counter/Attributes/10 101562 115.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Counter/Attributes/0 93019 112.1 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Counter/Attributes/1 107089 117.4 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Counter/Attributes/10 106411 117.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64UpDownCounter/Attributes/0 110683 113.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64UpDownCounter/Attributes/1 84825 122.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64UpDownCounter/Attributes/10 98952 113.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64UpDownCounter/Attributes/0 115419 105.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64UpDownCounter/Attributes/1 97251 114.7 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64UpDownCounter/Attributes/10 106036 111.8 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Histogram/Attributes/0 130296 92.98 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Histogram/Attributes/1 120679 100.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Histogram/Attributes/10 116985 102.1 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Histogram/Attributes/0 125479 96.42 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Histogram/Attributes/1 115527 103.7 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Histogram/Attributes/10 89858 117.8 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialInt64Histogram/Attributes/0 76768 152.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialInt64Histogram/Attributes/1 72832 161.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialInt64Histogram/Attributes/10 73298 160.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialFloat64Histogram/Attributes/0 81826 154.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialFloat64Histogram/Attributes/1 73779 158.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialFloat64Histogram/Attributes/10 75606 161.4 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Counter/Attributes/0 61503 188.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Counter/Attributes/1 63260 185.4 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Counter/Attributes/10 62704 189.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Counter/Attributes/0 63615 180.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Counter/Attributes/1 62072 190.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Counter/Attributes/10 61260 192.1 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64UpDownCounter/Attributes/0 61561 182.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64UpDownCounter/Attributes/1 60334 192.7 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64UpDownCounter/Attributes/10 64114 192.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64UpDownCounter/Attributes/0 63980 181.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64UpDownCounter/Attributes/1 61138 189.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64UpDownCounter/Attributes/10 62150 196.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Histogram/Attributes/0 51895 237.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Histogram/Attributes/1 52554 230.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Histogram/Attributes/10 53581 228.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Histogram/Attributes/0 55407 221.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Histogram/Attributes/1 50701 226.0 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Histogram/Attributes/10 50460 231.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialInt64Histogram/Attributes/0 53390 221.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialInt64Histogram/Attributes/1 51373 229.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialInt64Histogram/Attributes/10 51154 228.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialFloat64Histogram/Attributes/0 52167 230.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialFloat64Histogram/Attributes/1 48598 247.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialFloat64Histogram/Attributes/10 51086 230.8 ns/op 0 B/op 0 allocs/op ```
2025-09-25 09:55:45 -04:00
return func() { iUDCtr.Add(ctx, 1, o...) }
}
}()))
fUDCtr, err := meter.Float64UpDownCounter("float64-up-down-counter")
assert.NoError(b, err)
b.Run("Float64UpDownCounter", benchMeasAttrs(func() measF {
return func(s attribute.Set) func() {
o := []metric.AddOption{metric.WithAttributeSet(s)}
Add measure benchmarks with exemplars recorded (#7406) Part of https://github.com/open-telemetry/opentelemetry-go/issues/7388 This adds benchmarks for making measurements that also record an exemplar. This will help demonstrate any improvements to locking in the exemplar reservoir. Parallel benchmarks: ``` goos: linux goarch: amd64 pkg: go.opentelemetry.io/otel/sdk/metric cpu: Intel(R) Xeon(R) CPU @ 2.20GHz BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Counter/Attributes/0-24 57819 258.8 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Counter/Attributes/1-24 46058 255.0 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Counter/Attributes/10-24 70351 271.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Counter/Attributes/0-24 67525 220.7 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Counter/Attributes/1-24 67789 248.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Counter/Attributes/10-24 63385 246.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64UpDownCounter/Attributes/0-24 67786 213.8 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64UpDownCounter/Attributes/1-24 73093 226.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64UpDownCounter/Attributes/10-24 55597 230.7 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64UpDownCounter/Attributes/0-24 77805 216.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64UpDownCounter/Attributes/1-24 71512 234.7 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64UpDownCounter/Attributes/10-24 60094 258.8 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Histogram/Attributes/0-24 66192 266.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Histogram/Attributes/1-24 50511 242.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Histogram/Attributes/10-24 42548 295.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Histogram/Attributes/0-24 48874 229.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Histogram/Attributes/1-24 50904 271.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Histogram/Attributes/10-24 59074 253.8 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialInt64Histogram/Attributes/0-24 55216 292.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialInt64Histogram/Attributes/1-24 53492 375.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialInt64Histogram/Attributes/10-24 40346 273.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialFloat64Histogram/Attributes/0-24 51520 310.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialFloat64Histogram/Attributes/1-24 43227 303.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialFloat64Histogram/Attributes/10-24 44754 295.4 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Counter/Attributes/0-24 44091 294.7 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Counter/Attributes/1-24 43164 300.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Counter/Attributes/10-24 46014 269.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Counter/Attributes/0-24 38978 281.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Counter/Attributes/1-24 41292 316.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Counter/Attributes/10-24 38986 303.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64UpDownCounter/Attributes/0-24 33555 299.0 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64UpDownCounter/Attributes/1-24 44396 322.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64UpDownCounter/Attributes/10-24 38211 273.0 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64UpDownCounter/Attributes/0-24 45652 296.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64UpDownCounter/Attributes/1-24 38984 270.8 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64UpDownCounter/Attributes/10-24 36280 313.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Histogram/Attributes/0-24 34377 437.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Histogram/Attributes/1-24 34992 344.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Histogram/Attributes/10-24 33795 384.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Histogram/Attributes/0-24 38080 353.7 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Histogram/Attributes/1-24 36568 315.4 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Histogram/Attributes/10-24 32418 309.7 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialInt64Histogram/Attributes/0-24 33217 320.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialInt64Histogram/Attributes/1-24 27937 407.7 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialInt64Histogram/Attributes/10-24 30818 350.0 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialFloat64Histogram/Attributes/0-24 36286 346.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialFloat64Histogram/Attributes/1-24 35863 342.4 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialFloat64Histogram/Attributes/10-24 32378 327.8 ns/op 0 B/op 0 allocs/op ``` Single-threaded benchmarks: ``` goos: linux goarch: amd64 pkg: go.opentelemetry.io/otel/sdk/metric cpu: Intel(R) Xeon(R) CPU @ 2.20GHz BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Counter/Attributes/0 115218 109.8 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Counter/Attributes/1 106142 112.0 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Counter/Attributes/10 101562 115.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Counter/Attributes/0 93019 112.1 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Counter/Attributes/1 107089 117.4 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Counter/Attributes/10 106411 117.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64UpDownCounter/Attributes/0 110683 113.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64UpDownCounter/Attributes/1 84825 122.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64UpDownCounter/Attributes/10 98952 113.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64UpDownCounter/Attributes/0 115419 105.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64UpDownCounter/Attributes/1 97251 114.7 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64UpDownCounter/Attributes/10 106036 111.8 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Histogram/Attributes/0 130296 92.98 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Histogram/Attributes/1 120679 100.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Histogram/Attributes/10 116985 102.1 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Histogram/Attributes/0 125479 96.42 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Histogram/Attributes/1 115527 103.7 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Histogram/Attributes/10 89858 117.8 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialInt64Histogram/Attributes/0 76768 152.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialInt64Histogram/Attributes/1 72832 161.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialInt64Histogram/Attributes/10 73298 160.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialFloat64Histogram/Attributes/0 81826 154.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialFloat64Histogram/Attributes/1 73779 158.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialFloat64Histogram/Attributes/10 75606 161.4 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Counter/Attributes/0 61503 188.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Counter/Attributes/1 63260 185.4 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Counter/Attributes/10 62704 189.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Counter/Attributes/0 63615 180.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Counter/Attributes/1 62072 190.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Counter/Attributes/10 61260 192.1 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64UpDownCounter/Attributes/0 61561 182.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64UpDownCounter/Attributes/1 60334 192.7 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64UpDownCounter/Attributes/10 64114 192.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64UpDownCounter/Attributes/0 63980 181.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64UpDownCounter/Attributes/1 61138 189.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64UpDownCounter/Attributes/10 62150 196.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Histogram/Attributes/0 51895 237.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Histogram/Attributes/1 52554 230.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Histogram/Attributes/10 53581 228.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Histogram/Attributes/0 55407 221.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Histogram/Attributes/1 50701 226.0 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Histogram/Attributes/10 50460 231.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialInt64Histogram/Attributes/0 53390 221.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialInt64Histogram/Attributes/1 51373 229.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialInt64Histogram/Attributes/10 51154 228.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialFloat64Histogram/Attributes/0 52167 230.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialFloat64Histogram/Attributes/1 48598 247.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialFloat64Histogram/Attributes/10 51086 230.8 ns/op 0 B/op 0 allocs/op ```
2025-09-25 09:55:45 -04:00
return func() { fUDCtr.Add(ctx, 1, o...) }
}
}()))
2025-09-25 09:30:27 -04:00
iGauge, err := meter.Int64Gauge("int64-gauge")
assert.NoError(b, err)
b.Run("Int64Gauge", benchMeasAttrs(func() measF {
return func(s attribute.Set) func() {
o := []metric.RecordOption{metric.WithAttributeSet(s)}
Add measure benchmarks with exemplars recorded (#7406) Part of https://github.com/open-telemetry/opentelemetry-go/issues/7388 This adds benchmarks for making measurements that also record an exemplar. This will help demonstrate any improvements to locking in the exemplar reservoir. Parallel benchmarks: ``` goos: linux goarch: amd64 pkg: go.opentelemetry.io/otel/sdk/metric cpu: Intel(R) Xeon(R) CPU @ 2.20GHz BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Counter/Attributes/0-24 57819 258.8 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Counter/Attributes/1-24 46058 255.0 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Counter/Attributes/10-24 70351 271.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Counter/Attributes/0-24 67525 220.7 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Counter/Attributes/1-24 67789 248.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Counter/Attributes/10-24 63385 246.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64UpDownCounter/Attributes/0-24 67786 213.8 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64UpDownCounter/Attributes/1-24 73093 226.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64UpDownCounter/Attributes/10-24 55597 230.7 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64UpDownCounter/Attributes/0-24 77805 216.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64UpDownCounter/Attributes/1-24 71512 234.7 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64UpDownCounter/Attributes/10-24 60094 258.8 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Histogram/Attributes/0-24 66192 266.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Histogram/Attributes/1-24 50511 242.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Histogram/Attributes/10-24 42548 295.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Histogram/Attributes/0-24 48874 229.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Histogram/Attributes/1-24 50904 271.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Histogram/Attributes/10-24 59074 253.8 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialInt64Histogram/Attributes/0-24 55216 292.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialInt64Histogram/Attributes/1-24 53492 375.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialInt64Histogram/Attributes/10-24 40346 273.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialFloat64Histogram/Attributes/0-24 51520 310.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialFloat64Histogram/Attributes/1-24 43227 303.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialFloat64Histogram/Attributes/10-24 44754 295.4 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Counter/Attributes/0-24 44091 294.7 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Counter/Attributes/1-24 43164 300.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Counter/Attributes/10-24 46014 269.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Counter/Attributes/0-24 38978 281.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Counter/Attributes/1-24 41292 316.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Counter/Attributes/10-24 38986 303.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64UpDownCounter/Attributes/0-24 33555 299.0 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64UpDownCounter/Attributes/1-24 44396 322.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64UpDownCounter/Attributes/10-24 38211 273.0 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64UpDownCounter/Attributes/0-24 45652 296.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64UpDownCounter/Attributes/1-24 38984 270.8 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64UpDownCounter/Attributes/10-24 36280 313.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Histogram/Attributes/0-24 34377 437.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Histogram/Attributes/1-24 34992 344.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Histogram/Attributes/10-24 33795 384.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Histogram/Attributes/0-24 38080 353.7 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Histogram/Attributes/1-24 36568 315.4 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Histogram/Attributes/10-24 32418 309.7 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialInt64Histogram/Attributes/0-24 33217 320.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialInt64Histogram/Attributes/1-24 27937 407.7 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialInt64Histogram/Attributes/10-24 30818 350.0 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialFloat64Histogram/Attributes/0-24 36286 346.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialFloat64Histogram/Attributes/1-24 35863 342.4 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialFloat64Histogram/Attributes/10-24 32378 327.8 ns/op 0 B/op 0 allocs/op ``` Single-threaded benchmarks: ``` goos: linux goarch: amd64 pkg: go.opentelemetry.io/otel/sdk/metric cpu: Intel(R) Xeon(R) CPU @ 2.20GHz BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Counter/Attributes/0 115218 109.8 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Counter/Attributes/1 106142 112.0 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Counter/Attributes/10 101562 115.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Counter/Attributes/0 93019 112.1 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Counter/Attributes/1 107089 117.4 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Counter/Attributes/10 106411 117.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64UpDownCounter/Attributes/0 110683 113.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64UpDownCounter/Attributes/1 84825 122.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64UpDownCounter/Attributes/10 98952 113.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64UpDownCounter/Attributes/0 115419 105.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64UpDownCounter/Attributes/1 97251 114.7 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64UpDownCounter/Attributes/10 106036 111.8 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Histogram/Attributes/0 130296 92.98 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Histogram/Attributes/1 120679 100.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Histogram/Attributes/10 116985 102.1 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Histogram/Attributes/0 125479 96.42 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Histogram/Attributes/1 115527 103.7 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Histogram/Attributes/10 89858 117.8 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialInt64Histogram/Attributes/0 76768 152.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialInt64Histogram/Attributes/1 72832 161.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialInt64Histogram/Attributes/10 73298 160.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialFloat64Histogram/Attributes/0 81826 154.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialFloat64Histogram/Attributes/1 73779 158.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialFloat64Histogram/Attributes/10 75606 161.4 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Counter/Attributes/0 61503 188.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Counter/Attributes/1 63260 185.4 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Counter/Attributes/10 62704 189.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Counter/Attributes/0 63615 180.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Counter/Attributes/1 62072 190.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Counter/Attributes/10 61260 192.1 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64UpDownCounter/Attributes/0 61561 182.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64UpDownCounter/Attributes/1 60334 192.7 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64UpDownCounter/Attributes/10 64114 192.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64UpDownCounter/Attributes/0 63980 181.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64UpDownCounter/Attributes/1 61138 189.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64UpDownCounter/Attributes/10 62150 196.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Histogram/Attributes/0 51895 237.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Histogram/Attributes/1 52554 230.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Histogram/Attributes/10 53581 228.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Histogram/Attributes/0 55407 221.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Histogram/Attributes/1 50701 226.0 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Histogram/Attributes/10 50460 231.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialInt64Histogram/Attributes/0 53390 221.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialInt64Histogram/Attributes/1 51373 229.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialInt64Histogram/Attributes/10 51154 228.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialFloat64Histogram/Attributes/0 52167 230.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialFloat64Histogram/Attributes/1 48598 247.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialFloat64Histogram/Attributes/10 51086 230.8 ns/op 0 B/op 0 allocs/op ```
2025-09-25 09:55:45 -04:00
return func() { iGauge.Record(ctx, 1, o...) }
2025-09-25 09:30:27 -04:00
}
}()))
fGauge, err := meter.Float64Gauge("float64-gauge")
assert.NoError(b, err)
b.Run("Float64Gauge", benchMeasAttrs(func() measF {
return func(s attribute.Set) func() {
o := []metric.RecordOption{metric.WithAttributeSet(s)}
Add measure benchmarks with exemplars recorded (#7406) Part of https://github.com/open-telemetry/opentelemetry-go/issues/7388 This adds benchmarks for making measurements that also record an exemplar. This will help demonstrate any improvements to locking in the exemplar reservoir. Parallel benchmarks: ``` goos: linux goarch: amd64 pkg: go.opentelemetry.io/otel/sdk/metric cpu: Intel(R) Xeon(R) CPU @ 2.20GHz BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Counter/Attributes/0-24 57819 258.8 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Counter/Attributes/1-24 46058 255.0 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Counter/Attributes/10-24 70351 271.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Counter/Attributes/0-24 67525 220.7 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Counter/Attributes/1-24 67789 248.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Counter/Attributes/10-24 63385 246.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64UpDownCounter/Attributes/0-24 67786 213.8 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64UpDownCounter/Attributes/1-24 73093 226.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64UpDownCounter/Attributes/10-24 55597 230.7 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64UpDownCounter/Attributes/0-24 77805 216.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64UpDownCounter/Attributes/1-24 71512 234.7 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64UpDownCounter/Attributes/10-24 60094 258.8 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Histogram/Attributes/0-24 66192 266.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Histogram/Attributes/1-24 50511 242.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Histogram/Attributes/10-24 42548 295.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Histogram/Attributes/0-24 48874 229.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Histogram/Attributes/1-24 50904 271.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Histogram/Attributes/10-24 59074 253.8 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialInt64Histogram/Attributes/0-24 55216 292.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialInt64Histogram/Attributes/1-24 53492 375.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialInt64Histogram/Attributes/10-24 40346 273.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialFloat64Histogram/Attributes/0-24 51520 310.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialFloat64Histogram/Attributes/1-24 43227 303.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialFloat64Histogram/Attributes/10-24 44754 295.4 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Counter/Attributes/0-24 44091 294.7 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Counter/Attributes/1-24 43164 300.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Counter/Attributes/10-24 46014 269.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Counter/Attributes/0-24 38978 281.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Counter/Attributes/1-24 41292 316.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Counter/Attributes/10-24 38986 303.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64UpDownCounter/Attributes/0-24 33555 299.0 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64UpDownCounter/Attributes/1-24 44396 322.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64UpDownCounter/Attributes/10-24 38211 273.0 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64UpDownCounter/Attributes/0-24 45652 296.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64UpDownCounter/Attributes/1-24 38984 270.8 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64UpDownCounter/Attributes/10-24 36280 313.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Histogram/Attributes/0-24 34377 437.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Histogram/Attributes/1-24 34992 344.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Histogram/Attributes/10-24 33795 384.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Histogram/Attributes/0-24 38080 353.7 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Histogram/Attributes/1-24 36568 315.4 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Histogram/Attributes/10-24 32418 309.7 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialInt64Histogram/Attributes/0-24 33217 320.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialInt64Histogram/Attributes/1-24 27937 407.7 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialInt64Histogram/Attributes/10-24 30818 350.0 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialFloat64Histogram/Attributes/0-24 36286 346.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialFloat64Histogram/Attributes/1-24 35863 342.4 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialFloat64Histogram/Attributes/10-24 32378 327.8 ns/op 0 B/op 0 allocs/op ``` Single-threaded benchmarks: ``` goos: linux goarch: amd64 pkg: go.opentelemetry.io/otel/sdk/metric cpu: Intel(R) Xeon(R) CPU @ 2.20GHz BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Counter/Attributes/0 115218 109.8 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Counter/Attributes/1 106142 112.0 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Counter/Attributes/10 101562 115.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Counter/Attributes/0 93019 112.1 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Counter/Attributes/1 107089 117.4 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Counter/Attributes/10 106411 117.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64UpDownCounter/Attributes/0 110683 113.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64UpDownCounter/Attributes/1 84825 122.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64UpDownCounter/Attributes/10 98952 113.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64UpDownCounter/Attributes/0 115419 105.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64UpDownCounter/Attributes/1 97251 114.7 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64UpDownCounter/Attributes/10 106036 111.8 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Histogram/Attributes/0 130296 92.98 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Histogram/Attributes/1 120679 100.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Histogram/Attributes/10 116985 102.1 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Histogram/Attributes/0 125479 96.42 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Histogram/Attributes/1 115527 103.7 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Histogram/Attributes/10 89858 117.8 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialInt64Histogram/Attributes/0 76768 152.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialInt64Histogram/Attributes/1 72832 161.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialInt64Histogram/Attributes/10 73298 160.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialFloat64Histogram/Attributes/0 81826 154.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialFloat64Histogram/Attributes/1 73779 158.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialFloat64Histogram/Attributes/10 75606 161.4 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Counter/Attributes/0 61503 188.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Counter/Attributes/1 63260 185.4 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Counter/Attributes/10 62704 189.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Counter/Attributes/0 63615 180.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Counter/Attributes/1 62072 190.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Counter/Attributes/10 61260 192.1 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64UpDownCounter/Attributes/0 61561 182.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64UpDownCounter/Attributes/1 60334 192.7 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64UpDownCounter/Attributes/10 64114 192.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64UpDownCounter/Attributes/0 63980 181.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64UpDownCounter/Attributes/1 61138 189.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64UpDownCounter/Attributes/10 62150 196.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Histogram/Attributes/0 51895 237.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Histogram/Attributes/1 52554 230.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Histogram/Attributes/10 53581 228.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Histogram/Attributes/0 55407 221.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Histogram/Attributes/1 50701 226.0 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Histogram/Attributes/10 50460 231.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialInt64Histogram/Attributes/0 53390 221.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialInt64Histogram/Attributes/1 51373 229.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialInt64Histogram/Attributes/10 51154 228.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialFloat64Histogram/Attributes/0 52167 230.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialFloat64Histogram/Attributes/1 48598 247.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialFloat64Histogram/Attributes/10 51086 230.8 ns/op 0 B/op 0 allocs/op ```
2025-09-25 09:55:45 -04:00
return func() { fGauge.Record(ctx, 1, o...) }
2025-09-25 09:30:27 -04:00
}
}()))
iHist, err := meter.Int64Histogram("int64-histogram")
assert.NoError(b, err)
b.Run("Int64Histogram", benchMeasAttrs(func() measF {
return func(s attribute.Set) func() {
o := []metric.RecordOption{metric.WithAttributeSet(s)}
Add measure benchmarks with exemplars recorded (#7406) Part of https://github.com/open-telemetry/opentelemetry-go/issues/7388 This adds benchmarks for making measurements that also record an exemplar. This will help demonstrate any improvements to locking in the exemplar reservoir. Parallel benchmarks: ``` goos: linux goarch: amd64 pkg: go.opentelemetry.io/otel/sdk/metric cpu: Intel(R) Xeon(R) CPU @ 2.20GHz BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Counter/Attributes/0-24 57819 258.8 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Counter/Attributes/1-24 46058 255.0 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Counter/Attributes/10-24 70351 271.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Counter/Attributes/0-24 67525 220.7 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Counter/Attributes/1-24 67789 248.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Counter/Attributes/10-24 63385 246.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64UpDownCounter/Attributes/0-24 67786 213.8 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64UpDownCounter/Attributes/1-24 73093 226.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64UpDownCounter/Attributes/10-24 55597 230.7 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64UpDownCounter/Attributes/0-24 77805 216.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64UpDownCounter/Attributes/1-24 71512 234.7 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64UpDownCounter/Attributes/10-24 60094 258.8 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Histogram/Attributes/0-24 66192 266.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Histogram/Attributes/1-24 50511 242.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Histogram/Attributes/10-24 42548 295.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Histogram/Attributes/0-24 48874 229.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Histogram/Attributes/1-24 50904 271.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Histogram/Attributes/10-24 59074 253.8 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialInt64Histogram/Attributes/0-24 55216 292.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialInt64Histogram/Attributes/1-24 53492 375.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialInt64Histogram/Attributes/10-24 40346 273.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialFloat64Histogram/Attributes/0-24 51520 310.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialFloat64Histogram/Attributes/1-24 43227 303.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialFloat64Histogram/Attributes/10-24 44754 295.4 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Counter/Attributes/0-24 44091 294.7 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Counter/Attributes/1-24 43164 300.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Counter/Attributes/10-24 46014 269.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Counter/Attributes/0-24 38978 281.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Counter/Attributes/1-24 41292 316.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Counter/Attributes/10-24 38986 303.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64UpDownCounter/Attributes/0-24 33555 299.0 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64UpDownCounter/Attributes/1-24 44396 322.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64UpDownCounter/Attributes/10-24 38211 273.0 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64UpDownCounter/Attributes/0-24 45652 296.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64UpDownCounter/Attributes/1-24 38984 270.8 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64UpDownCounter/Attributes/10-24 36280 313.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Histogram/Attributes/0-24 34377 437.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Histogram/Attributes/1-24 34992 344.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Histogram/Attributes/10-24 33795 384.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Histogram/Attributes/0-24 38080 353.7 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Histogram/Attributes/1-24 36568 315.4 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Histogram/Attributes/10-24 32418 309.7 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialInt64Histogram/Attributes/0-24 33217 320.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialInt64Histogram/Attributes/1-24 27937 407.7 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialInt64Histogram/Attributes/10-24 30818 350.0 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialFloat64Histogram/Attributes/0-24 36286 346.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialFloat64Histogram/Attributes/1-24 35863 342.4 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialFloat64Histogram/Attributes/10-24 32378 327.8 ns/op 0 B/op 0 allocs/op ``` Single-threaded benchmarks: ``` goos: linux goarch: amd64 pkg: go.opentelemetry.io/otel/sdk/metric cpu: Intel(R) Xeon(R) CPU @ 2.20GHz BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Counter/Attributes/0 115218 109.8 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Counter/Attributes/1 106142 112.0 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Counter/Attributes/10 101562 115.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Counter/Attributes/0 93019 112.1 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Counter/Attributes/1 107089 117.4 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Counter/Attributes/10 106411 117.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64UpDownCounter/Attributes/0 110683 113.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64UpDownCounter/Attributes/1 84825 122.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64UpDownCounter/Attributes/10 98952 113.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64UpDownCounter/Attributes/0 115419 105.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64UpDownCounter/Attributes/1 97251 114.7 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64UpDownCounter/Attributes/10 106036 111.8 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Histogram/Attributes/0 130296 92.98 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Histogram/Attributes/1 120679 100.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Histogram/Attributes/10 116985 102.1 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Histogram/Attributes/0 125479 96.42 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Histogram/Attributes/1 115527 103.7 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Histogram/Attributes/10 89858 117.8 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialInt64Histogram/Attributes/0 76768 152.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialInt64Histogram/Attributes/1 72832 161.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialInt64Histogram/Attributes/10 73298 160.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialFloat64Histogram/Attributes/0 81826 154.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialFloat64Histogram/Attributes/1 73779 158.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialFloat64Histogram/Attributes/10 75606 161.4 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Counter/Attributes/0 61503 188.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Counter/Attributes/1 63260 185.4 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Counter/Attributes/10 62704 189.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Counter/Attributes/0 63615 180.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Counter/Attributes/1 62072 190.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Counter/Attributes/10 61260 192.1 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64UpDownCounter/Attributes/0 61561 182.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64UpDownCounter/Attributes/1 60334 192.7 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64UpDownCounter/Attributes/10 64114 192.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64UpDownCounter/Attributes/0 63980 181.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64UpDownCounter/Attributes/1 61138 189.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64UpDownCounter/Attributes/10 62150 196.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Histogram/Attributes/0 51895 237.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Histogram/Attributes/1 52554 230.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Histogram/Attributes/10 53581 228.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Histogram/Attributes/0 55407 221.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Histogram/Attributes/1 50701 226.0 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Histogram/Attributes/10 50460 231.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialInt64Histogram/Attributes/0 53390 221.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialInt64Histogram/Attributes/1 51373 229.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialInt64Histogram/Attributes/10 51154 228.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialFloat64Histogram/Attributes/0 52167 230.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialFloat64Histogram/Attributes/1 48598 247.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialFloat64Histogram/Attributes/10 51086 230.8 ns/op 0 B/op 0 allocs/op ```
2025-09-25 09:55:45 -04:00
return func() { iHist.Record(ctx, 1, o...) }
}
}()))
fHist, err := meter.Float64Histogram("float64-histogram")
assert.NoError(b, err)
b.Run("Float64Histogram", benchMeasAttrs(func() measF {
return func(s attribute.Set) func() {
o := []metric.RecordOption{metric.WithAttributeSet(s)}
Add measure benchmarks with exemplars recorded (#7406) Part of https://github.com/open-telemetry/opentelemetry-go/issues/7388 This adds benchmarks for making measurements that also record an exemplar. This will help demonstrate any improvements to locking in the exemplar reservoir. Parallel benchmarks: ``` goos: linux goarch: amd64 pkg: go.opentelemetry.io/otel/sdk/metric cpu: Intel(R) Xeon(R) CPU @ 2.20GHz BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Counter/Attributes/0-24 57819 258.8 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Counter/Attributes/1-24 46058 255.0 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Counter/Attributes/10-24 70351 271.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Counter/Attributes/0-24 67525 220.7 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Counter/Attributes/1-24 67789 248.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Counter/Attributes/10-24 63385 246.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64UpDownCounter/Attributes/0-24 67786 213.8 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64UpDownCounter/Attributes/1-24 73093 226.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64UpDownCounter/Attributes/10-24 55597 230.7 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64UpDownCounter/Attributes/0-24 77805 216.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64UpDownCounter/Attributes/1-24 71512 234.7 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64UpDownCounter/Attributes/10-24 60094 258.8 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Histogram/Attributes/0-24 66192 266.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Histogram/Attributes/1-24 50511 242.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Histogram/Attributes/10-24 42548 295.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Histogram/Attributes/0-24 48874 229.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Histogram/Attributes/1-24 50904 271.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Histogram/Attributes/10-24 59074 253.8 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialInt64Histogram/Attributes/0-24 55216 292.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialInt64Histogram/Attributes/1-24 53492 375.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialInt64Histogram/Attributes/10-24 40346 273.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialFloat64Histogram/Attributes/0-24 51520 310.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialFloat64Histogram/Attributes/1-24 43227 303.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialFloat64Histogram/Attributes/10-24 44754 295.4 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Counter/Attributes/0-24 44091 294.7 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Counter/Attributes/1-24 43164 300.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Counter/Attributes/10-24 46014 269.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Counter/Attributes/0-24 38978 281.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Counter/Attributes/1-24 41292 316.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Counter/Attributes/10-24 38986 303.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64UpDownCounter/Attributes/0-24 33555 299.0 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64UpDownCounter/Attributes/1-24 44396 322.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64UpDownCounter/Attributes/10-24 38211 273.0 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64UpDownCounter/Attributes/0-24 45652 296.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64UpDownCounter/Attributes/1-24 38984 270.8 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64UpDownCounter/Attributes/10-24 36280 313.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Histogram/Attributes/0-24 34377 437.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Histogram/Attributes/1-24 34992 344.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Histogram/Attributes/10-24 33795 384.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Histogram/Attributes/0-24 38080 353.7 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Histogram/Attributes/1-24 36568 315.4 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Histogram/Attributes/10-24 32418 309.7 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialInt64Histogram/Attributes/0-24 33217 320.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialInt64Histogram/Attributes/1-24 27937 407.7 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialInt64Histogram/Attributes/10-24 30818 350.0 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialFloat64Histogram/Attributes/0-24 36286 346.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialFloat64Histogram/Attributes/1-24 35863 342.4 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialFloat64Histogram/Attributes/10-24 32378 327.8 ns/op 0 B/op 0 allocs/op ``` Single-threaded benchmarks: ``` goos: linux goarch: amd64 pkg: go.opentelemetry.io/otel/sdk/metric cpu: Intel(R) Xeon(R) CPU @ 2.20GHz BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Counter/Attributes/0 115218 109.8 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Counter/Attributes/1 106142 112.0 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Counter/Attributes/10 101562 115.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Counter/Attributes/0 93019 112.1 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Counter/Attributes/1 107089 117.4 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Counter/Attributes/10 106411 117.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64UpDownCounter/Attributes/0 110683 113.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64UpDownCounter/Attributes/1 84825 122.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64UpDownCounter/Attributes/10 98952 113.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64UpDownCounter/Attributes/0 115419 105.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64UpDownCounter/Attributes/1 97251 114.7 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64UpDownCounter/Attributes/10 106036 111.8 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Histogram/Attributes/0 130296 92.98 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Histogram/Attributes/1 120679 100.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Histogram/Attributes/10 116985 102.1 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Histogram/Attributes/0 125479 96.42 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Histogram/Attributes/1 115527 103.7 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Histogram/Attributes/10 89858 117.8 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialInt64Histogram/Attributes/0 76768 152.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialInt64Histogram/Attributes/1 72832 161.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialInt64Histogram/Attributes/10 73298 160.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialFloat64Histogram/Attributes/0 81826 154.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialFloat64Histogram/Attributes/1 73779 158.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialFloat64Histogram/Attributes/10 75606 161.4 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Counter/Attributes/0 61503 188.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Counter/Attributes/1 63260 185.4 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Counter/Attributes/10 62704 189.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Counter/Attributes/0 63615 180.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Counter/Attributes/1 62072 190.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Counter/Attributes/10 61260 192.1 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64UpDownCounter/Attributes/0 61561 182.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64UpDownCounter/Attributes/1 60334 192.7 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64UpDownCounter/Attributes/10 64114 192.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64UpDownCounter/Attributes/0 63980 181.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64UpDownCounter/Attributes/1 61138 189.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64UpDownCounter/Attributes/10 62150 196.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Histogram/Attributes/0 51895 237.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Histogram/Attributes/1 52554 230.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Histogram/Attributes/10 53581 228.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Histogram/Attributes/0 55407 221.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Histogram/Attributes/1 50701 226.0 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Histogram/Attributes/10 50460 231.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialInt64Histogram/Attributes/0 53390 221.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialInt64Histogram/Attributes/1 51373 229.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialInt64Histogram/Attributes/10 51154 228.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialFloat64Histogram/Attributes/0 52167 230.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialFloat64Histogram/Attributes/1 48598 247.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialFloat64Histogram/Attributes/10 51086 230.8 ns/op 0 B/op 0 allocs/op ```
2025-09-25 09:55:45 -04:00
return func() { fHist.Record(ctx, 1, o...) }
}
}()))
Add benchmark for exponential histogram measurements (#7305) This is helpful for my work optimizing locking in https://github.com/open-telemetry/opentelemetry-go/pull/7189 ``` goos: linux goarch: amd64 pkg: go.opentelemetry.io/otel/sdk/metric cpu: Intel(R) Xeon(R) CPU @ 2.20GHz BenchmarkSyncMeasure/NoView/ExponentialFloat64Histogram/Attributes/0-24 43419 306.0 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExponentialFloat64Histogram/Attributes/0-24 40675 316.1 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExponentialFloat64Histogram/Attributes/0-24 53746 305.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExponentialFloat64Histogram/Attributes/0-24 38224 296.1 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExponentialFloat64Histogram/Attributes/0-24 53796 330.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExponentialFloat64Histogram/Attributes/0-24 47823 316.4 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExponentialFloat64Histogram/Attributes/1-24 32172 373.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExponentialFloat64Histogram/Attributes/1-24 33084 379.0 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExponentialFloat64Histogram/Attributes/1-24 29956 360.4 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExponentialFloat64Histogram/Attributes/1-24 33921 370.1 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExponentialFloat64Histogram/Attributes/1-24 34449 387.7 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExponentialFloat64Histogram/Attributes/1-24 29156 393.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExponentialFloat64Histogram/Attributes/10-24 10768 1040 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExponentialFloat64Histogram/Attributes/10-24 11190 1056 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExponentialFloat64Histogram/Attributes/10-24 11078 1176 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExponentialFloat64Histogram/Attributes/10-24 10929 1219 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExponentialFloat64Histogram/Attributes/10-24 10454 1066 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExponentialFloat64Histogram/Attributes/10-24 10501 1064 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/DropView/ExponentialFloat64Histogram/Attributes/0-24 5919898 1.879 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/DropView/ExponentialFloat64Histogram/Attributes/0-24 5834685 1.990 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/DropView/ExponentialFloat64Histogram/Attributes/0-24 5782334 2.433 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/DropView/ExponentialFloat64Histogram/Attributes/0-24 5320924 2.404 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/DropView/ExponentialFloat64Histogram/Attributes/0-24 5742800 2.109 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/DropView/ExponentialFloat64Histogram/Attributes/0-24 5885475 2.056 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/DropView/ExponentialFloat64Histogram/Attributes/1-24 4331547 2.758 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/DropView/ExponentialFloat64Histogram/Attributes/1-24 3848244 2.725 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/DropView/ExponentialFloat64Histogram/Attributes/1-24 4542189 2.636 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/DropView/ExponentialFloat64Histogram/Attributes/1-24 4201015 2.641 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/DropView/ExponentialFloat64Histogram/Attributes/1-24 4597094 2.608 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/DropView/ExponentialFloat64Histogram/Attributes/1-24 4869811 2.491 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/DropView/ExponentialFloat64Histogram/Attributes/10-24 4826077 2.329 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/DropView/ExponentialFloat64Histogram/Attributes/10-24 4866612 2.382 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/DropView/ExponentialFloat64Histogram/Attributes/10-24 5149305 2.310 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/DropView/ExponentialFloat64Histogram/Attributes/10-24 5101305 2.384 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/DropView/ExponentialFloat64Histogram/Attributes/10-24 4854940 2.440 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/DropView/ExponentialFloat64Histogram/Attributes/10-24 4874742 2.501 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/AttrFilterView/ExponentialFloat64Histogram/Attributes/0-24 55272 359.0 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/AttrFilterView/ExponentialFloat64Histogram/Attributes/0-24 52195 318.4 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/AttrFilterView/ExponentialFloat64Histogram/Attributes/0-24 52324 330.8 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/AttrFilterView/ExponentialFloat64Histogram/Attributes/0-24 49879 321.4 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/AttrFilterView/ExponentialFloat64Histogram/Attributes/0-24 56212 351.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/AttrFilterView/ExponentialFloat64Histogram/Attributes/0-24 43362 301.4 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/AttrFilterView/ExponentialFloat64Histogram/Attributes/1-24 30296 461.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/AttrFilterView/ExponentialFloat64Histogram/Attributes/1-24 24178 469.0 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/AttrFilterView/ExponentialFloat64Histogram/Attributes/1-24 24901 477.0 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/AttrFilterView/ExponentialFloat64Histogram/Attributes/1-24 21748 477.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/AttrFilterView/ExponentialFloat64Histogram/Attributes/1-24 23972 512.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/AttrFilterView/ExponentialFloat64Histogram/Attributes/1-24 28039 499.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/AttrFilterView/ExponentialFloat64Histogram/Attributes/10-24 7598 1646 ns/op 704 B/op 2 allocs/op BenchmarkSyncMeasure/AttrFilterView/ExponentialFloat64Histogram/Attributes/10-24 7452 1660 ns/op 704 B/op 2 allocs/op BenchmarkSyncMeasure/AttrFilterView/ExponentialFloat64Histogram/Attributes/10-24 7620 1644 ns/op 704 B/op 2 allocs/op BenchmarkSyncMeasure/AttrFilterView/ExponentialFloat64Histogram/Attributes/10-24 6459 1853 ns/op 704 B/op 2 allocs/op BenchmarkSyncMeasure/AttrFilterView/ExponentialFloat64Histogram/Attributes/10-24 7950 1575 ns/op 704 B/op 2 allocs/op BenchmarkSyncMeasure/AttrFilterView/ExponentialFloat64Histogram/Attributes/10-24 8948 1421 ns/op 704 B/op 2 allocs/op ```
2025-09-08 03:19:44 -04:00
expIHist, err := expMeter.Int64Histogram("exponential-int64-histogram")
assert.NoError(b, err)
b.Run("ExponentialInt64Histogram", benchMeasAttrs(func() measF {
return func(s attribute.Set) func() {
o := []metric.RecordOption{metric.WithAttributeSet(s)}
Add measure benchmarks with exemplars recorded (#7406) Part of https://github.com/open-telemetry/opentelemetry-go/issues/7388 This adds benchmarks for making measurements that also record an exemplar. This will help demonstrate any improvements to locking in the exemplar reservoir. Parallel benchmarks: ``` goos: linux goarch: amd64 pkg: go.opentelemetry.io/otel/sdk/metric cpu: Intel(R) Xeon(R) CPU @ 2.20GHz BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Counter/Attributes/0-24 57819 258.8 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Counter/Attributes/1-24 46058 255.0 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Counter/Attributes/10-24 70351 271.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Counter/Attributes/0-24 67525 220.7 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Counter/Attributes/1-24 67789 248.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Counter/Attributes/10-24 63385 246.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64UpDownCounter/Attributes/0-24 67786 213.8 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64UpDownCounter/Attributes/1-24 73093 226.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64UpDownCounter/Attributes/10-24 55597 230.7 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64UpDownCounter/Attributes/0-24 77805 216.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64UpDownCounter/Attributes/1-24 71512 234.7 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64UpDownCounter/Attributes/10-24 60094 258.8 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Histogram/Attributes/0-24 66192 266.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Histogram/Attributes/1-24 50511 242.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Histogram/Attributes/10-24 42548 295.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Histogram/Attributes/0-24 48874 229.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Histogram/Attributes/1-24 50904 271.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Histogram/Attributes/10-24 59074 253.8 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialInt64Histogram/Attributes/0-24 55216 292.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialInt64Histogram/Attributes/1-24 53492 375.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialInt64Histogram/Attributes/10-24 40346 273.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialFloat64Histogram/Attributes/0-24 51520 310.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialFloat64Histogram/Attributes/1-24 43227 303.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialFloat64Histogram/Attributes/10-24 44754 295.4 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Counter/Attributes/0-24 44091 294.7 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Counter/Attributes/1-24 43164 300.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Counter/Attributes/10-24 46014 269.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Counter/Attributes/0-24 38978 281.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Counter/Attributes/1-24 41292 316.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Counter/Attributes/10-24 38986 303.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64UpDownCounter/Attributes/0-24 33555 299.0 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64UpDownCounter/Attributes/1-24 44396 322.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64UpDownCounter/Attributes/10-24 38211 273.0 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64UpDownCounter/Attributes/0-24 45652 296.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64UpDownCounter/Attributes/1-24 38984 270.8 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64UpDownCounter/Attributes/10-24 36280 313.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Histogram/Attributes/0-24 34377 437.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Histogram/Attributes/1-24 34992 344.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Histogram/Attributes/10-24 33795 384.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Histogram/Attributes/0-24 38080 353.7 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Histogram/Attributes/1-24 36568 315.4 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Histogram/Attributes/10-24 32418 309.7 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialInt64Histogram/Attributes/0-24 33217 320.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialInt64Histogram/Attributes/1-24 27937 407.7 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialInt64Histogram/Attributes/10-24 30818 350.0 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialFloat64Histogram/Attributes/0-24 36286 346.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialFloat64Histogram/Attributes/1-24 35863 342.4 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialFloat64Histogram/Attributes/10-24 32378 327.8 ns/op 0 B/op 0 allocs/op ``` Single-threaded benchmarks: ``` goos: linux goarch: amd64 pkg: go.opentelemetry.io/otel/sdk/metric cpu: Intel(R) Xeon(R) CPU @ 2.20GHz BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Counter/Attributes/0 115218 109.8 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Counter/Attributes/1 106142 112.0 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Counter/Attributes/10 101562 115.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Counter/Attributes/0 93019 112.1 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Counter/Attributes/1 107089 117.4 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Counter/Attributes/10 106411 117.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64UpDownCounter/Attributes/0 110683 113.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64UpDownCounter/Attributes/1 84825 122.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64UpDownCounter/Attributes/10 98952 113.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64UpDownCounter/Attributes/0 115419 105.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64UpDownCounter/Attributes/1 97251 114.7 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64UpDownCounter/Attributes/10 106036 111.8 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Histogram/Attributes/0 130296 92.98 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Histogram/Attributes/1 120679 100.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Histogram/Attributes/10 116985 102.1 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Histogram/Attributes/0 125479 96.42 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Histogram/Attributes/1 115527 103.7 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Histogram/Attributes/10 89858 117.8 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialInt64Histogram/Attributes/0 76768 152.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialInt64Histogram/Attributes/1 72832 161.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialInt64Histogram/Attributes/10 73298 160.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialFloat64Histogram/Attributes/0 81826 154.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialFloat64Histogram/Attributes/1 73779 158.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialFloat64Histogram/Attributes/10 75606 161.4 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Counter/Attributes/0 61503 188.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Counter/Attributes/1 63260 185.4 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Counter/Attributes/10 62704 189.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Counter/Attributes/0 63615 180.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Counter/Attributes/1 62072 190.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Counter/Attributes/10 61260 192.1 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64UpDownCounter/Attributes/0 61561 182.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64UpDownCounter/Attributes/1 60334 192.7 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64UpDownCounter/Attributes/10 64114 192.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64UpDownCounter/Attributes/0 63980 181.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64UpDownCounter/Attributes/1 61138 189.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64UpDownCounter/Attributes/10 62150 196.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Histogram/Attributes/0 51895 237.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Histogram/Attributes/1 52554 230.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Histogram/Attributes/10 53581 228.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Histogram/Attributes/0 55407 221.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Histogram/Attributes/1 50701 226.0 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Histogram/Attributes/10 50460 231.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialInt64Histogram/Attributes/0 53390 221.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialInt64Histogram/Attributes/1 51373 229.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialInt64Histogram/Attributes/10 51154 228.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialFloat64Histogram/Attributes/0 52167 230.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialFloat64Histogram/Attributes/1 48598 247.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialFloat64Histogram/Attributes/10 51086 230.8 ns/op 0 B/op 0 allocs/op ```
2025-09-25 09:55:45 -04:00
return func() { expIHist.Record(ctx, 1, o...) }
Add benchmark for exponential histogram measurements (#7305) This is helpful for my work optimizing locking in https://github.com/open-telemetry/opentelemetry-go/pull/7189 ``` goos: linux goarch: amd64 pkg: go.opentelemetry.io/otel/sdk/metric cpu: Intel(R) Xeon(R) CPU @ 2.20GHz BenchmarkSyncMeasure/NoView/ExponentialFloat64Histogram/Attributes/0-24 43419 306.0 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExponentialFloat64Histogram/Attributes/0-24 40675 316.1 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExponentialFloat64Histogram/Attributes/0-24 53746 305.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExponentialFloat64Histogram/Attributes/0-24 38224 296.1 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExponentialFloat64Histogram/Attributes/0-24 53796 330.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExponentialFloat64Histogram/Attributes/0-24 47823 316.4 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExponentialFloat64Histogram/Attributes/1-24 32172 373.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExponentialFloat64Histogram/Attributes/1-24 33084 379.0 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExponentialFloat64Histogram/Attributes/1-24 29956 360.4 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExponentialFloat64Histogram/Attributes/1-24 33921 370.1 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExponentialFloat64Histogram/Attributes/1-24 34449 387.7 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExponentialFloat64Histogram/Attributes/1-24 29156 393.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExponentialFloat64Histogram/Attributes/10-24 10768 1040 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExponentialFloat64Histogram/Attributes/10-24 11190 1056 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExponentialFloat64Histogram/Attributes/10-24 11078 1176 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExponentialFloat64Histogram/Attributes/10-24 10929 1219 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExponentialFloat64Histogram/Attributes/10-24 10454 1066 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExponentialFloat64Histogram/Attributes/10-24 10501 1064 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/DropView/ExponentialFloat64Histogram/Attributes/0-24 5919898 1.879 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/DropView/ExponentialFloat64Histogram/Attributes/0-24 5834685 1.990 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/DropView/ExponentialFloat64Histogram/Attributes/0-24 5782334 2.433 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/DropView/ExponentialFloat64Histogram/Attributes/0-24 5320924 2.404 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/DropView/ExponentialFloat64Histogram/Attributes/0-24 5742800 2.109 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/DropView/ExponentialFloat64Histogram/Attributes/0-24 5885475 2.056 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/DropView/ExponentialFloat64Histogram/Attributes/1-24 4331547 2.758 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/DropView/ExponentialFloat64Histogram/Attributes/1-24 3848244 2.725 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/DropView/ExponentialFloat64Histogram/Attributes/1-24 4542189 2.636 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/DropView/ExponentialFloat64Histogram/Attributes/1-24 4201015 2.641 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/DropView/ExponentialFloat64Histogram/Attributes/1-24 4597094 2.608 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/DropView/ExponentialFloat64Histogram/Attributes/1-24 4869811 2.491 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/DropView/ExponentialFloat64Histogram/Attributes/10-24 4826077 2.329 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/DropView/ExponentialFloat64Histogram/Attributes/10-24 4866612 2.382 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/DropView/ExponentialFloat64Histogram/Attributes/10-24 5149305 2.310 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/DropView/ExponentialFloat64Histogram/Attributes/10-24 5101305 2.384 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/DropView/ExponentialFloat64Histogram/Attributes/10-24 4854940 2.440 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/DropView/ExponentialFloat64Histogram/Attributes/10-24 4874742 2.501 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/AttrFilterView/ExponentialFloat64Histogram/Attributes/0-24 55272 359.0 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/AttrFilterView/ExponentialFloat64Histogram/Attributes/0-24 52195 318.4 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/AttrFilterView/ExponentialFloat64Histogram/Attributes/0-24 52324 330.8 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/AttrFilterView/ExponentialFloat64Histogram/Attributes/0-24 49879 321.4 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/AttrFilterView/ExponentialFloat64Histogram/Attributes/0-24 56212 351.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/AttrFilterView/ExponentialFloat64Histogram/Attributes/0-24 43362 301.4 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/AttrFilterView/ExponentialFloat64Histogram/Attributes/1-24 30296 461.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/AttrFilterView/ExponentialFloat64Histogram/Attributes/1-24 24178 469.0 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/AttrFilterView/ExponentialFloat64Histogram/Attributes/1-24 24901 477.0 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/AttrFilterView/ExponentialFloat64Histogram/Attributes/1-24 21748 477.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/AttrFilterView/ExponentialFloat64Histogram/Attributes/1-24 23972 512.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/AttrFilterView/ExponentialFloat64Histogram/Attributes/1-24 28039 499.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/AttrFilterView/ExponentialFloat64Histogram/Attributes/10-24 7598 1646 ns/op 704 B/op 2 allocs/op BenchmarkSyncMeasure/AttrFilterView/ExponentialFloat64Histogram/Attributes/10-24 7452 1660 ns/op 704 B/op 2 allocs/op BenchmarkSyncMeasure/AttrFilterView/ExponentialFloat64Histogram/Attributes/10-24 7620 1644 ns/op 704 B/op 2 allocs/op BenchmarkSyncMeasure/AttrFilterView/ExponentialFloat64Histogram/Attributes/10-24 6459 1853 ns/op 704 B/op 2 allocs/op BenchmarkSyncMeasure/AttrFilterView/ExponentialFloat64Histogram/Attributes/10-24 7950 1575 ns/op 704 B/op 2 allocs/op BenchmarkSyncMeasure/AttrFilterView/ExponentialFloat64Histogram/Attributes/10-24 8948 1421 ns/op 704 B/op 2 allocs/op ```
2025-09-08 03:19:44 -04:00
}
}()))
expFHist, err := expMeter.Float64Histogram("exponential-float64-histogram")
assert.NoError(b, err)
b.Run("ExponentialFloat64Histogram", benchMeasAttrs(func() measF {
return func(s attribute.Set) func() {
o := []metric.RecordOption{metric.WithAttributeSet(s)}
Add measure benchmarks with exemplars recorded (#7406) Part of https://github.com/open-telemetry/opentelemetry-go/issues/7388 This adds benchmarks for making measurements that also record an exemplar. This will help demonstrate any improvements to locking in the exemplar reservoir. Parallel benchmarks: ``` goos: linux goarch: amd64 pkg: go.opentelemetry.io/otel/sdk/metric cpu: Intel(R) Xeon(R) CPU @ 2.20GHz BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Counter/Attributes/0-24 57819 258.8 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Counter/Attributes/1-24 46058 255.0 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Counter/Attributes/10-24 70351 271.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Counter/Attributes/0-24 67525 220.7 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Counter/Attributes/1-24 67789 248.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Counter/Attributes/10-24 63385 246.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64UpDownCounter/Attributes/0-24 67786 213.8 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64UpDownCounter/Attributes/1-24 73093 226.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64UpDownCounter/Attributes/10-24 55597 230.7 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64UpDownCounter/Attributes/0-24 77805 216.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64UpDownCounter/Attributes/1-24 71512 234.7 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64UpDownCounter/Attributes/10-24 60094 258.8 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Histogram/Attributes/0-24 66192 266.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Histogram/Attributes/1-24 50511 242.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Histogram/Attributes/10-24 42548 295.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Histogram/Attributes/0-24 48874 229.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Histogram/Attributes/1-24 50904 271.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Histogram/Attributes/10-24 59074 253.8 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialInt64Histogram/Attributes/0-24 55216 292.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialInt64Histogram/Attributes/1-24 53492 375.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialInt64Histogram/Attributes/10-24 40346 273.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialFloat64Histogram/Attributes/0-24 51520 310.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialFloat64Histogram/Attributes/1-24 43227 303.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialFloat64Histogram/Attributes/10-24 44754 295.4 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Counter/Attributes/0-24 44091 294.7 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Counter/Attributes/1-24 43164 300.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Counter/Attributes/10-24 46014 269.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Counter/Attributes/0-24 38978 281.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Counter/Attributes/1-24 41292 316.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Counter/Attributes/10-24 38986 303.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64UpDownCounter/Attributes/0-24 33555 299.0 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64UpDownCounter/Attributes/1-24 44396 322.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64UpDownCounter/Attributes/10-24 38211 273.0 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64UpDownCounter/Attributes/0-24 45652 296.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64UpDownCounter/Attributes/1-24 38984 270.8 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64UpDownCounter/Attributes/10-24 36280 313.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Histogram/Attributes/0-24 34377 437.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Histogram/Attributes/1-24 34992 344.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Histogram/Attributes/10-24 33795 384.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Histogram/Attributes/0-24 38080 353.7 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Histogram/Attributes/1-24 36568 315.4 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Histogram/Attributes/10-24 32418 309.7 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialInt64Histogram/Attributes/0-24 33217 320.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialInt64Histogram/Attributes/1-24 27937 407.7 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialInt64Histogram/Attributes/10-24 30818 350.0 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialFloat64Histogram/Attributes/0-24 36286 346.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialFloat64Histogram/Attributes/1-24 35863 342.4 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialFloat64Histogram/Attributes/10-24 32378 327.8 ns/op 0 B/op 0 allocs/op ``` Single-threaded benchmarks: ``` goos: linux goarch: amd64 pkg: go.opentelemetry.io/otel/sdk/metric cpu: Intel(R) Xeon(R) CPU @ 2.20GHz BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Counter/Attributes/0 115218 109.8 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Counter/Attributes/1 106142 112.0 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Counter/Attributes/10 101562 115.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Counter/Attributes/0 93019 112.1 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Counter/Attributes/1 107089 117.4 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Counter/Attributes/10 106411 117.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64UpDownCounter/Attributes/0 110683 113.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64UpDownCounter/Attributes/1 84825 122.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64UpDownCounter/Attributes/10 98952 113.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64UpDownCounter/Attributes/0 115419 105.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64UpDownCounter/Attributes/1 97251 114.7 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64UpDownCounter/Attributes/10 106036 111.8 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Histogram/Attributes/0 130296 92.98 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Histogram/Attributes/1 120679 100.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Histogram/Attributes/10 116985 102.1 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Histogram/Attributes/0 125479 96.42 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Histogram/Attributes/1 115527 103.7 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Histogram/Attributes/10 89858 117.8 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialInt64Histogram/Attributes/0 76768 152.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialInt64Histogram/Attributes/1 72832 161.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialInt64Histogram/Attributes/10 73298 160.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialFloat64Histogram/Attributes/0 81826 154.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialFloat64Histogram/Attributes/1 73779 158.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialFloat64Histogram/Attributes/10 75606 161.4 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Counter/Attributes/0 61503 188.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Counter/Attributes/1 63260 185.4 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Counter/Attributes/10 62704 189.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Counter/Attributes/0 63615 180.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Counter/Attributes/1 62072 190.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Counter/Attributes/10 61260 192.1 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64UpDownCounter/Attributes/0 61561 182.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64UpDownCounter/Attributes/1 60334 192.7 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64UpDownCounter/Attributes/10 64114 192.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64UpDownCounter/Attributes/0 63980 181.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64UpDownCounter/Attributes/1 61138 189.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64UpDownCounter/Attributes/10 62150 196.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Histogram/Attributes/0 51895 237.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Histogram/Attributes/1 52554 230.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Histogram/Attributes/10 53581 228.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Histogram/Attributes/0 55407 221.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Histogram/Attributes/1 50701 226.0 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Histogram/Attributes/10 50460 231.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialInt64Histogram/Attributes/0 53390 221.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialInt64Histogram/Attributes/1 51373 229.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialInt64Histogram/Attributes/10 51154 228.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialFloat64Histogram/Attributes/0 52167 230.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialFloat64Histogram/Attributes/1 48598 247.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialFloat64Histogram/Attributes/10 51086 230.8 ns/op 0 B/op 0 allocs/op ```
2025-09-25 09:55:45 -04:00
return func() { expFHist.Record(ctx, 1, o...) }
Add benchmark for exponential histogram measurements (#7305) This is helpful for my work optimizing locking in https://github.com/open-telemetry/opentelemetry-go/pull/7189 ``` goos: linux goarch: amd64 pkg: go.opentelemetry.io/otel/sdk/metric cpu: Intel(R) Xeon(R) CPU @ 2.20GHz BenchmarkSyncMeasure/NoView/ExponentialFloat64Histogram/Attributes/0-24 43419 306.0 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExponentialFloat64Histogram/Attributes/0-24 40675 316.1 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExponentialFloat64Histogram/Attributes/0-24 53746 305.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExponentialFloat64Histogram/Attributes/0-24 38224 296.1 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExponentialFloat64Histogram/Attributes/0-24 53796 330.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExponentialFloat64Histogram/Attributes/0-24 47823 316.4 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExponentialFloat64Histogram/Attributes/1-24 32172 373.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExponentialFloat64Histogram/Attributes/1-24 33084 379.0 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExponentialFloat64Histogram/Attributes/1-24 29956 360.4 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExponentialFloat64Histogram/Attributes/1-24 33921 370.1 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExponentialFloat64Histogram/Attributes/1-24 34449 387.7 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExponentialFloat64Histogram/Attributes/1-24 29156 393.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExponentialFloat64Histogram/Attributes/10-24 10768 1040 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExponentialFloat64Histogram/Attributes/10-24 11190 1056 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExponentialFloat64Histogram/Attributes/10-24 11078 1176 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExponentialFloat64Histogram/Attributes/10-24 10929 1219 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExponentialFloat64Histogram/Attributes/10-24 10454 1066 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExponentialFloat64Histogram/Attributes/10-24 10501 1064 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/DropView/ExponentialFloat64Histogram/Attributes/0-24 5919898 1.879 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/DropView/ExponentialFloat64Histogram/Attributes/0-24 5834685 1.990 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/DropView/ExponentialFloat64Histogram/Attributes/0-24 5782334 2.433 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/DropView/ExponentialFloat64Histogram/Attributes/0-24 5320924 2.404 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/DropView/ExponentialFloat64Histogram/Attributes/0-24 5742800 2.109 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/DropView/ExponentialFloat64Histogram/Attributes/0-24 5885475 2.056 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/DropView/ExponentialFloat64Histogram/Attributes/1-24 4331547 2.758 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/DropView/ExponentialFloat64Histogram/Attributes/1-24 3848244 2.725 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/DropView/ExponentialFloat64Histogram/Attributes/1-24 4542189 2.636 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/DropView/ExponentialFloat64Histogram/Attributes/1-24 4201015 2.641 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/DropView/ExponentialFloat64Histogram/Attributes/1-24 4597094 2.608 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/DropView/ExponentialFloat64Histogram/Attributes/1-24 4869811 2.491 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/DropView/ExponentialFloat64Histogram/Attributes/10-24 4826077 2.329 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/DropView/ExponentialFloat64Histogram/Attributes/10-24 4866612 2.382 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/DropView/ExponentialFloat64Histogram/Attributes/10-24 5149305 2.310 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/DropView/ExponentialFloat64Histogram/Attributes/10-24 5101305 2.384 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/DropView/ExponentialFloat64Histogram/Attributes/10-24 4854940 2.440 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/DropView/ExponentialFloat64Histogram/Attributes/10-24 4874742 2.501 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/AttrFilterView/ExponentialFloat64Histogram/Attributes/0-24 55272 359.0 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/AttrFilterView/ExponentialFloat64Histogram/Attributes/0-24 52195 318.4 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/AttrFilterView/ExponentialFloat64Histogram/Attributes/0-24 52324 330.8 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/AttrFilterView/ExponentialFloat64Histogram/Attributes/0-24 49879 321.4 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/AttrFilterView/ExponentialFloat64Histogram/Attributes/0-24 56212 351.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/AttrFilterView/ExponentialFloat64Histogram/Attributes/0-24 43362 301.4 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/AttrFilterView/ExponentialFloat64Histogram/Attributes/1-24 30296 461.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/AttrFilterView/ExponentialFloat64Histogram/Attributes/1-24 24178 469.0 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/AttrFilterView/ExponentialFloat64Histogram/Attributes/1-24 24901 477.0 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/AttrFilterView/ExponentialFloat64Histogram/Attributes/1-24 21748 477.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/AttrFilterView/ExponentialFloat64Histogram/Attributes/1-24 23972 512.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/AttrFilterView/ExponentialFloat64Histogram/Attributes/1-24 28039 499.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/AttrFilterView/ExponentialFloat64Histogram/Attributes/10-24 7598 1646 ns/op 704 B/op 2 allocs/op BenchmarkSyncMeasure/AttrFilterView/ExponentialFloat64Histogram/Attributes/10-24 7452 1660 ns/op 704 B/op 2 allocs/op BenchmarkSyncMeasure/AttrFilterView/ExponentialFloat64Histogram/Attributes/10-24 7620 1644 ns/op 704 B/op 2 allocs/op BenchmarkSyncMeasure/AttrFilterView/ExponentialFloat64Histogram/Attributes/10-24 6459 1853 ns/op 704 B/op 2 allocs/op BenchmarkSyncMeasure/AttrFilterView/ExponentialFloat64Histogram/Attributes/10-24 7950 1575 ns/op 704 B/op 2 allocs/op BenchmarkSyncMeasure/AttrFilterView/ExponentialFloat64Histogram/Attributes/10-24 8948 1421 ns/op 704 B/op 2 allocs/op ```
2025-09-08 03:19:44 -04:00
}
}()))
}
}
type measF func(s attribute.Set) func()
func benchMeasAttrs(meas measF) func(*testing.B) {
return func(b *testing.B) {
b.Run("Attributes/0", func(b *testing.B) {
f := meas(*attribute.EmptySet())
Testing: Run sync measure benchmarks in parallel (#7113) I am looking into https://promlabs.com/blog/2025/07/17/why-i-recommend-native-prometheus-instrumentation-over-opentelemetry/#comparing-counter-increment-performance, which seems to suggest the OTel metrics SDK performs poorly when a counter is incremented concurrently. It is potentially a bit of an artificial benchmark, but does suggest there is some contention beyond just the fact that they are incrementing an atomic integer... Original benchmarks from the blog post: https://github.com/promlabs/prometheus-otel-benchmarks/blob/main/otel_test.go ``` $ go test -run=xxxxxMatchNothingxxxxx -cpu=24 -test.benchtime=1s -bench=BenchmarkSyncMeasure/NoView/ goos: linux goarch: amd64 pkg: go.opentelemetry.io/otel/sdk/metric cpu: Intel(R) Xeon(R) CPU @ 2.20GHz BenchmarkSyncMeasure/NoView/Int64Counter/Attributes/0-24 3946789 313.2 ns/op BenchmarkSyncMeasure/NoView/Int64Counter/Attributes/1-24 3420992 374.4 ns/op BenchmarkSyncMeasure/NoView/Int64Counter/Attributes/10-24 574608 1745 ns/op BenchmarkSyncMeasure/NoView/Float64Counter/Attributes/0-24 3996166 281.1 ns/op BenchmarkSyncMeasure/NoView/Float64Counter/Attributes/1-24 3091573 367.1 ns/op BenchmarkSyncMeasure/NoView/Float64Counter/Attributes/10-24 705693 1660 ns/op BenchmarkSyncMeasure/NoView/Int64UpDownCounter/Attributes/0-24 4098727 296.4 ns/op BenchmarkSyncMeasure/NoView/Int64UpDownCounter/Attributes/1-24 3029276 355.4 ns/op BenchmarkSyncMeasure/NoView/Int64UpDownCounter/Attributes/10-24 605174 1803 ns/op BenchmarkSyncMeasure/NoView/Float64UpDownCounter/Attributes/0-24 4057765 298.6 ns/op BenchmarkSyncMeasure/NoView/Float64UpDownCounter/Attributes/1-24 3384812 366.9 ns/op BenchmarkSyncMeasure/NoView/Float64UpDownCounter/Attributes/10-24 714900 1742 ns/op BenchmarkSyncMeasure/NoView/Int64Histogram/Attributes/0-24 3274644 364.3 ns/op BenchmarkSyncMeasure/NoView/Int64Histogram/Attributes/1-24 3780115 316.1 ns/op BenchmarkSyncMeasure/NoView/Int64Histogram/Attributes/10-24 1294364 993.5 ns/op BenchmarkSyncMeasure/NoView/Float64Histogram/Attributes/0-24 3543817 343.2 ns/op BenchmarkSyncMeasure/NoView/Float64Histogram/Attributes/1-24 3523102 335.8 ns/op BenchmarkSyncMeasure/NoView/Float64Histogram/Attributes/10-24 1329352 956.3 ns/op PASS ok go.opentelemetry.io/otel/sdk/metric 27.504s ``` ``` $ go test -run=xxxxxMatchNothingxxxxx -cpu=1 -test.benchtime=1s -bench=BenchmarkSyncMeasure/NoView/ goos: linux goarch: amd64 pkg: go.opentelemetry.io/otel/sdk/metric cpu: Intel(R) Xeon(R) CPU @ 2.20GHz BenchmarkSyncMeasure/NoView/Int64Counter/Attributes/0 9905773 121.3 ns/op BenchmarkSyncMeasure/NoView/Int64Counter/Attributes/1 4079145 296.5 ns/op BenchmarkSyncMeasure/NoView/Int64Counter/Attributes/10 781627 1531 ns/op BenchmarkSyncMeasure/NoView/Float64Counter/Attributes/0 10017988 120.2 ns/op BenchmarkSyncMeasure/NoView/Float64Counter/Attributes/1 4055418 296.4 ns/op BenchmarkSyncMeasure/NoView/Float64Counter/Attributes/10 761139 1540 ns/op BenchmarkSyncMeasure/NoView/Int64UpDownCounter/Attributes/0 10017126 121.1 ns/op BenchmarkSyncMeasure/NoView/Int64UpDownCounter/Attributes/1 4037232 295.3 ns/op BenchmarkSyncMeasure/NoView/Int64UpDownCounter/Attributes/10 757010 1539 ns/op BenchmarkSyncMeasure/NoView/Float64UpDownCounter/Attributes/0 10122925 119.0 ns/op BenchmarkSyncMeasure/NoView/Float64UpDownCounter/Attributes/1 4070942 293.8 ns/op BenchmarkSyncMeasure/NoView/Float64UpDownCounter/Attributes/10 788176 1542 ns/op BenchmarkSyncMeasure/NoView/Int64Histogram/Attributes/0 10794142 110.8 ns/op BenchmarkSyncMeasure/NoView/Int64Histogram/Attributes/1 5929494 201.0 ns/op BenchmarkSyncMeasure/NoView/Int64Histogram/Attributes/10 1449292 825.4 ns/op BenchmarkSyncMeasure/NoView/Float64Histogram/Attributes/0 10875385 110.1 ns/op BenchmarkSyncMeasure/NoView/Float64Histogram/Attributes/1 5903116 202.4 ns/op BenchmarkSyncMeasure/NoView/Float64Histogram/Attributes/10 1459578 827.4 ns/op PASS ok go.opentelemetry.io/otel/sdk/metric 25.688s ``` Results are significantly worse (almost > 2x in some cases) with parallelism, but don't initially seem as bad as the blog post suggests. I only have 24 cores, so I can't test higher numbers. Do we want to have parallel benchmarks in addition to our current non-parallel ones?
2025-08-06 08:50:18 -04:00
b.RunParallel(func(pb *testing.PB) {
for pb.Next() {
f()
}
})
})
b.Run("Attributes/1", func(b *testing.B) {
f := meas(attribute.NewSet(attribute.Bool("K", true)))
Testing: Run sync measure benchmarks in parallel (#7113) I am looking into https://promlabs.com/blog/2025/07/17/why-i-recommend-native-prometheus-instrumentation-over-opentelemetry/#comparing-counter-increment-performance, which seems to suggest the OTel metrics SDK performs poorly when a counter is incremented concurrently. It is potentially a bit of an artificial benchmark, but does suggest there is some contention beyond just the fact that they are incrementing an atomic integer... Original benchmarks from the blog post: https://github.com/promlabs/prometheus-otel-benchmarks/blob/main/otel_test.go ``` $ go test -run=xxxxxMatchNothingxxxxx -cpu=24 -test.benchtime=1s -bench=BenchmarkSyncMeasure/NoView/ goos: linux goarch: amd64 pkg: go.opentelemetry.io/otel/sdk/metric cpu: Intel(R) Xeon(R) CPU @ 2.20GHz BenchmarkSyncMeasure/NoView/Int64Counter/Attributes/0-24 3946789 313.2 ns/op BenchmarkSyncMeasure/NoView/Int64Counter/Attributes/1-24 3420992 374.4 ns/op BenchmarkSyncMeasure/NoView/Int64Counter/Attributes/10-24 574608 1745 ns/op BenchmarkSyncMeasure/NoView/Float64Counter/Attributes/0-24 3996166 281.1 ns/op BenchmarkSyncMeasure/NoView/Float64Counter/Attributes/1-24 3091573 367.1 ns/op BenchmarkSyncMeasure/NoView/Float64Counter/Attributes/10-24 705693 1660 ns/op BenchmarkSyncMeasure/NoView/Int64UpDownCounter/Attributes/0-24 4098727 296.4 ns/op BenchmarkSyncMeasure/NoView/Int64UpDownCounter/Attributes/1-24 3029276 355.4 ns/op BenchmarkSyncMeasure/NoView/Int64UpDownCounter/Attributes/10-24 605174 1803 ns/op BenchmarkSyncMeasure/NoView/Float64UpDownCounter/Attributes/0-24 4057765 298.6 ns/op BenchmarkSyncMeasure/NoView/Float64UpDownCounter/Attributes/1-24 3384812 366.9 ns/op BenchmarkSyncMeasure/NoView/Float64UpDownCounter/Attributes/10-24 714900 1742 ns/op BenchmarkSyncMeasure/NoView/Int64Histogram/Attributes/0-24 3274644 364.3 ns/op BenchmarkSyncMeasure/NoView/Int64Histogram/Attributes/1-24 3780115 316.1 ns/op BenchmarkSyncMeasure/NoView/Int64Histogram/Attributes/10-24 1294364 993.5 ns/op BenchmarkSyncMeasure/NoView/Float64Histogram/Attributes/0-24 3543817 343.2 ns/op BenchmarkSyncMeasure/NoView/Float64Histogram/Attributes/1-24 3523102 335.8 ns/op BenchmarkSyncMeasure/NoView/Float64Histogram/Attributes/10-24 1329352 956.3 ns/op PASS ok go.opentelemetry.io/otel/sdk/metric 27.504s ``` ``` $ go test -run=xxxxxMatchNothingxxxxx -cpu=1 -test.benchtime=1s -bench=BenchmarkSyncMeasure/NoView/ goos: linux goarch: amd64 pkg: go.opentelemetry.io/otel/sdk/metric cpu: Intel(R) Xeon(R) CPU @ 2.20GHz BenchmarkSyncMeasure/NoView/Int64Counter/Attributes/0 9905773 121.3 ns/op BenchmarkSyncMeasure/NoView/Int64Counter/Attributes/1 4079145 296.5 ns/op BenchmarkSyncMeasure/NoView/Int64Counter/Attributes/10 781627 1531 ns/op BenchmarkSyncMeasure/NoView/Float64Counter/Attributes/0 10017988 120.2 ns/op BenchmarkSyncMeasure/NoView/Float64Counter/Attributes/1 4055418 296.4 ns/op BenchmarkSyncMeasure/NoView/Float64Counter/Attributes/10 761139 1540 ns/op BenchmarkSyncMeasure/NoView/Int64UpDownCounter/Attributes/0 10017126 121.1 ns/op BenchmarkSyncMeasure/NoView/Int64UpDownCounter/Attributes/1 4037232 295.3 ns/op BenchmarkSyncMeasure/NoView/Int64UpDownCounter/Attributes/10 757010 1539 ns/op BenchmarkSyncMeasure/NoView/Float64UpDownCounter/Attributes/0 10122925 119.0 ns/op BenchmarkSyncMeasure/NoView/Float64UpDownCounter/Attributes/1 4070942 293.8 ns/op BenchmarkSyncMeasure/NoView/Float64UpDownCounter/Attributes/10 788176 1542 ns/op BenchmarkSyncMeasure/NoView/Int64Histogram/Attributes/0 10794142 110.8 ns/op BenchmarkSyncMeasure/NoView/Int64Histogram/Attributes/1 5929494 201.0 ns/op BenchmarkSyncMeasure/NoView/Int64Histogram/Attributes/10 1449292 825.4 ns/op BenchmarkSyncMeasure/NoView/Float64Histogram/Attributes/0 10875385 110.1 ns/op BenchmarkSyncMeasure/NoView/Float64Histogram/Attributes/1 5903116 202.4 ns/op BenchmarkSyncMeasure/NoView/Float64Histogram/Attributes/10 1459578 827.4 ns/op PASS ok go.opentelemetry.io/otel/sdk/metric 25.688s ``` Results are significantly worse (almost > 2x in some cases) with parallelism, but don't initially seem as bad as the blog post suggests. I only have 24 cores, so I can't test higher numbers. Do we want to have parallel benchmarks in addition to our current non-parallel ones?
2025-08-06 08:50:18 -04:00
b.RunParallel(func(pb *testing.PB) {
for pb.Next() {
f()
}
})
})
b.Run("Attributes/10", func(b *testing.B) {
n := 10
attrs := make([]attribute.KeyValue, 0)
attrs = append(attrs, attribute.Bool("K", true))
for i := 2; i < n; i++ {
attrs = append(attrs, attribute.Int(strconv.Itoa(i), i))
}
f := meas(attribute.NewSet(attrs...))
Testing: Run sync measure benchmarks in parallel (#7113) I am looking into https://promlabs.com/blog/2025/07/17/why-i-recommend-native-prometheus-instrumentation-over-opentelemetry/#comparing-counter-increment-performance, which seems to suggest the OTel metrics SDK performs poorly when a counter is incremented concurrently. It is potentially a bit of an artificial benchmark, but does suggest there is some contention beyond just the fact that they are incrementing an atomic integer... Original benchmarks from the blog post: https://github.com/promlabs/prometheus-otel-benchmarks/blob/main/otel_test.go ``` $ go test -run=xxxxxMatchNothingxxxxx -cpu=24 -test.benchtime=1s -bench=BenchmarkSyncMeasure/NoView/ goos: linux goarch: amd64 pkg: go.opentelemetry.io/otel/sdk/metric cpu: Intel(R) Xeon(R) CPU @ 2.20GHz BenchmarkSyncMeasure/NoView/Int64Counter/Attributes/0-24 3946789 313.2 ns/op BenchmarkSyncMeasure/NoView/Int64Counter/Attributes/1-24 3420992 374.4 ns/op BenchmarkSyncMeasure/NoView/Int64Counter/Attributes/10-24 574608 1745 ns/op BenchmarkSyncMeasure/NoView/Float64Counter/Attributes/0-24 3996166 281.1 ns/op BenchmarkSyncMeasure/NoView/Float64Counter/Attributes/1-24 3091573 367.1 ns/op BenchmarkSyncMeasure/NoView/Float64Counter/Attributes/10-24 705693 1660 ns/op BenchmarkSyncMeasure/NoView/Int64UpDownCounter/Attributes/0-24 4098727 296.4 ns/op BenchmarkSyncMeasure/NoView/Int64UpDownCounter/Attributes/1-24 3029276 355.4 ns/op BenchmarkSyncMeasure/NoView/Int64UpDownCounter/Attributes/10-24 605174 1803 ns/op BenchmarkSyncMeasure/NoView/Float64UpDownCounter/Attributes/0-24 4057765 298.6 ns/op BenchmarkSyncMeasure/NoView/Float64UpDownCounter/Attributes/1-24 3384812 366.9 ns/op BenchmarkSyncMeasure/NoView/Float64UpDownCounter/Attributes/10-24 714900 1742 ns/op BenchmarkSyncMeasure/NoView/Int64Histogram/Attributes/0-24 3274644 364.3 ns/op BenchmarkSyncMeasure/NoView/Int64Histogram/Attributes/1-24 3780115 316.1 ns/op BenchmarkSyncMeasure/NoView/Int64Histogram/Attributes/10-24 1294364 993.5 ns/op BenchmarkSyncMeasure/NoView/Float64Histogram/Attributes/0-24 3543817 343.2 ns/op BenchmarkSyncMeasure/NoView/Float64Histogram/Attributes/1-24 3523102 335.8 ns/op BenchmarkSyncMeasure/NoView/Float64Histogram/Attributes/10-24 1329352 956.3 ns/op PASS ok go.opentelemetry.io/otel/sdk/metric 27.504s ``` ``` $ go test -run=xxxxxMatchNothingxxxxx -cpu=1 -test.benchtime=1s -bench=BenchmarkSyncMeasure/NoView/ goos: linux goarch: amd64 pkg: go.opentelemetry.io/otel/sdk/metric cpu: Intel(R) Xeon(R) CPU @ 2.20GHz BenchmarkSyncMeasure/NoView/Int64Counter/Attributes/0 9905773 121.3 ns/op BenchmarkSyncMeasure/NoView/Int64Counter/Attributes/1 4079145 296.5 ns/op BenchmarkSyncMeasure/NoView/Int64Counter/Attributes/10 781627 1531 ns/op BenchmarkSyncMeasure/NoView/Float64Counter/Attributes/0 10017988 120.2 ns/op BenchmarkSyncMeasure/NoView/Float64Counter/Attributes/1 4055418 296.4 ns/op BenchmarkSyncMeasure/NoView/Float64Counter/Attributes/10 761139 1540 ns/op BenchmarkSyncMeasure/NoView/Int64UpDownCounter/Attributes/0 10017126 121.1 ns/op BenchmarkSyncMeasure/NoView/Int64UpDownCounter/Attributes/1 4037232 295.3 ns/op BenchmarkSyncMeasure/NoView/Int64UpDownCounter/Attributes/10 757010 1539 ns/op BenchmarkSyncMeasure/NoView/Float64UpDownCounter/Attributes/0 10122925 119.0 ns/op BenchmarkSyncMeasure/NoView/Float64UpDownCounter/Attributes/1 4070942 293.8 ns/op BenchmarkSyncMeasure/NoView/Float64UpDownCounter/Attributes/10 788176 1542 ns/op BenchmarkSyncMeasure/NoView/Int64Histogram/Attributes/0 10794142 110.8 ns/op BenchmarkSyncMeasure/NoView/Int64Histogram/Attributes/1 5929494 201.0 ns/op BenchmarkSyncMeasure/NoView/Int64Histogram/Attributes/10 1449292 825.4 ns/op BenchmarkSyncMeasure/NoView/Float64Histogram/Attributes/0 10875385 110.1 ns/op BenchmarkSyncMeasure/NoView/Float64Histogram/Attributes/1 5903116 202.4 ns/op BenchmarkSyncMeasure/NoView/Float64Histogram/Attributes/10 1459578 827.4 ns/op PASS ok go.opentelemetry.io/otel/sdk/metric 25.688s ``` Results are significantly worse (almost > 2x in some cases) with parallelism, but don't initially seem as bad as the blog post suggests. I only have 24 cores, so I can't test higher numbers. Do we want to have parallel benchmarks in addition to our current non-parallel ones?
2025-08-06 08:50:18 -04:00
b.RunParallel(func(pb *testing.PB) {
for pb.Next() {
f()
}
})
})
}
}
func BenchmarkCollect(b *testing.B) {
for _, bc := range viewBenchmarks {
b.Run(bc.Name, benchCollectViews(bc.Views...))
}
}
func benchCollectViews(views ...View) func(*testing.B) {
setup := func(name string) (metric.Meter, Reader) {
r := NewManualReader()
mp := NewMeterProvider(WithReader(r), WithView(views...))
return mp.Meter(name), r
}
return func(b *testing.B) {
b.Run("Int64Counter/1", benchCollectAttrs(func(s attribute.Set) Reader {
m, r := setup("benchCollectViews/Int64Counter")
i, err := m.Int64Counter("int64-counter")
assert.NoError(b, err)
i.Add(b.Context(), 1, metric.WithAttributeSet(s))
return r
}))
b.Run("Int64Counter/10", benchCollectAttrs(func(s attribute.Set) Reader {
m, r := setup("benchCollectViews/Int64Counter")
i, err := m.Int64Counter("int64-counter")
assert.NoError(b, err)
for range 10 {
i.Add(b.Context(), 1, metric.WithAttributeSet(s))
}
return r
}))
b.Run("Float64Counter/1", benchCollectAttrs(func(s attribute.Set) Reader {
m, r := setup("benchCollectViews/Float64Counter")
i, err := m.Float64Counter("float64-counter")
assert.NoError(b, err)
i.Add(b.Context(), 1, metric.WithAttributeSet(s))
return r
}))
b.Run("Float64Counter/10", benchCollectAttrs(func(s attribute.Set) Reader {
m, r := setup("benchCollectViews/Float64Counter")
i, err := m.Float64Counter("float64-counter")
assert.NoError(b, err)
for range 10 {
i.Add(b.Context(), 1, metric.WithAttributeSet(s))
}
return r
}))
b.Run("Int64UpDownCounter/1", benchCollectAttrs(func(s attribute.Set) Reader {
m, r := setup("benchCollectViews/Int64UpDownCounter")
i, err := m.Int64UpDownCounter("int64-up-down-counter")
assert.NoError(b, err)
i.Add(b.Context(), 1, metric.WithAttributeSet(s))
return r
}))
b.Run("Int64UpDownCounter/10", benchCollectAttrs(func(s attribute.Set) Reader {
m, r := setup("benchCollectViews/Int64UpDownCounter")
i, err := m.Int64UpDownCounter("int64-up-down-counter")
assert.NoError(b, err)
for range 10 {
i.Add(b.Context(), 1, metric.WithAttributeSet(s))
}
return r
}))
b.Run("Float64UpDownCounter/1", benchCollectAttrs(func(s attribute.Set) Reader {
m, r := setup("benchCollectViews/Float64UpDownCounter")
i, err := m.Float64UpDownCounter("float64-up-down-counter")
assert.NoError(b, err)
i.Add(b.Context(), 1, metric.WithAttributeSet(s))
return r
}))
b.Run("Float64UpDownCounter/10", benchCollectAttrs(func(s attribute.Set) Reader {
m, r := setup("benchCollectViews/Float64UpDownCounter")
i, err := m.Float64UpDownCounter("float64-up-down-counter")
assert.NoError(b, err)
for range 10 {
i.Add(b.Context(), 1, metric.WithAttributeSet(s))
}
return r
}))
b.Run("Int64Histogram/1", benchCollectAttrs(func(s attribute.Set) Reader {
m, r := setup("benchCollectViews/Int64Histogram")
i, err := m.Int64Histogram("int64-histogram")
assert.NoError(b, err)
i.Record(b.Context(), 1, metric.WithAttributeSet(s))
return r
}))
b.Run("Int64Histogram/10", benchCollectAttrs(func(s attribute.Set) Reader {
m, r := setup("benchCollectViews/Int64Histogram")
i, err := m.Int64Histogram("int64-histogram")
assert.NoError(b, err)
for range 10 {
i.Record(b.Context(), 1, metric.WithAttributeSet(s))
}
return r
}))
b.Run("Float64Histogram/1", benchCollectAttrs(func(s attribute.Set) Reader {
m, r := setup("benchCollectViews/Float64Histogram")
i, err := m.Float64Histogram("float64-histogram")
assert.NoError(b, err)
i.Record(b.Context(), 1, metric.WithAttributeSet(s))
return r
}))
b.Run("Float64Histogram/10", benchCollectAttrs(func(s attribute.Set) Reader {
m, r := setup("benchCollectViews/Float64Histogram")
i, err := m.Float64Histogram("float64-histogram")
assert.NoError(b, err)
for range 10 {
i.Record(b.Context(), 1, metric.WithAttributeSet(s))
}
return r
}))
b.Run("Int64ObservableCounter", benchCollectAttrs(func(s attribute.Set) Reader {
m, r := setup("benchCollectViews/Int64ObservableCounter")
_, err := m.Int64ObservableCounter(
"int64-observable-counter",
metric.WithInt64Callback(int64Cback(s)),
)
assert.NoError(b, err)
return r
}))
b.Run("Float64ObservableCounter", benchCollectAttrs(func(s attribute.Set) Reader {
m, r := setup("benchCollectViews/Float64ObservableCounter")
_, err := m.Float64ObservableCounter(
"float64-observable-counter",
metric.WithFloat64Callback(float64Cback(s)),
)
assert.NoError(b, err)
return r
}))
b.Run("Int64ObservableUpDownCounter", benchCollectAttrs(func(s attribute.Set) Reader {
m, r := setup("benchCollectViews/Int64ObservableUpDownCounter")
_, err := m.Int64ObservableUpDownCounter(
"int64-observable-up-down-counter",
metric.WithInt64Callback(int64Cback(s)),
)
assert.NoError(b, err)
return r
}))
b.Run("Float64ObservableUpDownCounter", benchCollectAttrs(func(s attribute.Set) Reader {
m, r := setup("benchCollectViews/Float64ObservableUpDownCounter")
_, err := m.Float64ObservableUpDownCounter(
"float64-observable-up-down-counter",
metric.WithFloat64Callback(float64Cback(s)),
)
assert.NoError(b, err)
return r
}))
b.Run("Int64ObservableGauge", benchCollectAttrs(func(s attribute.Set) Reader {
m, r := setup("benchCollectViews/Int64ObservableGauge")
_, err := m.Int64ObservableGauge(
"int64-observable-gauge",
metric.WithInt64Callback(int64Cback(s)),
)
assert.NoError(b, err)
return r
}))
b.Run("Float64ObservableGauge", benchCollectAttrs(func(s attribute.Set) Reader {
m, r := setup("benchCollectViews/Float64ObservableGauge")
_, err := m.Float64ObservableGauge(
"float64-observable-gauge",
metric.WithFloat64Callback(float64Cback(s)),
)
assert.NoError(b, err)
return r
}))
}
}
func int64Cback(s attribute.Set) metric.Int64Callback {
opt := []metric.ObserveOption{metric.WithAttributeSet(s)}
return func(_ context.Context, o metric.Int64Observer) error {
o.Observe(1, opt...)
return nil
}
}
func float64Cback(s attribute.Set) metric.Float64Callback {
opt := []metric.ObserveOption{metric.WithAttributeSet(s)}
return func(_ context.Context, o metric.Float64Observer) error {
o.Observe(1, opt...)
return nil
}
}
func benchCollectAttrs(setup func(attribute.Set) Reader) func(*testing.B) {
out := new(metricdata.ResourceMetrics)
run := func(reader Reader) func(b *testing.B) {
return func(b *testing.B) {
b.ReportAllocs()
for n := 0; n < b.N; n++ {
_ = reader.Collect(b.Context(), out)
}
}
}
return func(b *testing.B) {
b.Run("Attributes/0", run(setup(*attribute.EmptySet())))
attrs := []attribute.KeyValue{attribute.Bool("K", true)}
b.Run("Attributes/1", run(setup(attribute.NewSet(attrs...))))
for i := 2; i < 10; i++ {
attrs = append(attrs, attribute.Int(strconv.Itoa(i), i))
}
b.Run("Attributes/10", run(setup(attribute.NewSet(attrs...))))
}
}
func BenchmarkExemplars(b *testing.B) {
Add measure benchmarks with exemplars recorded (#7406) Part of https://github.com/open-telemetry/opentelemetry-go/issues/7388 This adds benchmarks for making measurements that also record an exemplar. This will help demonstrate any improvements to locking in the exemplar reservoir. Parallel benchmarks: ``` goos: linux goarch: amd64 pkg: go.opentelemetry.io/otel/sdk/metric cpu: Intel(R) Xeon(R) CPU @ 2.20GHz BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Counter/Attributes/0-24 57819 258.8 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Counter/Attributes/1-24 46058 255.0 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Counter/Attributes/10-24 70351 271.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Counter/Attributes/0-24 67525 220.7 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Counter/Attributes/1-24 67789 248.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Counter/Attributes/10-24 63385 246.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64UpDownCounter/Attributes/0-24 67786 213.8 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64UpDownCounter/Attributes/1-24 73093 226.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64UpDownCounter/Attributes/10-24 55597 230.7 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64UpDownCounter/Attributes/0-24 77805 216.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64UpDownCounter/Attributes/1-24 71512 234.7 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64UpDownCounter/Attributes/10-24 60094 258.8 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Histogram/Attributes/0-24 66192 266.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Histogram/Attributes/1-24 50511 242.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Histogram/Attributes/10-24 42548 295.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Histogram/Attributes/0-24 48874 229.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Histogram/Attributes/1-24 50904 271.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Histogram/Attributes/10-24 59074 253.8 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialInt64Histogram/Attributes/0-24 55216 292.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialInt64Histogram/Attributes/1-24 53492 375.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialInt64Histogram/Attributes/10-24 40346 273.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialFloat64Histogram/Attributes/0-24 51520 310.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialFloat64Histogram/Attributes/1-24 43227 303.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialFloat64Histogram/Attributes/10-24 44754 295.4 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Counter/Attributes/0-24 44091 294.7 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Counter/Attributes/1-24 43164 300.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Counter/Attributes/10-24 46014 269.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Counter/Attributes/0-24 38978 281.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Counter/Attributes/1-24 41292 316.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Counter/Attributes/10-24 38986 303.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64UpDownCounter/Attributes/0-24 33555 299.0 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64UpDownCounter/Attributes/1-24 44396 322.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64UpDownCounter/Attributes/10-24 38211 273.0 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64UpDownCounter/Attributes/0-24 45652 296.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64UpDownCounter/Attributes/1-24 38984 270.8 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64UpDownCounter/Attributes/10-24 36280 313.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Histogram/Attributes/0-24 34377 437.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Histogram/Attributes/1-24 34992 344.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Histogram/Attributes/10-24 33795 384.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Histogram/Attributes/0-24 38080 353.7 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Histogram/Attributes/1-24 36568 315.4 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Histogram/Attributes/10-24 32418 309.7 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialInt64Histogram/Attributes/0-24 33217 320.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialInt64Histogram/Attributes/1-24 27937 407.7 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialInt64Histogram/Attributes/10-24 30818 350.0 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialFloat64Histogram/Attributes/0-24 36286 346.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialFloat64Histogram/Attributes/1-24 35863 342.4 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialFloat64Histogram/Attributes/10-24 32378 327.8 ns/op 0 B/op 0 allocs/op ``` Single-threaded benchmarks: ``` goos: linux goarch: amd64 pkg: go.opentelemetry.io/otel/sdk/metric cpu: Intel(R) Xeon(R) CPU @ 2.20GHz BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Counter/Attributes/0 115218 109.8 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Counter/Attributes/1 106142 112.0 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Counter/Attributes/10 101562 115.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Counter/Attributes/0 93019 112.1 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Counter/Attributes/1 107089 117.4 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Counter/Attributes/10 106411 117.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64UpDownCounter/Attributes/0 110683 113.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64UpDownCounter/Attributes/1 84825 122.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64UpDownCounter/Attributes/10 98952 113.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64UpDownCounter/Attributes/0 115419 105.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64UpDownCounter/Attributes/1 97251 114.7 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64UpDownCounter/Attributes/10 106036 111.8 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Histogram/Attributes/0 130296 92.98 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Histogram/Attributes/1 120679 100.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Int64Histogram/Attributes/10 116985 102.1 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Histogram/Attributes/0 125479 96.42 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Histogram/Attributes/1 115527 103.7 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/Float64Histogram/Attributes/10 89858 117.8 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialInt64Histogram/Attributes/0 76768 152.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialInt64Histogram/Attributes/1 72832 161.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialInt64Histogram/Attributes/10 73298 160.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialFloat64Histogram/Attributes/0 81826 154.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialFloat64Histogram/Attributes/1 73779 158.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsDisabled/ExponentialFloat64Histogram/Attributes/10 75606 161.4 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Counter/Attributes/0 61503 188.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Counter/Attributes/1 63260 185.4 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Counter/Attributes/10 62704 189.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Counter/Attributes/0 63615 180.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Counter/Attributes/1 62072 190.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Counter/Attributes/10 61260 192.1 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64UpDownCounter/Attributes/0 61561 182.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64UpDownCounter/Attributes/1 60334 192.7 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64UpDownCounter/Attributes/10 64114 192.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64UpDownCounter/Attributes/0 63980 181.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64UpDownCounter/Attributes/1 61138 189.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64UpDownCounter/Attributes/10 62150 196.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Histogram/Attributes/0 51895 237.9 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Histogram/Attributes/1 52554 230.2 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Int64Histogram/Attributes/10 53581 228.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Histogram/Attributes/0 55407 221.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Histogram/Attributes/1 50701 226.0 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/Float64Histogram/Attributes/10 50460 231.3 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialInt64Histogram/Attributes/0 53390 221.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialInt64Histogram/Attributes/1 51373 229.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialInt64Histogram/Attributes/10 51154 228.5 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialFloat64Histogram/Attributes/0 52167 230.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialFloat64Histogram/Attributes/1 48598 247.6 ns/op 0 B/op 0 allocs/op BenchmarkSyncMeasure/NoView/ExemplarsEnabled/ExponentialFloat64Histogram/Attributes/10 51086 230.8 ns/op 0 B/op 0 allocs/op ```
2025-09-25 09:55:45 -04:00
ctx := trace.ContextWithSpanContext(b.Context(), sampledSpanContext)
attr := attribute.NewSet(
attribute.String("user", "Alice"),
attribute.Bool("admin", true),
)
setup := func(name string) (metric.Meter, Reader) {
r := NewManualReader()
v := NewView(Instrument{Name: "*"}, Stream{
AttributeFilter: func(kv attribute.KeyValue) bool {
return kv.Key == attribute.Key("user")
},
})
mp := NewMeterProvider(WithReader(r), WithView(v))
return mp.Meter(name), r
}
nCPU := runtime.NumCPU() // Size of the fixed reservoir used.
b.Setenv("OTEL_GO_X_EXEMPLAR", "true")
name := fmt.Sprintf("Int64Counter/%d", nCPU)
b.Run(name, func(b *testing.B) {
m, r := setup("Int64Counter")
i, err := m.Int64Counter("int64-counter")
assert.NoError(b, err)
rm := newRM(metricdata.Sum[int64]{
DataPoints: []metricdata.DataPoint[int64]{
{Exemplars: make([]metricdata.Exemplar[int64], 0, nCPU)},
},
})
e := &(rm.ScopeMetrics[0].Metrics[0].Data.(metricdata.Sum[int64]).DataPoints[0].Exemplars)
b.ReportAllocs()
b.ResetTimer()
for n := 0; n < b.N; n++ {
for j := 0; j < 2*nCPU; j++ {
i.Add(ctx, 1, metric.WithAttributeSet(attr))
}
_ = r.Collect(ctx, rm)
assert.Len(b, *e, nCPU)
}
})
name = fmt.Sprintf("Int64Histogram/%d", nCPU)
b.Run(name, func(b *testing.B) {
m, r := setup("Int64Counter")
i, err := m.Int64Histogram("int64-histogram")
assert.NoError(b, err)
rm := newRM(metricdata.Histogram[int64]{
DataPoints: []metricdata.HistogramDataPoint[int64]{
{Exemplars: make([]metricdata.Exemplar[int64], 0, 1)},
},
})
e := &(rm.ScopeMetrics[0].Metrics[0].Data.(metricdata.Histogram[int64]).DataPoints[0].Exemplars)
b.ReportAllocs()
b.ResetTimer()
for n := 0; n < b.N; n++ {
for j := 0; j < 2*nCPU; j++ {
i.Record(ctx, 1, metric.WithAttributeSet(attr))
}
_ = r.Collect(ctx, rm)
assert.Len(b, *e, 1)
}
})
}
func newRM(a metricdata.Aggregation) *metricdata.ResourceMetrics {
return &metricdata.ResourceMetrics{
ScopeMetrics: []metricdata.ScopeMetrics{
{Metrics: []metricdata.Metrics{{Data: a}}},
},
}
}