VictoriaMetrics/lib/timeutil/timeutil.go

32 lines
764 B
Go
Raw Normal View History

package timeutil
import (
"time"
"github.com/valyala/fastrand"
)
// AddJitterToDuration adds up to 10% random jitter to d and returns the resulting duration.
//
// The maximum jitter is limited by 10 seconds.
func AddJitterToDuration(d time.Duration) time.Duration {
dv := d / 10
if dv > 10*time.Second {
dv = 10 * time.Second
}
p := float64(fastrand.Uint32()) / (1 << 32)
return d + time.Duration(p*float64(dv))
}
// StartOfDay returns the start of the day for the given timestamp.
// Timestamp is in milliseconds.
func StartOfDay(ts int64) int64 {
return ts - (ts % 86400000)
}
// EndOfDay returns the end of the day for the given timestamp.
// Timestamp is in milliseconds.
func EndOfDay(ts int64) int64 {
return StartOfDay(ts) + 86400000 - 1
}