Documentation ¶
Index ¶
- Constants
- func PutBufferWriterToPool(fw *BufferWriter)
- func ReadOffsetTable(bs ByteSlice, off uint64, f func([]string, uint64, int) error) error
- type BufferWriter
- func (fw *BufferWriter) AddPadding(size int) error
- func (fw *BufferWriter) Buffer() ([]byte, io.Closer, error)
- func (fw *BufferWriter) Close() error
- func (fw *BufferWriter) Flush() error
- func (fw *BufferWriter) Pos() uint64
- func (fw *BufferWriter) Read(buf []byte) (int, error)
- func (fw *BufferWriter) ReadFrom(r io.Reader) (int64, error)
- func (fw *BufferWriter) Remove() error
- func (fw *BufferWriter) Reset()
- func (fw *BufferWriter) Write(bufs ...[]byte) error
- func (fw *BufferWriter) WriteAt(buf []byte, pos uint64) error
- type ByteSlice
- type Decoder
- func (dec *Decoder) LabelNamesOffsetsFor(b []byte) ([]uint32, error)
- func (dec *Decoder) LabelValueFor(b []byte, label string) (string, error)
- func (dec *Decoder) Postings(b []byte) (int, index.Postings, error)
- func (dec *Decoder) Series(b []byte, lbls *phlaremodel.Labels, chks *[]index.ChunkMeta, group bool, ...) (uint64, error)
- type Metadata
- type Range
- type Reader
- func (r *Reader) Bounds() (int64, int64)
- func (r *Reader) Checksum() uint32
- func (r *Reader) Close() error
- func (r *Reader) FileInfo() block.File
- func (r *Reader) LabelNames(matchers ...*labels.Matcher) ([]string, error)
- func (r *Reader) LabelNamesFor(ids ...storage.SeriesRef) ([]string, error)
- func (r *Reader) LabelValueFor(id storage.SeriesRef, label string) (string, error)
- func (r *Reader) LabelValues(name string, matchers ...*labels.Matcher) ([]string, error)
- func (r *Reader) Postings(name string, shard *index.ShardAnnotation, values ...string) (index.Postings, error)
- func (r *Reader) PostingsRanges() (map[labels.Label]Range, error)
- func (r *Reader) Series(id storage.SeriesRef, lbls *phlaremodel.Labels, chks *[]index.ChunkMeta) (uint64, error)
- func (r *Reader) SeriesBy(id storage.SeriesRef, lbls *phlaremodel.Labels, chks *[]index.ChunkMeta, ...) (uint64, error)
- func (r *Reader) Size() int64
- func (r *Reader) SortedLabelValues(name string, matchers ...*labels.Matcher) ([]string, error)
- func (r *Reader) SymbolTableSize() uint64
- func (r *Reader) Symbols() StringIter
- func (r *Reader) Version() int
- type RealByteSlice
- type StringIter
- type Symbols
- type TOC
- type Writer
Constants ¶
const ( // MagicIndex 4 bytes at the head of an index file. MagicIndex = 0xBAAAD700 // HeaderLen represents number of bytes reserved of index for header. HeaderLen = 5 // FormatV1 represents 1 version of index. FormatV1 = 1 // FormatV2 represents 2 version of index. FormatV2 = 2 IndexFilename = "index" SegmentsIndexWriterBufSize = 2 * 0x1000 // small for segments BlocksIndexWriterBufSize = 1 << 22 // large for blocks )
Variables ¶
This section is empty.
Functions ¶
func PutBufferWriterToPool ¶
func PutBufferWriterToPool(fw *BufferWriter)
Types ¶
type BufferWriter ¶
type BufferWriter struct {
// contains filtered or unexported fields
}
func GetBufferWriterFromPool ¶
func GetBufferWriterFromPool() *BufferWriter
func NewBufferWriter ¶
func NewBufferWriter() *BufferWriter
NewBufferWriter returns a new BufferWriter. todo: pooling memory
func (*BufferWriter) AddPadding ¶
func (fw *BufferWriter) AddPadding(size int) error
func (*BufferWriter) Close ¶
func (fw *BufferWriter) Close() error
func (*BufferWriter) Flush ¶
func (fw *BufferWriter) Flush() error
func (*BufferWriter) Pos ¶
func (fw *BufferWriter) Pos() uint64
func (*BufferWriter) Remove ¶
func (fw *BufferWriter) Remove() error
func (*BufferWriter) Reset ¶
func (fw *BufferWriter) Reset()
func (*BufferWriter) Write ¶
func (fw *BufferWriter) Write(bufs ...[]byte) error
type Decoder ¶
Decoder provides decoding methods for the v1 and v2 index file format.
It currently does not contain decoding methods for all entry types but can be extended by them if there's demand.
func (*Decoder) LabelNamesOffsetsFor ¶
LabelNamesOffsetsFor decodes the offsets of the name symbols for a given series. They are returned in the same order they're stored, which should be sorted lexicographically.
func (*Decoder) LabelValueFor ¶
LabelValueFor decodes a label for a given series.
type Reader ¶
type Reader struct {
// contains filtered or unexported fields
}
func NewFileReader ¶
NewFileReader returns a new index reader against the given index file.
func NewReader ¶
NewReader returns a new index reader on the given byte slice. It automatically handles different format versions.
func (*Reader) LabelNames ¶
LabelNames returns all the unique label names present in the index. TODO(twilkie) implement support for matchers
func (*Reader) LabelNamesFor ¶
LabelNamesFor returns all the label names for the series referred to by IDs. The names returned are sorted.
func (*Reader) LabelValueFor ¶
LabelValueFor returns label value for the given label name in the series referred to by ID.
func (*Reader) LabelValues ¶
LabelValues returns value tuples that exist for the given label name. It is not safe to use the return value beyond the lifetime of the byte slice passed into the Reader. TODO(replay): Support filtering by matchers
func (*Reader) PostingsRanges ¶
PostingsRanges returns a new map of byte range in the underlying index file for all postings lists.
func (*Reader) Series ¶
func (r *Reader) Series(id storage.SeriesRef, lbls *phlaremodel.Labels, chks *[]index.ChunkMeta) (uint64, error)
Series reads the series with the given ID and writes its labels and chunks into lbls and chks.
func (*Reader) SeriesBy ¶
func (r *Reader) SeriesBy(id storage.SeriesRef, lbls *phlaremodel.Labels, chks *[]index.ChunkMeta, by ...string) (uint64, error)
SeriesBy is like Series but allows to group labels by name. This avoid looking up all label symbols for requested series.
func (*Reader) SortedLabelValues ¶
SortedLabelValues returns value tuples that exist for the given label name. It is not safe to use the return value beyond the lifetime of the byte slice passed into the Reader.
func (*Reader) SymbolTableSize ¶
SymbolTableSize returns the symbol table size in bytes.
func (*Reader) Symbols ¶
func (r *Reader) Symbols() StringIter
Symbols returns an iterator over the symbols that exist within the index.
type RealByteSlice ¶
type RealByteSlice []byte
func (RealByteSlice) Len ¶
func (b RealByteSlice) Len() int
func (RealByteSlice) Range ¶
func (b RealByteSlice) Range(start, end int) []byte
func (RealByteSlice) Sub ¶
func (b RealByteSlice) Sub(start, end int) ByteSlice
type StringIter ¶
type StringIter interface { // Next advances the iterator and returns true if another value was found. Next() bool // At returns the value at the current iterator position. At() string // Err returns the last error of the iterator. Err() error }
StringIter iterates over a sorted list of strings.
type Symbols ¶
type Symbols struct {
// contains filtered or unexported fields
}
func NewSymbols ¶
NewSymbols returns a Symbols object for symbol lookups.
func (Symbols) Iter ¶
func (s Symbols) Iter() StringIter
type TOC ¶
type TOC struct { Symbols uint64 Series uint64 LabelIndices uint64 LabelIndicesTable uint64 Postings uint64 PostingsTable uint64 FingerprintOffsets uint64 Metadata Metadata }
TOC represents index Table Of Content that states where each section of index starts.
func NewTOCFromByteSlice ¶
NewTOCFromByteSlice return parsed TOC from given index byte slice.
type Writer ¶
type Writer struct { Version int // contains filtered or unexported fields }
Writer implements the IndexWriter interface for the standard serialization format.
func NewWriter ¶
NewWriter returns a new Writer to the given filename. It serializes data in format version 2.
func (*Writer) AddSeries ¶
func (w *Writer) AddSeries(ref storage.SeriesRef, lset phlaremodel.Labels, fp model.Fingerprint, chunks ...index.ChunkMeta) error
AddSeries adds the series one at a time along with its chunks. Requires a specific fingerprint to be passed in the case where the "desired" fingerprint differs from what labels.Hash() produces. For example, multitenant TSDBs embed a tenant label, but the actual series has no such label and so the derived fingerprint differs.
func (*Writer) ReleaseIndexBuffer ¶
func (w *Writer) ReleaseIndexBuffer() *BufferWriter
todo better name, nicer api