mirror of
https://github.com/prometheus/prometheus.git
synced 2025-03-05 20:59:13 -08:00
Follow up PR 14729
Some checks are pending
CI / Go tests (push) Waiting to run
CI / More Go tests (push) Waiting to run
CI / Go tests with previous Go version (push) Waiting to run
CI / UI tests (push) Waiting to run
CI / Go tests on Windows (push) Waiting to run
CI / Mixins tests (push) Waiting to run
CI / Build Prometheus for common architectures (0) (push) Waiting to run
CI / Build Prometheus for common architectures (1) (push) Waiting to run
CI / Build Prometheus for common architectures (2) (push) Waiting to run
CI / Build Prometheus for all architectures (0) (push) Waiting to run
CI / Build Prometheus for all architectures (1) (push) Waiting to run
CI / Build Prometheus for all architectures (10) (push) Waiting to run
CI / Build Prometheus for all architectures (11) (push) Waiting to run
CI / Build Prometheus for all architectures (2) (push) Waiting to run
CI / Build Prometheus for all architectures (3) (push) Waiting to run
CI / Build Prometheus for all architectures (4) (push) Waiting to run
CI / Build Prometheus for all architectures (5) (push) Waiting to run
CI / Build Prometheus for all architectures (6) (push) Waiting to run
CI / Build Prometheus for all architectures (7) (push) Waiting to run
CI / Build Prometheus for all architectures (8) (push) Waiting to run
CI / Build Prometheus for all architectures (9) (push) Waiting to run
CI / Report status of build Prometheus for all architectures (push) Blocked by required conditions
CI / Check generated parser (push) Waiting to run
CI / golangci-lint (push) Waiting to run
CI / fuzzing (push) Waiting to run
CI / codeql (push) Waiting to run
CI / Publish main branch artifacts (push) Blocked by required conditions
CI / Publish release artefacts (push) Blocked by required conditions
CI / Publish UI on npm Registry (push) Blocked by required conditions
Some checks are pending
CI / Go tests (push) Waiting to run
CI / More Go tests (push) Waiting to run
CI / Go tests with previous Go version (push) Waiting to run
CI / UI tests (push) Waiting to run
CI / Go tests on Windows (push) Waiting to run
CI / Mixins tests (push) Waiting to run
CI / Build Prometheus for common architectures (0) (push) Waiting to run
CI / Build Prometheus for common architectures (1) (push) Waiting to run
CI / Build Prometheus for common architectures (2) (push) Waiting to run
CI / Build Prometheus for all architectures (0) (push) Waiting to run
CI / Build Prometheus for all architectures (1) (push) Waiting to run
CI / Build Prometheus for all architectures (10) (push) Waiting to run
CI / Build Prometheus for all architectures (11) (push) Waiting to run
CI / Build Prometheus for all architectures (2) (push) Waiting to run
CI / Build Prometheus for all architectures (3) (push) Waiting to run
CI / Build Prometheus for all architectures (4) (push) Waiting to run
CI / Build Prometheus for all architectures (5) (push) Waiting to run
CI / Build Prometheus for all architectures (6) (push) Waiting to run
CI / Build Prometheus for all architectures (7) (push) Waiting to run
CI / Build Prometheus for all architectures (8) (push) Waiting to run
CI / Build Prometheus for all architectures (9) (push) Waiting to run
CI / Report status of build Prometheus for all architectures (push) Blocked by required conditions
CI / Check generated parser (push) Waiting to run
CI / golangci-lint (push) Waiting to run
CI / fuzzing (push) Waiting to run
CI / codeql (push) Waiting to run
CI / Publish main branch artifacts (push) Blocked by required conditions
CI / Publish release artefacts (push) Blocked by required conditions
CI / Publish UI on npm Registry (push) Blocked by required conditions
Signed-off-by: György Krajcsovits <gyorgy.krajcsovits@grafana.com>
This commit is contained in:
parent
bab51673c1
commit
29f476ce9c
|
@ -6749,6 +6749,7 @@ func TestOOOHistogramCompactionWithCounterResets(t *testing.T) {
|
||||||
}
|
}
|
||||||
// Counter reset.
|
// Counter reset.
|
||||||
s = addSample(int64(490), series1, 100000, histogram.UnknownCounterReset)
|
s = addSample(int64(490), series1, 100000, histogram.UnknownCounterReset)
|
||||||
|
s = copyWithCounterReset(s, histogram.CounterReset)
|
||||||
series1ExpSamplesPreCompact = append(series1ExpSamplesPreCompact, s)
|
series1ExpSamplesPreCompact = append(series1ExpSamplesPreCompact, s)
|
||||||
series1ExpSamplesPostCompact = append(series1ExpSamplesPostCompact, s)
|
series1ExpSamplesPostCompact = append(series1ExpSamplesPostCompact, s)
|
||||||
// Add some more samples after the counter reset.
|
// Add some more samples after the counter reset.
|
||||||
|
@ -6773,6 +6774,7 @@ func TestOOOHistogramCompactionWithCounterResets(t *testing.T) {
|
||||||
}
|
}
|
||||||
// Counter reset.
|
// Counter reset.
|
||||||
s = addSample(int64(300), series2, 100000, histogram.UnknownCounterReset)
|
s = addSample(int64(300), series2, 100000, histogram.UnknownCounterReset)
|
||||||
|
s = copyWithCounterReset(s, histogram.CounterReset)
|
||||||
series2ExpSamplesPreCompact = append(series2ExpSamplesPreCompact, s)
|
series2ExpSamplesPreCompact = append(series2ExpSamplesPreCompact, s)
|
||||||
series2ExpSamplesPostCompact = append(series2ExpSamplesPostCompact, s)
|
series2ExpSamplesPostCompact = append(series2ExpSamplesPostCompact, s)
|
||||||
// Add some more samples after the counter reset.
|
// Add some more samples after the counter reset.
|
||||||
|
|
|
@ -54,53 +54,6 @@ func NewHeadAndOOOIndexReader(head *Head, mint, maxt int64, lastGarbageCollected
|
||||||
return &HeadAndOOOIndexReader{hr, lastGarbageCollectedMmapRef}
|
return &HeadAndOOOIndexReader{hr, lastGarbageCollectedMmapRef}
|
||||||
}
|
}
|
||||||
|
|
||||||
type MultiChunk struct {
|
|
||||||
chunks []chunkenc.Chunk
|
|
||||||
}
|
|
||||||
|
|
||||||
func (c MultiChunk) Iterator(it chunkenc.Iterator) chunkenc.Iterator {
|
|
||||||
switch len(c.chunks) {
|
|
||||||
case 0:
|
|
||||||
return chunkenc.NewNopIterator()
|
|
||||||
case 1:
|
|
||||||
return c.chunks[0].Iterator(it)
|
|
||||||
default:
|
|
||||||
iterators := make([]chunkenc.Iterator, 0, len(c.chunks))
|
|
||||||
for _, chk := range c.chunks {
|
|
||||||
iterators = append(iterators, chk.Iterator(nil))
|
|
||||||
}
|
|
||||||
return storage.ChainSampleIteratorFromIterators(it, iterators)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func (c MultiChunk) Appender() (chunkenc.Appender, error) {
|
|
||||||
return nil, errors.New("not implemented")
|
|
||||||
}
|
|
||||||
|
|
||||||
func (c MultiChunk) Bytes() []byte {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func (c MultiChunk) Compact() {
|
|
||||||
// no-op
|
|
||||||
}
|
|
||||||
|
|
||||||
func (c MultiChunk) Encoding() chunkenc.Encoding {
|
|
||||||
return chunkenc.EncNone
|
|
||||||
}
|
|
||||||
|
|
||||||
func (c MultiChunk) NumSamples() int {
|
|
||||||
sum := 0
|
|
||||||
for _, chk := range c.chunks {
|
|
||||||
sum += chk.NumSamples()
|
|
||||||
}
|
|
||||||
return sum
|
|
||||||
}
|
|
||||||
|
|
||||||
func (c MultiChunk) Reset([]byte) {
|
|
||||||
// no-op
|
|
||||||
}
|
|
||||||
|
|
||||||
func (oh *HeadAndOOOIndexReader) Series(ref storage.SeriesRef, builder *labels.ScratchBuilder, chks *[]chunks.Meta) error {
|
func (oh *HeadAndOOOIndexReader) Series(ref storage.SeriesRef, builder *labels.ScratchBuilder, chks *[]chunks.Meta) error {
|
||||||
s := oh.head.series.getByID(chunks.HeadSeriesRef(ref))
|
s := oh.head.series.getByID(chunks.HeadSeriesRef(ref))
|
||||||
|
|
||||||
|
@ -148,16 +101,14 @@ func getOOOSeriesChunks(s *memSeries, mint, maxt int64, lastGarbageCollectedMmap
|
||||||
if c.OverlapsClosedInterval(mint, maxt) && maxMmapRef == 0 {
|
if c.OverlapsClosedInterval(mint, maxt) && maxMmapRef == 0 {
|
||||||
ref := chunks.ChunkRef(chunks.NewHeadChunkRef(s.ref, s.oooHeadChunkID(len(s.ooo.oooMmappedChunks))))
|
ref := chunks.ChunkRef(chunks.NewHeadChunkRef(s.ref, s.oooHeadChunkID(len(s.ooo.oooMmappedChunks))))
|
||||||
if len(c.chunk.samples) > 0 { // Empty samples happens in tests, at least.
|
if len(c.chunk.samples) > 0 { // Empty samples happens in tests, at least.
|
||||||
headChunks := MultiChunk{}
|
|
||||||
chks, err := s.ooo.oooHeadChunk.chunk.ToEncodedChunks(c.minTime, c.maxTime)
|
chks, err := s.ooo.oooHeadChunk.chunk.ToEncodedChunks(c.minTime, c.maxTime)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
handleChunkWriteError(err)
|
handleChunkWriteError(err)
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
for _, chk := range chks {
|
for _, chk := range chks {
|
||||||
headChunks.chunks = append(headChunks.chunks, chk.chunk)
|
addChunk(chk.minTime, chk.maxTime, ref, chk.chunk)
|
||||||
}
|
}
|
||||||
addChunk(c.minTime, c.maxTime, ref, headChunks)
|
|
||||||
} else {
|
} else {
|
||||||
var emptyChunk chunkenc.Chunk
|
var emptyChunk chunkenc.Chunk
|
||||||
addChunk(c.minTime, c.maxTime, ref, emptyChunk)
|
addChunk(c.minTime, c.maxTime, ref, emptyChunk)
|
||||||
|
|
|
@ -33,7 +33,6 @@ import (
|
||||||
|
|
||||||
// Type assertions.
|
// Type assertions.
|
||||||
var (
|
var (
|
||||||
_ chunkenc.Chunk = &MultiChunk{}
|
|
||||||
_ chunkenc.Iterable = &mergedOOOChunks{}
|
_ chunkenc.Iterable = &mergedOOOChunks{}
|
||||||
_ IndexReader = &HeadAndOOOIndexReader{}
|
_ IndexReader = &HeadAndOOOIndexReader{}
|
||||||
)
|
)
|
||||||
|
|
Loading…
Reference in a new issue