MCPcopy
hub / github.com/prometheus/prometheus / BenchmarkQuerySeek

Function BenchmarkQuerySeek

tsdb/querier_test.go:2720–2797  ·  view source on GitHub ↗
(b *testing.B)

Source from the content-addressed store, hash-verified

2718}
2719
2720func BenchmarkQuerySeek(b *testing.B) {
2721 cases := []struct {
2722 numBlocks int
2723 numSeries int
2724 numSamplesPerSeriesPerBlock int
2725 overlapPercentages []int // >=0, <=100, this is w.r.t. the previous block.
2726 }{
2727 {
2728 numBlocks: 20,
2729 numSeries: 100,
2730 numSamplesPerSeriesPerBlock: 2000,
2731 overlapPercentages: []int{0, 10, 30, 50},
2732 },
2733 }
2734
2735 for _, c := range cases {
2736 for _, overlapPercentage := range c.overlapPercentages {
2737 benchMsg := fmt.Sprintf("nBlocks=%d,nSeries=%d,numSamplesPerSeriesPerBlock=%d,overlap=%d%%",
2738 c.numBlocks, c.numSeries, c.numSamplesPerSeriesPerBlock, overlapPercentage)
2739
2740 b.Run(benchMsg, func(b *testing.B) {
2741 dir := b.TempDir()
2742
2743 var (
2744 blocks []*Block
2745 overlapDelta = int64(overlapPercentage * c.numSamplesPerSeriesPerBlock / 100)
2746 prefilledLabels []map[string]string
2747 generatedSeries []storage.Series
2748 )
2749 for i := int64(0); i < int64(c.numBlocks); i++ {
2750 offset := i * overlapDelta
2751 mint := i*int64(c.numSamplesPerSeriesPerBlock) - offset
2752 maxt := mint + int64(c.numSamplesPerSeriesPerBlock) - 1
2753 if len(prefilledLabels) == 0 {
2754 generatedSeries = genSeries(c.numSeries, 10, mint, maxt)
2755 for _, s := range generatedSeries {
2756 prefilledLabels = append(prefilledLabels, s.Labels().Map())
2757 }
2758 } else {
2759 generatedSeries = populateSeries(prefilledLabels, mint, maxt)
2760 }
2761 block, err := OpenBlock(nil, createBlock(b, dir, generatedSeries), nil, nil)
2762 require.NoError(b, err)
2763 blocks = append(blocks, block)
2764 defer block.Close()
2765 }
2766
2767 qblocks := make([]storage.Querier, 0, len(blocks))
2768 for _, blk := range blocks {
2769 q, err := NewBlockQuerier(blk, math.MinInt64, math.MaxInt64)
2770 require.NoError(b, err)
2771 qblocks = append(qblocks, q)
2772 }
2773
2774 sq := storage.NewMergeQuerier(qblocks, nil, storage.ChainedSeriesMerge)
2775 defer sq.Close()
2776
2777 mint := blocks[0].meta.MinTime

Callers

nothing calls this directly

Calls 15

SeekMethod · 0.95
ErrMethod · 0.95
NewMergeQuerierFunction · 0.92
MustNewMatcherFunction · 0.92
genSeriesFunction · 0.85
populateSeriesFunction · 0.85
OpenBlockFunction · 0.85
createBlockFunction · 0.85
NewBlockQuerierFunction · 0.85
MapMethod · 0.80
RunMethod · 0.65
LabelsMethod · 0.65

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…