Browse Source

Make Chunks return the number of samples inside

Signed-off-by: Goutham Veeramachaneni <cs14btech11014@iith.ac.in>
pull/5805/head
Goutham Veeramachaneni 7 years ago
parent
commit
401bdfd4a6
  1. 1
      chunks/chunk.go
  2. 5
      chunks/xor.go
  3. 3
      compact.go

1
chunks/chunk.go

@ -43,6 +43,7 @@ type Chunk interface {
Encoding() Encoding
Appender() (Appender, error)
Iterator() Iterator
NumSamples() int
}
// FromData returns a chunk from a byte slice of chunk data.

5
chunks/xor.go

@ -72,6 +72,11 @@ func (c *XORChunk) Bytes() []byte {
return c.b.bytes()
}
// NumSamples returns the number of samples in the chunk.
func (c *XORChunk) NumSamples() int {
return int(binary.BigEndian.Uint16(c.Bytes()))
}
// Appender implements the Chunk interface.
func (c *XORChunk) Appender() (Appender, error) {
it := c.iterator()

3
compact.go

@ -14,7 +14,6 @@
package tsdb
import (
"encoding/binary"
"fmt"
"math/rand"
"os"
@ -461,7 +460,7 @@ func populateBlock(blocks []Block, indexw IndexWriter, chunkw ChunkWriter) (*Blo
meta.Stats.NumChunks += uint64(len(chks))
meta.Stats.NumSeries++
for _, chk := range chks {
meta.Stats.NumSamples += uint64(binary.BigEndian.Uint16(chk.Chunk.Bytes()))
meta.Stats.NumSamples += uint64(chk.Chunk.NumSamples())
}
for _, l := range lset {

Loading…
Cancel
Save