mirror of
https://github.com/prometheus/prometheus
synced 2024-12-27 00:53:12 +00:00
Do not double-count non-persisted head chunks on loading.
This commit is contained in:
parent
dbc22b972c
commit
9406afad72
@ -22,7 +22,6 @@ import (
|
||||
"path"
|
||||
"path/filepath"
|
||||
"sync"
|
||||
"sync/atomic"
|
||||
"time"
|
||||
|
||||
"github.com/golang/glog"
|
||||
@ -586,7 +585,7 @@ func (p *persistence) checkpointSeriesMapAndHeads(fingerprintToSeries *seriesMap
|
||||
// this method during start-up while nothing else is running in storage
|
||||
// land. This method is utterly goroutine-unsafe.
|
||||
func (p *persistence) loadSeriesMapAndHeads() (sm *seriesMap, err error) {
|
||||
var chunksTotal, chunkDescsTotal int64
|
||||
var chunkDescsTotal int64
|
||||
fingerprintToSeries := make(map[clientmodel.Fingerprint]*memorySeries)
|
||||
sm = &seriesMap{m: fingerprintToSeries}
|
||||
|
||||
@ -599,7 +598,6 @@ func (p *persistence) loadSeriesMapAndHeads() (sm *seriesMap, err error) {
|
||||
}
|
||||
}
|
||||
if err == nil {
|
||||
atomic.AddInt64(&numMemChunks, chunksTotal)
|
||||
numMemChunkDescs.Add(float64(chunkDescsTotal))
|
||||
}
|
||||
}()
|
||||
@ -704,7 +702,6 @@ func (p *persistence) loadSeriesMapAndHeads() (sm *seriesMap, err error) {
|
||||
}
|
||||
} else {
|
||||
// Non-persisted head chunk.
|
||||
chunksTotal++
|
||||
chunkType, err := r.ReadByte()
|
||||
if err != nil {
|
||||
glog.Warning("Could not decode chunk type:", err)
|
||||
@ -718,6 +715,7 @@ func (p *persistence) loadSeriesMapAndHeads() (sm *seriesMap, err error) {
|
||||
return sm, nil
|
||||
}
|
||||
chunkDescs[i] = newChunkDesc(chunk)
|
||||
chunkDescsTotal-- // Avoid double-counting by newChunkDesc.
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1027,8 +1027,10 @@ func (s *memorySeriesStorage) Collect(ch chan<- prometheus.Metric) {
|
||||
ch <- s.ingestedSamplesCount
|
||||
ch <- s.invalidPreloadRequestsCount
|
||||
|
||||
count := atomic.LoadInt64(&numMemChunks)
|
||||
ch <- prometheus.MustNewConstMetric(numMemChunksDesc, prometheus.GaugeValue, float64(count))
|
||||
ch <- prometheus.MustNewConstMetric(
|
||||
numMemChunksDesc,
|
||||
prometheus.GaugeValue,
|
||||
float64(atomic.LoadInt64(&numMemChunks)))
|
||||
}
|
||||
|
||||
// chunkMaps is a slice of maps with chunkDescs to be persisted.
|
||||
|
Loading…
Reference in New Issue
Block a user