Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Chunk ¶
type Chunk interface {
// Bytes returns the underlying byte slice of the chunk.
Bytes() []byte
// Encoding returns the encoding type of the chunk.
Encoding() Encoding
// Appender returns an appender to append samples to the chunk.
Appender() (Appender, error)
// Iterator returns an iterator that iterates sample by sample.
// The iterator passed as argument is for re-use.
// Depending on implementation, the iterator can
// be re-used or a new iterator can be allocated.
Iterator(Iterator) Iterator
// NumSamples returns the number of samples in the chunk.
NumSamples() int
// Compact is called whenever a chunk is expected to be complete (no more
// samples appended) and the underlying implementation can eventually
// optimize the chunk.
// There's no strong guarantee that no samples will be appended once
// Compact() is called. Implementing this function is optional.
Compact()
}
Chunk holds a sequence of sample pairs that can be iterated over and appended to.
func FromData ¶
FromData returns a chunk from a byte slice of chunk data. This is there so that users of the library can easily create chunks from bytes.
func FromValuesDelta ¶
FromValuesDelta takes a sequence of values and returns a new populated Chunk. This is mostly helpful in tests.
func FromValuesRLE ¶
FromValuesRLE takes a value and adds it length amounts of times to the Chunk. This is mostly helpful in tests.
func FromValuesXOR ¶
FromValuesXOR takes a sequence of values and returns a new populated Chunk. This is mostly helpful in tests.
func FromValuesXORAt ¶
FromValuesXORAt inserts a value at the given index in a Chunk. This extra helper is necessary because FromValuesXOR(0,0,3) results in different bytes than FromValuesXORAt(2,3).
type DeltaChunk ¶
type DeltaChunk struct {
// contains filtered or unexported fields
}
DeltaChunk holds double delta encoded sample data.
func NewDeltaChunk ¶
func NewDeltaChunk() *DeltaChunk
func (*DeltaChunk) Appender ¶
func (c *DeltaChunk) Appender() (Appender, error)
Appender implements the Chunk interface.
func (*DeltaChunk) Bytes ¶
func (c *DeltaChunk) Bytes() []byte
Bytes returns the underlying byte slice of the chunk.
func (*DeltaChunk) Compact ¶
func (c *DeltaChunk) Compact()
func (*DeltaChunk) Encoding ¶
func (c *DeltaChunk) Encoding() Encoding
Encoding returns the encoding type.
func (*DeltaChunk) Iterator ¶
func (c *DeltaChunk) Iterator(it Iterator) Iterator
Iterator implements the Chunk interface.
func (*DeltaChunk) NumSamples ¶
func (c *DeltaChunk) NumSamples() int
NumSamples returns the number of samples in the chunk.
type Iterator ¶
type Iterator interface {
// Next advances the iterator by one.
Next() bool
// Seek advances the iterator forward to the sample at the given index.
// If current sample found by previous `Next` or `Seek` operation already has this property, Seek has no effect.
// Seek returns true, if such sample exists, false otherwise.
// Iterator is exhausted when the Seek returns false.
Seek(index uint16) bool
// At returns the current timestamp/value pair.
// Before the iterator has advanced At behaviour is unspecified.
At() int64
// Err returns the current error. It should be used only after iterator is
// exhausted, that is `Next` or `Seek` returns false.
Err() error
// Read returns how many iterations the iterator has read at any given moment.
Read() uint64
}
Iterator is a simple iterator that can only get the next value. Iterator iterates over the samples of a time series, in timestamp-increasing order.
func NewNopIterator ¶
func NewNopIterator() Iterator
NewNopIterator returns a new chunk iterator that does not hold any data.
type RLEChunk ¶
type RLEChunk struct {
// contains filtered or unexported fields
}
RLEChunk implements a run-length-encoding chunk that's useful when there are lots of repetitive values stored.
func NewRLEChunk ¶
func NewRLEChunk() *RLEChunk
func (*RLEChunk) NumSamples ¶
NumSamples returns the number of samples in the chunk.
type XORChunk ¶
type XORChunk struct {
// contains filtered or unexported fields
}
XORChunk holds XOR encoded sample data.
func NewXORChunk ¶
func NewXORChunk() *XORChunk
NewXORChunk returns a new chunk with XOR encoding of the given size.
func (*XORChunk) NumSamples ¶
NumSamples returns the number of samples in the chunk.