mirror of https://github.com/prometheus/prometheus
Merge branch 'release-1.2'
commit
b66ce9c5cd
|
@ -1,3 +1,4 @@
|
||||||
|
go: 1.7.1
|
||||||
repository:
|
repository:
|
||||||
path: github.com/prometheus/prometheus
|
path: github.com/prometheus/prometheus
|
||||||
build:
|
build:
|
||||||
|
|
|
@ -1,3 +1,9 @@
|
||||||
|
## 1.2.1 / 2016-10-10
|
||||||
|
|
||||||
|
* [BUGFIX] Count chunk evictions properly so that the server doesn't
|
||||||
|
assume it runs out of memory and subsequencly throttles ingestion.
|
||||||
|
* [BUGFIX] Use Go1.7.1 for prebuilt binaries to fix issues on MacOS Sierra.
|
||||||
|
|
||||||
## 1.2.0 / 2016-10-07
|
## 1.2.0 / 2016-10-07
|
||||||
|
|
||||||
* [FEATURE] Cleaner encoding of query parameters in `/graph` URLs.
|
* [FEATURE] Cleaner encoding of query parameters in `/graph` URLs.
|
||||||
|
|
|
@ -252,6 +252,8 @@ func (d *Desc) MaybeEvict() bool {
|
||||||
panic("ChunkLastTime not populated for evicted chunk")
|
panic("ChunkLastTime not populated for evicted chunk")
|
||||||
}
|
}
|
||||||
d.C = nil
|
d.C = nil
|
||||||
|
Ops.WithLabelValues(Evict).Inc()
|
||||||
|
atomic.AddInt64(&NumMemChunks, -1)
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -20,6 +20,7 @@ import (
|
||||||
"math/rand"
|
"math/rand"
|
||||||
"os"
|
"os"
|
||||||
"strconv"
|
"strconv"
|
||||||
|
"sync/atomic"
|
||||||
"testing"
|
"testing"
|
||||||
"testing/quick"
|
"testing/quick"
|
||||||
"time"
|
"time"
|
||||||
|
@ -1412,6 +1413,10 @@ func testEvictAndLoadChunkDescs(t *testing.T, encoding chunk.Encoding) {
|
||||||
Value: model.SampleValue(3.14),
|
Value: model.SampleValue(3.14),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Sadly, chunk.NumMemChunks is a global variable. We have to reset it
|
||||||
|
// explicitly here.
|
||||||
|
atomic.StoreInt64(&chunk.NumMemChunks, 0)
|
||||||
|
|
||||||
s, closer := NewTestStorage(t, encoding)
|
s, closer := NewTestStorage(t, encoding)
|
||||||
defer closer.Close()
|
defer closer.Close()
|
||||||
|
|
||||||
|
@ -1441,6 +1446,9 @@ func testEvictAndLoadChunkDescs(t *testing.T, encoding chunk.Encoding) {
|
||||||
if oldLen <= len(series.chunkDescs) {
|
if oldLen <= len(series.chunkDescs) {
|
||||||
t.Errorf("Expected number of chunkDescs to decrease, old number %d, current number %d.", oldLen, len(series.chunkDescs))
|
t.Errorf("Expected number of chunkDescs to decrease, old number %d, current number %d.", oldLen, len(series.chunkDescs))
|
||||||
}
|
}
|
||||||
|
if int64(len(series.chunkDescs)) < atomic.LoadInt64(&chunk.NumMemChunks) {
|
||||||
|
t.Errorf("NumMemChunks is larger than number of chunk descs, number of chunk descs: %d, NumMemChunks: %d.", len(series.chunkDescs), atomic.LoadInt64(&chunk.NumMemChunks))
|
||||||
|
}
|
||||||
|
|
||||||
// Load everything back.
|
// Load everything back.
|
||||||
it := s.preloadChunksForRange(makeFingerprintSeriesPair(s, fp), 0, 100000)
|
it := s.preloadChunksForRange(makeFingerprintSeriesPair(s, fp), 0, 100000)
|
||||||
|
|
Loading…
Reference in New Issue