Browse Source

Update package tsdb for new labels.Labels type

Signed-off-by: Bryan Boreham <bjboreham@gmail.com>
pull/11717/head
Bryan Boreham 3 years ago
parent
commit
543c318ec2
  1. 2
      tsdb/db.go
  2. 5
      tsdb/exemplar.go
  3. 8
      tsdb/head_append.go
  4. 6
      tsdb/head_read.go
  5. 6
      tsdb/ooo_head_read.go
  6. 5
      tsdb/querier.go

2
tsdb/db.go

@ -1002,7 +1002,7 @@ func (a dbAppender) GetRef(lset labels.Labels, hash uint64) (storage.SeriesRef,
if g, ok := a.Appender.(storage.GetRef); ok { if g, ok := a.Appender.(storage.GetRef); ok {
return g.GetRef(lset, hash) return g.GetRef(lset, hash)
} }
return 0, nil return 0, labels.EmptyLabels()
} }
func (a dbAppender) Commit() error { func (a dbAppender) Commit() error {

5
tsdb/exemplar.go

@ -226,13 +226,16 @@ func (ce *CircularExemplarStorage) validateExemplar(key []byte, e exemplar.Exemp
// Exemplar label length does not include chars involved in text rendering such as quotes // Exemplar label length does not include chars involved in text rendering such as quotes
// equals sign, or commas. See definition of const ExemplarMaxLabelLength. // equals sign, or commas. See definition of const ExemplarMaxLabelLength.
labelSetLen := 0 labelSetLen := 0
for _, l := range e.Labels { if err := e.Labels.Validate(func(l labels.Label) error {
labelSetLen += utf8.RuneCountInString(l.Name) labelSetLen += utf8.RuneCountInString(l.Name)
labelSetLen += utf8.RuneCountInString(l.Value) labelSetLen += utf8.RuneCountInString(l.Value)
if labelSetLen > exemplar.ExemplarMaxLabelSetLength { if labelSetLen > exemplar.ExemplarMaxLabelSetLength {
return storage.ErrExemplarLabelLength return storage.ErrExemplarLabelLength
} }
return nil
}); err != nil {
return err
} }
idx, ok := ce.index[string(key)] idx, ok := ce.index[string(key)]

8
tsdb/head_append.go

@ -102,7 +102,7 @@ func (a *initAppender) GetRef(lset labels.Labels, hash uint64) (storage.SeriesRe
if g, ok := a.app.(storage.GetRef); ok { if g, ok := a.app.(storage.GetRef); ok {
return g.GetRef(lset, hash) return g.GetRef(lset, hash)
} }
return 0, nil return 0, labels.EmptyLabels()
} }
func (a *initAppender) Commit() error { func (a *initAppender) Commit() error {
@ -312,7 +312,7 @@ func (a *headAppender) Append(ref storage.SeriesRef, lset labels.Labels, t int64
if s == nil { if s == nil {
// Ensure no empty labels have gotten through. // Ensure no empty labels have gotten through.
lset = lset.WithoutEmpty() lset = lset.WithoutEmpty()
if len(lset) == 0 { if lset.IsEmpty() {
return 0, errors.Wrap(ErrInvalidSample, "empty labelset") return 0, errors.Wrap(ErrInvalidSample, "empty labelset")
} }
@ -494,7 +494,7 @@ func (a *headAppender) AppendHistogram(ref storage.SeriesRef, lset labels.Labels
if s == nil { if s == nil {
// Ensure no empty labels have gotten through. // Ensure no empty labels have gotten through.
lset = lset.WithoutEmpty() lset = lset.WithoutEmpty()
if len(lset) == 0 { if lset.IsEmpty() {
return 0, errors.Wrap(ErrInvalidSample, "empty labelset") return 0, errors.Wrap(ErrInvalidSample, "empty labelset")
} }
@ -650,7 +650,7 @@ var _ storage.GetRef = &headAppender{}
func (a *headAppender) GetRef(lset labels.Labels, hash uint64) (storage.SeriesRef, labels.Labels) { func (a *headAppender) GetRef(lset labels.Labels, hash uint64) (storage.SeriesRef, labels.Labels) {
s := a.head.series.getByHash(hash, lset) s := a.head.series.getByHash(hash, lset)
if s == nil { if s == nil {
return 0, nil return 0, labels.EmptyLabels()
} }
// returned labels must be suitable to pass to Append() // returned labels must be suitable to pass to Append()
return storage.SeriesRef(s.ref), s.lset return storage.SeriesRef(s.ref), s.lset

6
tsdb/head_read.go

@ -155,7 +155,7 @@ func (h *headIndexReader) Series(ref storage.SeriesRef, builder *labels.ScratchB
h.head.metrics.seriesNotFound.Inc() h.head.metrics.seriesNotFound.Inc()
return storage.ErrNotFound return storage.ErrNotFound
} }
*lbls = append((*lbls)[:0], s.lset...) lbls.CopyFrom(s.lset)
s.Lock() s.Lock()
defer s.Unlock() defer s.Unlock()
@ -222,9 +222,9 @@ func (h *headIndexReader) LabelNamesFor(ids ...storage.SeriesRef) ([]string, err
if memSeries == nil { if memSeries == nil {
return nil, storage.ErrNotFound return nil, storage.ErrNotFound
} }
for _, lbl := range memSeries.lset { memSeries.lset.Range(func(lbl labels.Label) {
namesMap[lbl.Name] = struct{}{} namesMap[lbl.Name] = struct{}{}
} })
} }
names := make([]string, 0, len(namesMap)) names := make([]string, 0, len(namesMap))
for name := range namesMap { for name := range namesMap {

6
tsdb/ooo_head_read.go

@ -47,7 +47,7 @@ func NewOOOHeadIndexReader(head *Head, mint, maxt int64) *OOOHeadIndexReader {
return &OOOHeadIndexReader{hr} return &OOOHeadIndexReader{hr}
} }
func (oh *OOOHeadIndexReader) Series(ref storage.SeriesRef, lbls *labels.Labels, chks *[]chunks.Meta) error { func (oh *OOOHeadIndexReader) Series(ref storage.SeriesRef, builder *labels.ScratchBuilder, lbls *labels.Labels, chks *[]chunks.Meta) error {
return oh.series(ref, lbls, chks, 0) return oh.series(ref, lbls, chks, 0)
} }
@ -61,7 +61,7 @@ func (oh *OOOHeadIndexReader) series(ref storage.SeriesRef, lbls *labels.Labels,
oh.head.metrics.seriesNotFound.Inc() oh.head.metrics.seriesNotFound.Inc()
return storage.ErrNotFound return storage.ErrNotFound
} }
*lbls = append((*lbls)[:0], s.lset...) lbls.CopyFrom(s.lset)
if chks == nil { if chks == nil {
return nil return nil
@ -400,7 +400,7 @@ func (ir *OOOCompactionHeadIndexReader) SortedPostings(p index.Postings) index.P
return p return p
} }
func (ir *OOOCompactionHeadIndexReader) Series(ref storage.SeriesRef, lset *labels.Labels, chks *[]chunks.Meta) error { func (ir *OOOCompactionHeadIndexReader) Series(ref storage.SeriesRef, builder *labels.ScratchBuilder, lset *labels.Labels, chks *[]chunks.Meta) error {
return ir.ch.oooIR.series(ref, lset, chks, ir.ch.lastMmapRef) return ir.ch.oooIR.series(ref, lset, chks, ir.ch.lastMmapRef)
} }

5
tsdb/querier.go

@ -529,8 +529,7 @@ func (b *blockBaseSeriesSet) Next() bool {
intervals = intervals.Add(tombstones.Interval{Mint: b.maxt + 1, Maxt: math.MaxInt64}) intervals = intervals.Add(tombstones.Interval{Mint: b.maxt + 1, Maxt: math.MaxInt64})
} }
b.curr.labels = make(labels.Labels, len(b.bufLbls)) b.curr.labels = b.bufLbls.Copy()
copy(b.curr.labels, b.bufLbls)
b.curr.chks = chks b.curr.chks = chks
b.curr.intervals = intervals b.curr.intervals = intervals
@ -866,7 +865,6 @@ func newBlockSeriesSet(i IndexReader, c ChunkReader, t tombstones.Reader, p inde
mint: mint, mint: mint,
maxt: maxt, maxt: maxt,
disableTrimming: disableTrimming, disableTrimming: disableTrimming,
bufLbls: make(labels.Labels, 0, 10),
}, },
} }
} }
@ -898,7 +896,6 @@ func newBlockChunkSeriesSet(id ulid.ULID, i IndexReader, c ChunkReader, t tombst
mint: mint, mint: mint,
maxt: maxt, maxt: maxt,
disableTrimming: disableTrimming, disableTrimming: disableTrimming,
bufLbls: make(labels.Labels, 0, 10),
}, },
} }
} }

Loading…
Cancel
Save