Documentation
¶
Index ¶
- Variables
- func ReadBatch(i EntryIterator, size uint32) (*logproto.QueryResponse, uint32, error)
- func ReadSampleBatch(i SampleIterator, size uint32) (*logproto.SampleQueryResponse, uint32, error)
- type EntryIterator
- func NewEntryReversedIter(it EntryIterator) (EntryIterator, error)
- func NewNonOverlappingIterator(iterators []EntryIterator, labels string) EntryIterator
- func NewQueryClientIterator(client logproto.Querier_QueryClient, direction logproto.Direction) EntryIterator
- func NewQueryResponseIterator(ctx context.Context, resp *logproto.QueryResponse, ...) EntryIterator
- func NewReversedIter(it EntryIterator, limit uint32, preload bool) (EntryIterator, error)
- func NewStreamIterator(stream logproto.Stream) EntryIterator
- func NewStreamsIterator(ctx context.Context, streams []logproto.Stream, direction logproto.Direction) EntryIterator
- func NewTimeRangedIterator(it EntryIterator, mint, maxt time.Time) EntryIterator
- type HeapIterator
- func NewHeapIterator(ctx context.Context, is []EntryIterator, direction logproto.Direction) HeapIterator
- func NewHeapIteratorLoki(ctx context.Context, is []EntryIterator, direction logproto.Direction) HeapIterator
- func NewMergingIterator(ctx context.Context, its []EntryIterator, direction logproto.Direction) HeapIterator
- type PeekPromLabels
- type PeekingEntryIterator
- type PeekingSampleIterator
- type PromLabels
- type QuerySampleClient
- type SampleIterator
- func NewHeapSampleIterator(ctx context.Context, is []SampleIterator) SampleIterator
- func NewMultiSeriesIterator(ctx context.Context, series []logproto.Series) SampleIterator
- func NewNonOverlappingSampleIterator(iterators []SampleIterator, labels string) SampleIterator
- func NewSampleQueryClientIterator(client QuerySampleClient) SampleIterator
- func NewSampleQueryResponseIterator(ctx context.Context, resp *logproto.SampleQueryResponse) SampleIterator
- func NewSeriesIterator(series logproto.Series) SampleIterator
- func NewTimeRangedSampleIterator(it SampleIterator, mint, maxt int64) SampleIterator
- type Seekable
Constants ¶
This section is empty.
Variables ¶
var NoopIterator = noOpIterator{}
Functions ¶
func ReadBatch ¶
func ReadBatch(i EntryIterator, size uint32) (*logproto.QueryResponse, uint32, error)
ReadBatch reads a set of entries off an iterator.
func ReadSampleBatch ¶
func ReadSampleBatch(i SampleIterator, size uint32) (*logproto.SampleQueryResponse, uint32, error)
ReadBatch reads a set of entries off an iterator.
Types ¶
type EntryIterator ¶
type EntryIterator interface {
Next() bool
Entry() logproto.Entry
Labels() string
Error() error
Close() error
}
EntryIterator iterates over entries in time-order.
func NewEntryReversedIter ¶
func NewEntryReversedIter(it EntryIterator) (EntryIterator, error)
NewEntryReversedIter returns an iterator which loads all entries and iterates backward. The labels of entries is always empty.
func NewNonOverlappingIterator ¶
func NewNonOverlappingIterator(iterators []EntryIterator, labels string) EntryIterator
NewNonOverlappingIterator gives a chained iterator over a list of iterators.
func NewQueryClientIterator ¶
func NewQueryClientIterator( client logproto.Querier_QueryClient, direction logproto.Direction, ) EntryIterator
NewQueryClientIterator returns an iterator over a QueryClient.
func NewQueryResponseIterator ¶
func NewQueryResponseIterator( ctx context.Context, resp *logproto.QueryResponse, direction logproto.Direction, ) EntryIterator
NewQueryResponseIterator returns an iterator over a QueryResponse.
func NewReversedIter ¶
func NewReversedIter(it EntryIterator, limit uint32, preload bool) (EntryIterator, error)
NewReversedIter returns an iterator which loads all or up to N entries of an existing iterator, and then iterates over them backward. Preload entries when they are being queried with a timeout.
func NewStreamIterator ¶
func NewStreamIterator(stream logproto.Stream) EntryIterator
NewStreamIterator iterates over entries in a stream.
func NewStreamsIterator ¶
func NewStreamsIterator( ctx context.Context, streams []logproto.Stream, direction logproto.Direction, ) EntryIterator
NewStreamsIterator returns an iterator over logproto.Stream
func NewTimeRangedIterator ¶
func NewTimeRangedIterator(it EntryIterator, mint, maxt time.Time) EntryIterator
NewTimeRangedIterator returns an iterator which filters entries by time range. Note: Only works with iterators that go forwards.
type HeapIterator ¶
type HeapIterator interface {
EntryIterator
Peek() time.Time
Len() int
Push(EntryIterator)
}
HeapIterator iterates over a heap of iterators with ability to push new iterators and get some properties like time of entry at peek and len
Not safe for concurrent use
func NewHeapIterator ¶
func NewHeapIterator( ctx context.Context, is []EntryIterator, direction logproto.Direction, ) HeapIterator
func NewHeapIteratorLoki ¶
func NewHeapIteratorLoki( ctx context.Context, is []EntryIterator, direction logproto.Direction, ) HeapIterator
NewHeapIterator returns a new iterator which uses a heap to merge together entries for multiple interators.
func NewMergingIterator ¶
func NewMergingIterator( ctx context.Context, its []EntryIterator, direction logproto.Direction, ) HeapIterator
type PeekPromLabels ¶
type PeekingEntryIterator ¶
type PeekingEntryIterator interface {
EntryIterator
Peek() (string, logproto.Entry, bool)
}
PeekingEntryIterator is an entry iterator that can look ahead an entry using `Peek` without advancing its cursor.
func NewPeekingIterator ¶
func NewPeekingIterator(iter EntryIterator) PeekingEntryIterator
NewPeekingIterator creates a new peeking iterator.
type PeekingSampleIterator ¶
type PeekingSampleIterator interface {
SampleIterator
Peek() (string, logproto.Sample, bool)
}
PeekingSampleIterator is a sample iterator that can peek sample without moving the current sample.
func NewMergingSampleIterator ¶
func NewMergingSampleIterator(ctx context.Context, its []SampleIterator) PeekingSampleIterator
func NewPeekingSampleIterator ¶
func NewPeekingSampleIterator(iter SampleIterator) PeekingSampleIterator
type PromLabels ¶
type QuerySampleClient ¶
type QuerySampleClient interface {
Recv() (*logproto.SampleQueryResponse, error)
Context() context.Context
CloseSend() error
}
QuerySampleClient is GRPC stream client with only method used by the SampleQueryClientIterator
type SampleIterator ¶
type SampleIterator interface {
Next() bool
// todo(ctovena) we should add `Seek(t int64) bool`
// This way we can skip when ranging over samples.
Sample() logproto.Sample
Labels() string
Error() error
Close() error
}
SampleIterator iterates over samples in time-order.
func NewHeapSampleIterator ¶
func NewHeapSampleIterator(ctx context.Context, is []SampleIterator) SampleIterator
func NewMultiSeriesIterator ¶
func NewMultiSeriesIterator(ctx context.Context, series []logproto.Series) SampleIterator
NewMultiSeriesIterator returns an iterator over multiple logproto.Series
func NewNonOverlappingSampleIterator ¶
func NewNonOverlappingSampleIterator(iterators []SampleIterator, labels string) SampleIterator
NewNonOverlappingSampleIterator gives a chained iterator over a list of iterators.
func NewSampleQueryClientIterator ¶
func NewSampleQueryClientIterator(client QuerySampleClient) SampleIterator
NewQueryClientIterator returns an iterator over a QueryClient.
func NewSampleQueryResponseIterator ¶
func NewSampleQueryResponseIterator( ctx context.Context, resp *logproto.SampleQueryResponse, ) SampleIterator
NewSampleQueryResponseIterator returns an iterator over a SampleQueryResponse.
func NewSeriesIterator ¶
func NewSeriesIterator(series logproto.Series) SampleIterator
NewSeriesIterator iterates over sample in a series.
func NewTimeRangedSampleIterator ¶
func NewTimeRangedSampleIterator(it SampleIterator, mint, maxt int64) SampleIterator
NewTimeRangedSampleIterator returns an iterator which filters entries by time range.