mirror of
https://github.com/open-telemetry/opentelemetry-go.git
synced 2025-01-26 03:52:03 +02:00
57 lines
1.4 KiB
Go
57 lines
1.4 KiB
Go
// Copyright The OpenTelemetry Authors
|
|
// SPDX-License-Identifier: Apache-2.0
|
|
|
|
package aggregate // import "go.opentelemetry.io/otel/sdk/metric/internal/aggregate"
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
|
|
"go.opentelemetry.io/otel/attribute"
|
|
)
|
|
|
|
func TestLimiterAttributes(t *testing.T) {
|
|
m := map[attribute.Distinct]struct{}{alice.Equivalent(): {}}
|
|
t.Run("NoLimit", func(t *testing.T) {
|
|
l := newLimiter[struct{}](0)
|
|
assert.Equal(t, alice, l.Attributes(alice, m))
|
|
assert.Equal(t, bob, l.Attributes(bob, m))
|
|
})
|
|
|
|
t.Run("NotAtLimit/Exists", func(t *testing.T) {
|
|
l := newLimiter[struct{}](3)
|
|
assert.Equal(t, alice, l.Attributes(alice, m))
|
|
})
|
|
|
|
t.Run("NotAtLimit/DoesNotExist", func(t *testing.T) {
|
|
l := newLimiter[struct{}](3)
|
|
assert.Equal(t, bob, l.Attributes(bob, m))
|
|
})
|
|
|
|
t.Run("AtLimit/Exists", func(t *testing.T) {
|
|
l := newLimiter[struct{}](2)
|
|
assert.Equal(t, alice, l.Attributes(alice, m))
|
|
})
|
|
|
|
t.Run("AtLimit/DoesNotExist", func(t *testing.T) {
|
|
l := newLimiter[struct{}](2)
|
|
assert.Equal(t, overflowSet, l.Attributes(bob, m))
|
|
})
|
|
}
|
|
|
|
var limitedAttr attribute.Set
|
|
|
|
func BenchmarkLimiterAttributes(b *testing.B) {
|
|
m := map[attribute.Distinct]struct{}{alice.Equivalent(): {}}
|
|
l := newLimiter[struct{}](2)
|
|
|
|
b.ReportAllocs()
|
|
b.ResetTimer()
|
|
|
|
for n := 0; n < b.N; n++ {
|
|
limitedAttr = l.Attributes(alice, m)
|
|
limitedAttr = l.Attributes(bob, m)
|
|
}
|
|
}
|