2024-05-14 12:43:39 +00:00
|
|
|
package rule
|
|
|
|
|
|
|
|
import (
|
|
|
|
"fmt"
|
|
|
|
"testing"
|
|
|
|
"time"
|
|
|
|
|
|
|
|
"github.com/VictoriaMetrics/VictoriaMetrics/lib/prompbmarshal"
|
|
|
|
)
|
|
|
|
|
|
|
|
func BenchmarkGetStaleSeries(b *testing.B) {
|
|
|
|
ts := time.Now()
|
|
|
|
n := 100
|
2024-08-30 08:55:25 +00:00
|
|
|
payload := make([]prompbmarshal.TimeSeries, 0, n)
|
2024-05-14 12:43:39 +00:00
|
|
|
for i := 0; i < n; i++ {
|
|
|
|
s := fmt.Sprintf("%d", i)
|
|
|
|
labels := toPromLabels(b,
|
|
|
|
"__name__", "foo", ""+
|
|
|
|
"instance", s,
|
|
|
|
"job", s,
|
|
|
|
"state", s,
|
|
|
|
)
|
|
|
|
payload = append(payload, newTimeSeriesPB([]float64{1}, []int64{ts.Unix()}, labels))
|
|
|
|
}
|
|
|
|
|
|
|
|
e := &executor{
|
|
|
|
previouslySentSeriesToRW: make(map[uint64]map[string][]prompbmarshal.Label),
|
|
|
|
}
|
|
|
|
ar := &AlertingRule{RuleID: 1}
|
|
|
|
|
|
|
|
b.ResetTimer()
|
|
|
|
b.ReportAllocs()
|
|
|
|
for i := 0; i < b.N; i++ {
|
|
|
|
e.getStaleSeries(ar, payload, ts)
|
|
|
|
}
|
|
|
|
}
|