mirror of
https://github.com/open-telemetry/opentelemetry-go.git
synced 2024-12-24 20:14:40 +02:00
110 lines
2.2 KiB
Go
110 lines
2.2 KiB
Go
// Copyright The OpenTelemetry Authors
|
|
// SPDX-License-Identifier: Apache-2.0
|
|
|
|
package log_test
|
|
|
|
import (
|
|
"testing"
|
|
"time"
|
|
|
|
"go.opentelemetry.io/otel/log"
|
|
)
|
|
|
|
func BenchmarkRecord(b *testing.B) {
|
|
var (
|
|
tStamp time.Time
|
|
sev log.Severity
|
|
text string
|
|
body log.Value
|
|
attr log.KeyValue
|
|
n int
|
|
)
|
|
|
|
b.Run("Timestamp", func(b *testing.B) {
|
|
b.ReportAllocs()
|
|
for n := 0; n < b.N; n++ {
|
|
var r log.Record
|
|
r.SetTimestamp(y2k)
|
|
tStamp = r.Timestamp()
|
|
}
|
|
})
|
|
|
|
b.Run("ObservedTimestamp", func(b *testing.B) {
|
|
b.ReportAllocs()
|
|
for n := 0; n < b.N; n++ {
|
|
var r log.Record
|
|
r.SetObservedTimestamp(y2k)
|
|
tStamp = r.ObservedTimestamp()
|
|
}
|
|
})
|
|
|
|
b.Run("Severity", func(b *testing.B) {
|
|
b.ReportAllocs()
|
|
for n := 0; n < b.N; n++ {
|
|
var r log.Record
|
|
r.SetSeverity(log.SeverityDebug)
|
|
sev = r.Severity()
|
|
}
|
|
})
|
|
|
|
b.Run("SeverityText", func(b *testing.B) {
|
|
b.ReportAllocs()
|
|
for n := 0; n < b.N; n++ {
|
|
var r log.Record
|
|
r.SetSeverityText("text")
|
|
text = r.SeverityText()
|
|
}
|
|
})
|
|
|
|
bodyVal := log.BoolValue(true)
|
|
b.Run("Body", func(b *testing.B) {
|
|
b.ReportAllocs()
|
|
for n := 0; n < b.N; n++ {
|
|
var r log.Record
|
|
r.SetBody(bodyVal)
|
|
body = r.Body()
|
|
}
|
|
})
|
|
|
|
attrs10 := []log.KeyValue{
|
|
log.Bool("b1", true),
|
|
log.Int("i1", 324),
|
|
log.Float64("f1", -230.213),
|
|
log.String("s1", "value1"),
|
|
log.Map("m1", log.Slice("slice1", log.BoolValue(true))),
|
|
log.Bool("b2", false),
|
|
log.Int("i2", 39847),
|
|
log.Float64("f2", 0.382964329),
|
|
log.String("s2", "value2"),
|
|
log.Map("m2", log.Slice("slice2", log.BoolValue(false))),
|
|
}
|
|
attrs5 := attrs10[:5]
|
|
walk := func(kv log.KeyValue) bool {
|
|
attr = kv
|
|
return true
|
|
}
|
|
b.Run("Attributes", func(b *testing.B) {
|
|
b.Run("5", func(b *testing.B) {
|
|
b.ReportAllocs()
|
|
for i := 0; i < b.N; i++ {
|
|
var r log.Record
|
|
r.AddAttributes(attrs5...)
|
|
n = r.AttributesLen()
|
|
r.WalkAttributes(walk)
|
|
}
|
|
})
|
|
b.Run("10", func(b *testing.B) {
|
|
b.ReportAllocs()
|
|
for i := 0; i < b.N; i++ {
|
|
var r log.Record
|
|
r.AddAttributes(attrs10...)
|
|
n = r.AttributesLen()
|
|
r.WalkAttributes(walk)
|
|
}
|
|
})
|
|
})
|
|
|
|
// Convince the linter these values are used.
|
|
_, _, _, _, _, _ = tStamp, sev, text, body, attr, n
|
|
}
|