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.