Initial QSfera import

This commit is contained in:
Курнат Андрей
2026-06-07 10:20:04 +03:00
commit 2315f25754
16485 changed files with 4826827 additions and 0 deletions
+50
View File
@@ -0,0 +1,50 @@
// Copyright The OpenTelemetry Authors
// SPDX-License-Identifier: Apache-2.0
package zpages // import "go.opentelemetry.io/contrib/zpages"
import (
"slices"
"time"
)
const (
zeroDuration = time.Duration(0)
maxDuration = time.Duration(1<<63 - 1)
)
var defaultBoundaries = newBoundaries([]time.Duration{
10 * time.Microsecond,
100 * time.Microsecond,
time.Millisecond,
10 * time.Millisecond,
100 * time.Millisecond,
time.Second,
10 * time.Second,
100 * time.Second,
})
// boundaries represents the interval bounds for the latency based samples.
type boundaries struct {
durations []time.Duration
}
// newBoundaries returns a new boundaries.
func newBoundaries(durations []time.Duration) *boundaries {
slices.Sort(durations)
return &boundaries{durations: durations}
}
// numBuckets returns the number of buckets needed for these boundaries.
func (lb boundaries) numBuckets() int {
return len(lb.durations) + 1
}
// getBucketIndex returns the appropriate bucket index for a given latency.
func (lb boundaries) getBucketIndex(latency time.Duration) int {
i := 0
for i < len(lb.durations) && latency >= lb.durations[i] {
i++
}
return i
}