Documentation
¶
Overview ¶
Package stats provides primitives for recording metrics across the query path. Statistics are passed through the query context. To start a new query statistics context use:
statsCtx, ctx := stats.NewContext(ctx)
Then you can update statistics by mutating data by using:
statsCtx.Add...(1)
To get the statistic from the current context you can use:
statsCtx := stats.FromContext(ctx)
Finally to get a snapshot of the current query statistic use
statsCtx.Result(time.Since(start), queueTime, totalEntriesReturned)
Index ¶
- Variables
- func ConvertSecondsToNanoseconds(seconds float64) time.Duration
- func JoinIngesters(ctx context.Context, inc Ingester)
- func JoinResults(ctx context.Context, res Result)
- type Cache
- func (c *Cache) CacheDownloadTime() time.Duration
- func (c *Cache) CacheQueryLengthServed() time.Duration
- func (*Cache) Descriptor() ([]byte, []int)
- func (this *Cache) Equal(that interface{}) bool
- func (m *Cache) GetBytesReceived() int64
- func (m *Cache) GetBytesSent() int64
- func (m *Cache) GetDownloadTime() int64
- func (m *Cache) GetEntriesFound() int32
- func (m *Cache) GetEntriesRequested() int32
- func (m *Cache) GetEntriesStored() int32
- func (m *Cache) GetQueryLengthServed() int64
- func (m *Cache) GetRequests() int32
- func (this *Cache) GoString() string
- func (m *Cache) Marshal() (dAtA []byte, err error)
- func (m *Cache) MarshalTo(dAtA []byte) (int, error)
- func (m *Cache) MarshalToSizedBuffer(dAtA []byte) (int, error)
- func (c *Cache) Merge(m Cache)
- func (*Cache) ProtoMessage()
- func (m *Cache) Reset()
- func (m *Cache) Size() (n int)
- func (this *Cache) String() string
- func (m *Cache) Unmarshal(dAtA []byte) error
- func (m *Cache) XXX_DiscardUnknown()
- func (m *Cache) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
- func (m *Cache) XXX_Merge(src proto.Message)
- func (m *Cache) XXX_Size() int
- func (m *Cache) XXX_Unmarshal(b []byte) error
- type CacheType
- type Caches
- func (*Caches) Descriptor() ([]byte, []int)
- func (this *Caches) Equal(that interface{}) bool
- func (m *Caches) GetChunk() Cache
- func (m *Caches) GetIndex() Cache
- func (m *Caches) GetInstantMetricResult() Cache
- func (m *Caches) GetLabelResult() Cache
- func (m *Caches) GetResult() Cache
- func (m *Caches) GetSeriesResult() Cache
- func (m *Caches) GetStatsResult() Cache
- func (m *Caches) GetVolumeResult() Cache
- func (this *Caches) GoString() string
- func (m *Caches) Marshal() (dAtA []byte, err error)
- func (m *Caches) MarshalTo(dAtA []byte) (int, error)
- func (m *Caches) MarshalToSizedBuffer(dAtA []byte) (int, error)
- func (c *Caches) Merge(m Caches)
- func (*Caches) ProtoMessage()
- func (m *Caches) Reset()
- func (m *Caches) Size() (n int)
- func (this *Caches) String() string
- func (m *Caches) Unmarshal(dAtA []byte) error
- func (m *Caches) XXX_DiscardUnknown()
- func (m *Caches) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
- func (m *Caches) XXX_Merge(src proto.Message)
- func (m *Caches) XXX_Size() int
- func (m *Caches) XXX_Unmarshal(b []byte) error
- type Chunk
- func (*Chunk) Descriptor() ([]byte, []int)
- func (this *Chunk) Equal(that interface{}) bool
- func (m *Chunk) GetCompressedBytes() int64
- func (m *Chunk) GetDecompressedBytes() int64
- func (m *Chunk) GetDecompressedLines() int64
- func (m *Chunk) GetDecompressedStructuredMetadataBytes() int64
- func (m *Chunk) GetHeadChunkBytes() int64
- func (m *Chunk) GetHeadChunkLines() int64
- func (m *Chunk) GetHeadChunkStructuredMetadataBytes() int64
- func (m *Chunk) GetPostFilterLines() int64
- func (m *Chunk) GetTotalDuplicates() int64
- func (this *Chunk) GoString() string
- func (m *Chunk) Marshal() (dAtA []byte, err error)
- func (m *Chunk) MarshalTo(dAtA []byte) (int, error)
- func (m *Chunk) MarshalToSizedBuffer(dAtA []byte) (int, error)
- func (*Chunk) ProtoMessage()
- func (m *Chunk) Reset()
- func (m *Chunk) Size() (n int)
- func (this *Chunk) String() string
- func (m *Chunk) Unmarshal(dAtA []byte) error
- func (m *Chunk) XXX_DiscardUnknown()
- func (m *Chunk) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
- func (m *Chunk) XXX_Merge(src proto.Message)
- func (m *Chunk) XXX_Size() int
- func (m *Chunk) XXX_Unmarshal(b []byte) error
- type Component
- type Context
- func (c *Context) AddCacheBytesRetrieved(t CacheType, i int)
- func (c *Context) AddCacheBytesSent(t CacheType, i int)
- func (c *Context) AddCacheDownloadTime(t CacheType, i time.Duration)
- func (c *Context) AddCacheEntriesFound(t CacheType, i int)
- func (c *Context) AddCacheEntriesRequested(t CacheType, i int)
- func (c *Context) AddCacheEntriesStored(t CacheType, i int)
- func (c *Context) AddCacheQueryLengthServed(t CacheType, i time.Duration)
- func (c *Context) AddCacheRequest(t CacheType, i int)
- func (c *Context) AddChunkRefsFetchTime(i time.Duration)
- func (c *Context) AddChunksDownloadTime(i time.Duration)
- func (c *Context) AddChunksDownloaded(i int64)
- func (c *Context) AddChunksRef(i int64)
- func (c *Context) AddCompressedBytes(i int64)
- func (c *Context) AddCongestionControlLatency(i time.Duration)
- func (c *Context) AddDecompressedBytes(i int64)
- func (c *Context) AddDecompressedLines(i int64)
- func (c *Context) AddDecompressedStructuredMetadataBytes(i int64)
- func (c *Context) AddDuplicates(i int64)
- func (c *Context) AddHeadChunkBytes(i int64)
- func (c *Context) AddHeadChunkLines(i int64)
- func (c *Context) AddHeadChunkStructuredMetadataBytes(i int64)
- func (c *Context) AddIndexPostFilterChunkRefs(i int64)
- func (c *Context) AddIndexTotalChunkRefs(i int64)
- func (c *Context) AddIngesterBatch(size int64)
- func (c *Context) AddIngesterReached(i int32)
- func (c *Context) AddIngesterTotalChunkMatched(i int64)
- func (c *Context) AddPageBatches(i int64)
- func (c *Context) AddPageDownloadTime(duration time.Duration)
- func (c *Context) AddPagesDownloaded(i int64)
- func (c *Context) AddPagesDownloadedBytes(i int64)
- func (c *Context) AddPagesScanned(i int64)
- func (c *Context) AddPipelineWrapperFilterdLines(i int64)
- func (c *Context) AddPostFilterLines(i int64)
- func (c *Context) AddPostFilterRows(i int64)
- func (c *Context) AddPostPredicateDecompressedBytes(i int64)
- func (c *Context) AddPostPredicateRows(i int64)
- func (c *Context) AddPostPredicateStructuredMetadataBytes(i int64)
- func (c *Context) AddPrePredicateDecompressedBytes(i int64)
- func (c *Context) AddPrePredicateDecompressedRows(i int64)
- func (c *Context) AddSplitQueries(num int64)
- func (c *Context) AddTotalRowsAvailable(i int64)
- func (c *Context) Caches() Caches
- func (c *Context) Index() Index
- func (c *Context) Ingester() Ingester
- func (c *Context) MergeIndex(i Index)
- func (c *Context) Reset()
- func (c *Context) Result(execTime time.Duration, queueTime time.Duration, totalEntriesReturned int) Result
- func (c *Context) SetQueryReferencedStructuredMetadata()
- func (c *Context) SetQueryUsedV2Engine()
- func (c *Context) Store() Store
- type Dataobj
- func (*Dataobj) Descriptor() ([]byte, []int)
- func (this *Dataobj) Equal(that interface{}) bool
- func (m *Dataobj) GetPageBatches() int64
- func (m *Dataobj) GetPagesDownloaded() int64
- func (m *Dataobj) GetPagesDownloadedBytes() int64
- func (m *Dataobj) GetPagesScanned() int64
- func (m *Dataobj) GetPostFilterRows() int64
- func (m *Dataobj) GetPostPredicateDecompressedBytes() int64
- func (m *Dataobj) GetPostPredicateRows() int64
- func (m *Dataobj) GetPostPredicateStructuredMetadataBytes() int64
- func (m *Dataobj) GetPrePredicateDecompressedBytes() int64
- func (m *Dataobj) GetPrePredicateDecompressedRows() int64
- func (m *Dataobj) GetPrePredicateDecompressedStructuredMetadataBytes() int64
- func (m *Dataobj) GetTotalPageDownloadTime() int64
- func (m *Dataobj) GetTotalRowsAvailable() int64
- func (this *Dataobj) GoString() string
- func (m *Dataobj) Marshal() (dAtA []byte, err error)
- func (m *Dataobj) MarshalTo(dAtA []byte) (int, error)
- func (m *Dataobj) MarshalToSizedBuffer(dAtA []byte) (int, error)
- func (*Dataobj) ProtoMessage()
- func (m *Dataobj) Reset()
- func (m *Dataobj) Size() (n int)
- func (this *Dataobj) String() string
- func (m *Dataobj) Unmarshal(dAtA []byte) error
- func (m *Dataobj) XXX_DiscardUnknown()
- func (m *Dataobj) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
- func (m *Dataobj) XXX_Merge(src proto.Message)
- func (m *Dataobj) XXX_Size() int
- func (m *Dataobj) XXX_Unmarshal(b []byte) error
- type Index
- func (*Index) Descriptor() ([]byte, []int)
- func (this *Index) Equal(that interface{}) bool
- func (m *Index) GetPostFilterChunks() int64
- func (m *Index) GetShardsDuration() int64
- func (m *Index) GetTotalChunks() int64
- func (m *Index) GetUsedBloomFilters() bool
- func (this *Index) GoString() string
- func (m *Index) Marshal() (dAtA []byte, err error)
- func (m *Index) MarshalTo(dAtA []byte) (int, error)
- func (m *Index) MarshalToSizedBuffer(dAtA []byte) (int, error)
- func (i *Index) Merge(m Index)
- func (*Index) ProtoMessage()
- func (m *Index) Reset()
- func (m *Index) Size() (n int)
- func (this *Index) String() string
- func (m *Index) Unmarshal(dAtA []byte) error
- func (m *Index) XXX_DiscardUnknown()
- func (m *Index) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
- func (m *Index) XXX_Merge(src proto.Message)
- func (m *Index) XXX_Size() int
- func (m *Index) XXX_Unmarshal(b []byte) error
- type Ingester
- func (*Ingester) Descriptor() ([]byte, []int)
- func (this *Ingester) Equal(that interface{}) bool
- func (m *Ingester) GetStore() Store
- func (m *Ingester) GetTotalBatches() int64
- func (m *Ingester) GetTotalChunksMatched() int64
- func (m *Ingester) GetTotalLinesSent() int64
- func (m *Ingester) GetTotalReached() int32
- func (this *Ingester) GoString() string
- func (m *Ingester) Marshal() (dAtA []byte, err error)
- func (m *Ingester) MarshalTo(dAtA []byte) (int, error)
- func (m *Ingester) MarshalToSizedBuffer(dAtA []byte) (int, error)
- func (i *Ingester) Merge(m Ingester)
- func (*Ingester) ProtoMessage()
- func (m *Ingester) Reset()
- func (m *Ingester) Size() (n int)
- func (this *Ingester) String() string
- func (m *Ingester) Unmarshal(dAtA []byte) error
- func (m *Ingester) XXX_DiscardUnknown()
- func (m *Ingester) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
- func (m *Ingester) XXX_Merge(src proto.Message)
- func (m *Ingester) XXX_Size() int
- func (m *Ingester) XXX_Unmarshal(b []byte) error
- type Querier
- func (*Querier) Descriptor() ([]byte, []int)
- func (this *Querier) Equal(that interface{}) bool
- func (m *Querier) GetStore() Store
- func (this *Querier) GoString() string
- func (m *Querier) Marshal() (dAtA []byte, err error)
- func (m *Querier) MarshalTo(dAtA []byte) (int, error)
- func (m *Querier) MarshalToSizedBuffer(dAtA []byte) (int, error)
- func (q *Querier) Merge(m Querier)
- func (*Querier) ProtoMessage()
- func (m *Querier) Reset()
- func (m *Querier) Size() (n int)
- func (this *Querier) String() string
- func (m *Querier) Unmarshal(dAtA []byte) error
- func (m *Querier) XXX_DiscardUnknown()
- func (m *Querier) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
- func (m *Querier) XXX_Merge(src proto.Message)
- func (m *Querier) XXX_Size() int
- func (m *Querier) XXX_Unmarshal(b []byte) error
- type Result
- func (r Result) ChunkRefsFetchTime() time.Duration
- func (r Result) ChunksDownloadTime() time.Duration
- func (r *Result) ComputeSummary(execTime time.Duration, queueTime time.Duration, totalEntriesReturned int)
- func (r Result) CongestionControlLatency() time.Duration
- func (*Result) Descriptor() ([]byte, []int)
- func (this *Result) Equal(that interface{}) bool
- func (m *Result) GetCaches() Caches
- func (m *Result) GetIndex() Index
- func (m *Result) GetIngester() Ingester
- func (m *Result) GetQuerier() Querier
- func (m *Result) GetSummary() Summary
- func (this *Result) GoString() string
- func (r Result) KVList() []any
- func (r Result) Log(logger log.Logger)
- func (m *Result) Marshal() (dAtA []byte, err error)
- func (m *Result) MarshalTo(dAtA []byte) (int, error)
- func (m *Result) MarshalToSizedBuffer(dAtA []byte) (int, error)
- func (r *Result) Merge(m Result)
- func (r *Result) MergeSplit(m Result)
- func (r Result) PipelineWrapperFilteredLines() int64
- func (*Result) ProtoMessage()
- func (r Result) QueryReferencedStructuredMetadata() bool
- func (r Result) QueryUsedV2Engine() bool
- func (m *Result) Reset()
- func (m *Result) Size() (n int)
- func (this *Result) String() string
- func (r Result) TotalChunksDownloaded() int64
- func (r Result) TotalChunksRef() int64
- func (r Result) TotalDecompressedBytes() int64
- func (r Result) TotalDecompressedLines() int64
- func (r Result) TotalDuplicates() int64
- func (m *Result) Unmarshal(dAtA []byte) error
- func (m *Result) XXX_DiscardUnknown()
- func (m *Result) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
- func (m *Result) XXX_Merge(src proto.Message)
- func (m *Result) XXX_Size() int
- func (m *Result) XXX_Unmarshal(b []byte) error
- type Store
- func (s *Store) ChunksDownloadDuration() time.Duration
- func (*Store) Descriptor() ([]byte, []int)
- func (this *Store) Equal(that interface{}) bool
- func (m *Store) GetChunk() Chunk
- func (m *Store) GetChunkRefsFetchTime() int64
- func (m *Store) GetChunksDownloadTime() int64
- func (m *Store) GetCongestionControlLatency() int64
- func (m *Store) GetDataobj() Dataobj
- func (m *Store) GetPipelineWrapperFilteredLines() int64
- func (m *Store) GetQueryReferencedStructured() bool
- func (m *Store) GetQueryUsedV2Engine() bool
- func (m *Store) GetTotalChunksDownloaded() int64
- func (m *Store) GetTotalChunksRef() int64
- func (this *Store) GoString() string
- func (m *Store) Marshal() (dAtA []byte, err error)
- func (m *Store) MarshalTo(dAtA []byte) (int, error)
- func (m *Store) MarshalToSizedBuffer(dAtA []byte) (int, error)
- func (s *Store) Merge(m Store)
- func (*Store) ProtoMessage()
- func (m *Store) Reset()
- func (m *Store) Size() (n int)
- func (this *Store) String() string
- func (m *Store) Unmarshal(dAtA []byte) error
- func (m *Store) XXX_DiscardUnknown()
- func (m *Store) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
- func (m *Store) XXX_Merge(src proto.Message)
- func (m *Store) XXX_Size() int
- func (m *Store) XXX_Unmarshal(b []byte) error
- type Summary
- func (*Summary) Descriptor() ([]byte, []int)
- func (this *Summary) Equal(that interface{}) bool
- func (m *Summary) GetBytesProcessedPerSecond() int64
- func (m *Summary) GetExecTime() float64
- func (m *Summary) GetLinesProcessedPerSecond() int64
- func (m *Summary) GetQueueTime() float64
- func (m *Summary) GetShards() int64
- func (m *Summary) GetSplits() int64
- func (m *Summary) GetSubqueries() int64
- func (m *Summary) GetTotalBytesProcessed() int64
- func (m *Summary) GetTotalEntriesReturned() int64
- func (m *Summary) GetTotalLinesProcessed() int64
- func (m *Summary) GetTotalPostFilterLines() int64
- func (m *Summary) GetTotalStructuredMetadataBytesProcessed() int64
- func (this *Summary) GoString() string
- func (m *Summary) Marshal() (dAtA []byte, err error)
- func (m *Summary) MarshalTo(dAtA []byte) (int, error)
- func (m *Summary) MarshalToSizedBuffer(dAtA []byte) (int, error)
- func (s *Summary) Merge(m Summary)
- func (*Summary) ProtoMessage()
- func (m *Summary) Reset()
- func (m *Summary) Size() (n int)
- func (this *Summary) String() string
- func (m *Summary) Unmarshal(dAtA []byte) error
- func (m *Summary) XXX_DiscardUnknown()
- func (m *Summary) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
- func (m *Summary) XXX_Merge(src proto.Message)
- func (m *Summary) XXX_Size() int
- func (m *Summary) XXX_Unmarshal(b []byte) error
Constants ¶
This section is empty.
Variables ¶
var ( ErrInvalidLengthStats = fmt.Errorf("proto: negative length found during unmarshaling") ErrIntOverflowStats = fmt.Errorf("proto: integer overflow") )
Functions ¶
func ConvertSecondsToNanoseconds ¶
ConvertSecondsToNanoseconds converts time.Duration representation of seconds (float64) into time.Duration representation of nanoseconds (int64)
func JoinIngesters ¶
JoinIngesters joins the ingester result statistics in a concurrency-safe manner.
func JoinResults ¶
JoinResults merges a Result with the embedded Result in a context in a concurrency-safe manner.
Types ¶
type Cache ¶
type Cache struct {
EntriesFound int32 `protobuf:"varint,1,opt,name=entriesFound,proto3" json:"entriesFound"`
EntriesRequested int32 `protobuf:"varint,2,opt,name=entriesRequested,proto3" json:"entriesRequested"`
EntriesStored int32 `protobuf:"varint,3,opt,name=entriesStored,proto3" json:"entriesStored"`
BytesReceived int64 `protobuf:"varint,4,opt,name=bytesReceived,proto3" json:"bytesReceived"`
BytesSent int64 `protobuf:"varint,5,opt,name=bytesSent,proto3" json:"bytesSent"`
Requests int32 `protobuf:"varint,6,opt,name=requests,proto3" json:"requests"`
DownloadTime int64 `protobuf:"varint,7,opt,name=downloadTime,proto3" json:"downloadTime"`
QueryLengthServed int64 `protobuf:"varint,8,opt,name=queryLengthServed,proto3" json:"queryLengthServed"`
}
func (*Cache) CacheDownloadTime ¶
func (*Cache) CacheQueryLengthServed ¶
func (*Cache) Descriptor ¶
func (*Cache) GetBytesReceived ¶
func (*Cache) GetBytesSent ¶
func (*Cache) GetDownloadTime ¶
func (*Cache) GetEntriesFound ¶
func (*Cache) GetEntriesRequested ¶
func (*Cache) GetEntriesStored ¶
func (*Cache) GetQueryLengthServed ¶
func (*Cache) GetRequests ¶
func (*Cache) ProtoMessage ¶
func (*Cache) ProtoMessage()
func (*Cache) XXX_DiscardUnknown ¶
func (m *Cache) XXX_DiscardUnknown()
func (*Cache) XXX_Marshal ¶
func (*Cache) XXX_Unmarshal ¶
type CacheType ¶
type CacheType string
const ( ChunkCache CacheType = "chunk" //nolint:staticcheck IndexCache CacheType = "index" //nolint:staticcheck ResultCache CacheType = "result" //nolint:staticcheck StatsResultCache CacheType = "stats-result" //nolint:staticcheck VolumeResultCache CacheType = "volume-result" //nolint:staticcheck InstantMetricResultsCache CacheType = "instant-metric-result" // nolint:staticcheck WriteDedupeCache CacheType = "write-dedupe" //nolint:staticcheck SeriesResultCache CacheType = "series-result" //nolint:staticcheck LabelResultCache CacheType = "label-result" //nolint:staticcheck BloomFilterCache CacheType = "bloom-filter" //nolint:staticcheck BloomBlocksCache CacheType = "bloom-blocks" //nolint:staticcheck BloomMetasCache CacheType = "bloom-metas" //nolint:staticcheck )
type Caches ¶
type Caches struct {
Chunk Cache `protobuf:"bytes,1,opt,name=chunk,proto3" json:"chunk"`
Index Cache `protobuf:"bytes,2,opt,name=index,proto3" json:"index"`
Result Cache `protobuf:"bytes,3,opt,name=result,proto3" json:"result"`
StatsResult Cache `protobuf:"bytes,4,opt,name=statsResult,proto3" json:"statsResult"`
VolumeResult Cache `protobuf:"bytes,5,opt,name=volumeResult,proto3" json:"volumeResult"`
SeriesResult Cache `protobuf:"bytes,6,opt,name=seriesResult,proto3" json:"seriesResult"`
LabelResult Cache `protobuf:"bytes,7,opt,name=labelResult,proto3" json:"labelResult"`
InstantMetricResult Cache `protobuf:"bytes,8,opt,name=instantMetricResult,proto3" json:"instantMetricResult"`
}
func (*Caches) Descriptor ¶
func (*Caches) GetInstantMetricResult ¶
func (*Caches) GetLabelResult ¶
func (*Caches) GetSeriesResult ¶
func (*Caches) GetStatsResult ¶
func (*Caches) GetVolumeResult ¶
func (*Caches) MarshalToSizedBuffer ¶
func (*Caches) ProtoMessage ¶
func (*Caches) ProtoMessage()
func (*Caches) XXX_DiscardUnknown ¶
func (m *Caches) XXX_DiscardUnknown()
func (*Caches) XXX_Marshal ¶
func (*Caches) XXX_Unmarshal ¶
type Chunk ¶
type Chunk struct {
// Total bytes processed but was already in memory (found in the headchunk). Includes structured metadata bytes.
HeadChunkBytes int64 `protobuf:"varint,4,opt,name=headChunkBytes,proto3" json:"headChunkBytes"`
// Total lines processed but was already in memory. (found in the headchunk)
HeadChunkLines int64 `protobuf:"varint,5,opt,name=headChunkLines,proto3" json:"headChunkLines"`
// Total bytes decompressed and processed from chunks. Includes structured metadata bytes.
DecompressedBytes int64 `protobuf:"varint,6,opt,name=decompressedBytes,proto3" json:"decompressedBytes"`
// Total lines decompressed and processed from chunks.
DecompressedLines int64 `protobuf:"varint,7,opt,name=decompressedLines,proto3" json:"decompressedLines"`
// Total bytes of compressed chunks (blocks) processed.
CompressedBytes int64 `protobuf:"varint,8,opt,name=compressedBytes,proto3" json:"compressedBytes"`
// Total duplicates found while processing.
TotalDuplicates int64 `protobuf:"varint,9,opt,name=totalDuplicates,proto3" json:"totalDuplicates"`
// Total lines post filtering
PostFilterLines int64 `protobuf:"varint,10,opt,name=postFilterLines,proto3" json:"postFilterLines"`
// Total bytes processed for metadata but was already in memory. (found in the headchunk)
HeadChunkStructuredMetadataBytes int64 `protobuf:"varint,11,opt,name=headChunkStructuredMetadataBytes,proto3" json:"headChunkStructuredMetadataBytes"`
// Total bytes of entries metadata decompressed and processed from chunks.
DecompressedStructuredMetadataBytes int64 `protobuf:"varint,12,opt,name=decompressedStructuredMetadataBytes,proto3" json:"decompressedStructuredMetadataBytes"`
}
func (*Chunk) Descriptor ¶
func (*Chunk) GetCompressedBytes ¶
func (*Chunk) GetDecompressedBytes ¶
func (*Chunk) GetDecompressedLines ¶
func (*Chunk) GetDecompressedStructuredMetadataBytes ¶
func (*Chunk) GetHeadChunkBytes ¶
func (*Chunk) GetHeadChunkLines ¶
func (*Chunk) GetHeadChunkStructuredMetadataBytes ¶
func (*Chunk) GetPostFilterLines ¶
func (*Chunk) GetTotalDuplicates ¶
func (*Chunk) ProtoMessage ¶
func (*Chunk) ProtoMessage()
func (*Chunk) XXX_DiscardUnknown ¶
func (m *Chunk) XXX_DiscardUnknown()
func (*Chunk) XXX_Marshal ¶
func (*Chunk) XXX_Unmarshal ¶
type Context ¶
type Context struct {
// contains filtered or unexported fields
}
Context is the statistics context. It is passed through the query path and accumulates statistics.
func FromContext ¶
FromContext returns the statistics context.
func NewContext ¶
NewContext creates a new statistics context
func (*Context) AddCacheBytesRetrieved ¶
AddCacheBytesRetrieved counts the amount of bytes retrieved from the cache
func (*Context) AddCacheBytesSent ¶
AddCacheBytesSent counts the amount of bytes sent to the cache It should be noted that if a background writeback (https://grafana.com/docs/loki/latest/configuration/#cache_config) is configured we cannot know if these bytes actually got stored or not as this happens asynchronously
func (*Context) AddCacheDownloadTime ¶
AddCacheDownloadTime measures the time to download the data from cache
func (*Context) AddCacheEntriesFound ¶
AddCacheEntriesFound counts the number of cache entries requested and found
func (*Context) AddCacheEntriesRequested ¶
AddCacheEntriesRequested counts the number of keys requested from the cache
func (*Context) AddCacheEntriesStored ¶
AddCacheEntriesStored counts the number of keys *attempted* to be stored in the cache It should be noted that if a background writeback (https://grafana.com/docs/loki/latest/configuration/#cache_config) is configured we cannot know if these store attempts succeeded or not as this happens asynchronously
func (*Context) AddCacheQueryLengthServed ¶
AddCacheQueryLengthServed measures the length of the query served from cache
func (*Context) AddCacheRequest ¶
AddCacheRequest counts the number of fetch/store requests to the cache
func (*Context) AddChunkRefsFetchTime ¶
func (*Context) AddChunksDownloadTime ¶
func (*Context) AddChunksDownloaded ¶
func (*Context) AddChunksRef ¶
func (*Context) AddCompressedBytes ¶
func (*Context) AddCongestionControlLatency ¶
func (*Context) AddDecompressedBytes ¶
func (*Context) AddDecompressedLines ¶
func (*Context) AddDecompressedStructuredMetadataBytes ¶
func (*Context) AddDuplicates ¶
func (*Context) AddHeadChunkBytes ¶
func (*Context) AddHeadChunkLines ¶
func (*Context) AddHeadChunkStructuredMetadataBytes ¶
func (*Context) AddIndexPostFilterChunkRefs ¶ added in v3.3.0
func (*Context) AddIndexTotalChunkRefs ¶ added in v3.3.0
func (*Context) AddIngesterBatch ¶
func (*Context) AddIngesterReached ¶
func (*Context) AddIngesterTotalChunkMatched ¶
func (*Context) AddPageBatches ¶ added in v3.6.0
func (*Context) AddPageDownloadTime ¶ added in v3.6.0
func (*Context) AddPagesDownloaded ¶ added in v3.6.0
func (*Context) AddPagesDownloadedBytes ¶ added in v3.6.0
func (*Context) AddPagesScanned ¶ added in v3.6.0
func (*Context) AddPipelineWrapperFilterdLines ¶
func (*Context) AddPostFilterLines ¶
func (*Context) AddPostFilterRows ¶ added in v3.6.0
func (*Context) AddPostPredicateDecompressedBytes ¶ added in v3.6.0
func (*Context) AddPostPredicateRows ¶ added in v3.6.0
func (*Context) AddPostPredicateStructuredMetadataBytes ¶ added in v3.6.0
func (*Context) AddPrePredicateDecompressedBytes ¶ added in v3.6.0
func (*Context) AddPrePredicateDecompressedRows ¶ added in v3.6.0
func (*Context) AddSplitQueries ¶
func (*Context) AddTotalRowsAvailable ¶ added in v3.6.0
func (*Context) MergeIndex ¶ added in v3.4.0
Merge index stats from multiple response in a concurrency-safe manner
func (*Context) Result ¶
func (c *Context) Result(execTime time.Duration, queueTime time.Duration, totalEntriesReturned int) Result
Result calculates the summary based on store and ingester data.
func (*Context) SetQueryReferencedStructuredMetadata ¶
func (c *Context) SetQueryReferencedStructuredMetadata()
func (*Context) SetQueryUsedV2Engine ¶ added in v3.6.0
func (c *Context) SetQueryUsedV2Engine()
type Dataobj ¶ added in v3.6.0
type Dataobj struct {
// Total number of rows decompressed from storage in the primary fill stage.
PrePredicateDecompressedRows int64 `protobuf:"varint,1,opt,name=prePredicateDecompressedRows,proto3" json:"prePredicateDecompressedRows"`
// Total number of bytes decompressed from storage in the primary fill stage.
PrePredicateDecompressedBytes int64 `protobuf:"varint,2,opt,name=prePredicateDecompressedBytes,proto3" json:"prePredicateDecompressedBytes"`
// Total number of bytes decompressed from storage for structured metadata in the primary fill stage.
PrePredicateDecompressedStructuredMetadataBytes int64 `` /* 138-byte string literal not displayed */
// Total number of rows that passed the predicate
PostPredicateRows int64 `protobuf:"varint,4,opt,name=postPredicateRows,proto3" json:"postPredicateRows"`
// Number of additional bytes decompressed from storage in the secondary fill stage.
PostPredicateDecompressedBytes int64 `protobuf:"varint,5,opt,name=postPredicateDecompressedBytes,proto3" json:"postPredicateDecompressedBytes"`
// Total number of structured metadata bytes decompressed from storage in the secondary fill stage.
PostPredicateStructuredMetadataBytes int64 `protobuf:"varint,6,opt,name=postPredicateStructuredMetadataBytes,proto3" json:"postPredicateStructuredMetadataBytes"`
// Total rows that passed the pipeline filter
PostFilterRows int64 `protobuf:"varint,7,opt,name=postFilterRows,proto3" json:"postFilterRows"`
// Total pages scanned
PagesScanned int64 `protobuf:"varint,8,opt,name=pagesScanned,proto3" json:"pagesScanned"`
// Total pages downloaded
PagesDownloaded int64 `protobuf:"varint,9,opt,name=pagesDownloaded,proto3" json:"pagesDownloaded"`
// Total page bytes downloaded
PagesDownloadedBytes int64 `protobuf:"varint,10,opt,name=pagesDownloadedBytes,proto3" json:"pagesDownloadedBytes"`
// Total requests to storage to fetch desired pages
PageBatches int64 `protobuf:"varint,11,opt,name=pageBatches,proto3" json:"pageBatches"`
// Total possible rows in the data object
TotalRowsAvailable int64 `protobuf:"varint,12,opt,name=totalRowsAvailable,proto3" json:"totalRowsAvailable"`
// Time spent fetching page metadata or data from object storage in nanoseconds.
TotalPageDownloadTime int64 `protobuf:"varint,13,opt,name=totalPageDownloadTime,proto3" json:"totalPageDownloadTime"`
}
func (*Dataobj) Descriptor ¶ added in v3.6.0
func (*Dataobj) GetPageBatches ¶ added in v3.6.0
func (*Dataobj) GetPagesDownloaded ¶ added in v3.6.0
func (*Dataobj) GetPagesDownloadedBytes ¶ added in v3.6.0
func (*Dataobj) GetPagesScanned ¶ added in v3.6.0
func (*Dataobj) GetPostFilterRows ¶ added in v3.6.0
func (*Dataobj) GetPostPredicateDecompressedBytes ¶ added in v3.6.0
func (*Dataobj) GetPostPredicateRows ¶ added in v3.6.0
func (*Dataobj) GetPostPredicateStructuredMetadataBytes ¶ added in v3.6.0
func (*Dataobj) GetPrePredicateDecompressedBytes ¶ added in v3.6.0
func (*Dataobj) GetPrePredicateDecompressedRows ¶ added in v3.6.0
func (*Dataobj) GetPrePredicateDecompressedStructuredMetadataBytes ¶ added in v3.6.0
func (*Dataobj) GetTotalPageDownloadTime ¶ added in v3.6.0
func (*Dataobj) GetTotalRowsAvailable ¶ added in v3.6.0
func (*Dataobj) MarshalToSizedBuffer ¶ added in v3.6.0
func (*Dataobj) ProtoMessage ¶ added in v3.6.0
func (*Dataobj) ProtoMessage()
func (*Dataobj) XXX_DiscardUnknown ¶ added in v3.6.0
func (m *Dataobj) XXX_DiscardUnknown()
func (*Dataobj) XXX_Marshal ¶ added in v3.6.0
func (*Dataobj) XXX_Unmarshal ¶ added in v3.6.0
type Index ¶
type Index struct {
// Total chunks
TotalChunks int64 `protobuf:"varint,1,opt,name=totalChunks,proto3" json:"totalChunks"`
// Post-filtered chunks
PostFilterChunks int64 `protobuf:"varint,2,opt,name=postFilterChunks,proto3" json:"postFilterChunks"`
// Nanosecond duration spent fetching shards
ShardsDuration int64 `protobuf:"varint,3,opt,name=shardsDuration,proto3" json:"shardsDuration"`
// Indicates whether the query used blooms to filter chunks
UsedBloomFilters bool `protobuf:"varint,4,opt,name=usedBloomFilters,proto3" json:"usedBloomFilters"`
}
Statistics from Index queries TODO(owen-d): include bytes. Needs some index methods added to return _sized_ chunk refs to know
func (*Index) Descriptor ¶
func (*Index) GetPostFilterChunks ¶
func (*Index) GetShardsDuration ¶ added in v3.1.0
func (*Index) GetTotalChunks ¶
func (*Index) GetUsedBloomFilters ¶ added in v3.3.0
func (*Index) ProtoMessage ¶
func (*Index) ProtoMessage()
func (*Index) XXX_DiscardUnknown ¶
func (m *Index) XXX_DiscardUnknown()
func (*Index) XXX_Marshal ¶
func (*Index) XXX_Unmarshal ¶
type Ingester ¶
type Ingester struct {
// Total ingester reached for this query.
TotalReached int32 `protobuf:"varint,1,opt,name=totalReached,proto3" json:"totalReached"`
// Total of chunks matched by the query from ingesters
TotalChunksMatched int64 `protobuf:"varint,2,opt,name=totalChunksMatched,proto3" json:"totalChunksMatched"`
// Total of batches sent from ingesters.
TotalBatches int64 `protobuf:"varint,3,opt,name=totalBatches,proto3" json:"totalBatches"`
// Total lines sent by ingesters.
TotalLinesSent int64 `protobuf:"varint,4,opt,name=totalLinesSent,proto3" json:"totalLinesSent"`
Store Store `protobuf:"bytes,5,opt,name=store,proto3" json:"store"`
}
func (*Ingester) Descriptor ¶
func (*Ingester) GetTotalBatches ¶
func (*Ingester) GetTotalChunksMatched ¶
func (*Ingester) GetTotalLinesSent ¶
func (*Ingester) GetTotalReached ¶
func (*Ingester) MarshalToSizedBuffer ¶
func (*Ingester) ProtoMessage ¶
func (*Ingester) ProtoMessage()
func (*Ingester) XXX_DiscardUnknown ¶
func (m *Ingester) XXX_DiscardUnknown()
func (*Ingester) XXX_Marshal ¶
func (*Ingester) XXX_Unmarshal ¶
type Querier ¶
type Querier struct {
Store Store `protobuf:"bytes,1,opt,name=store,proto3" json:"store"`
}
func (*Querier) Descriptor ¶
func (*Querier) MarshalToSizedBuffer ¶
func (*Querier) ProtoMessage ¶
func (*Querier) ProtoMessage()
func (*Querier) XXX_DiscardUnknown ¶
func (m *Querier) XXX_DiscardUnknown()
func (*Querier) XXX_Marshal ¶
func (*Querier) XXX_Unmarshal ¶
type Result ¶
type Result struct {
Summary Summary `protobuf:"bytes,1,opt,name=summary,proto3" json:"summary"`
Querier Querier `protobuf:"bytes,2,opt,name=querier,proto3" json:"querier"`
Ingester Ingester `protobuf:"bytes,3,opt,name=ingester,proto3" json:"ingester"`
Caches Caches `protobuf:"bytes,4,opt,name=caches,proto3" json:"cache"`
Index Index `protobuf:"bytes,5,opt,name=index,proto3" json:"index"`
}
Result contains LogQL query statistics.
func (Result) ChunkRefsFetchTime ¶
func (Result) ChunksDownloadTime ¶
func (*Result) ComputeSummary ¶
func (r *Result) ComputeSummary(execTime time.Duration, queueTime time.Duration, totalEntriesReturned int)
ComputeSummary compute the summary of the statistics.
func (Result) CongestionControlLatency ¶
func (*Result) Descriptor ¶
func (*Result) GetIngester ¶
func (*Result) GetQuerier ¶
func (*Result) GetSummary ¶
func (*Result) MarshalToSizedBuffer ¶
func (*Result) MergeSplit ¶
func (Result) PipelineWrapperFilteredLines ¶
func (*Result) ProtoMessage ¶
func (*Result) ProtoMessage()
func (Result) QueryReferencedStructuredMetadata ¶
func (Result) QueryUsedV2Engine ¶ added in v3.6.0
func (Result) TotalChunksDownloaded ¶
func (Result) TotalChunksRef ¶
func (Result) TotalDecompressedBytes ¶
func (Result) TotalDecompressedLines ¶
func (Result) TotalDuplicates ¶
func (*Result) XXX_DiscardUnknown ¶
func (m *Result) XXX_DiscardUnknown()
func (*Result) XXX_Marshal ¶
func (*Result) XXX_Unmarshal ¶
type Store ¶
type Store struct {
// The total of chunk reference fetched from index.
TotalChunksRef int64 `protobuf:"varint,1,opt,name=totalChunksRef,proto3" json:"totalChunksRef"`
// Total number of chunks fetched.
TotalChunksDownloaded int64 `protobuf:"varint,2,opt,name=totalChunksDownloaded,proto3" json:"totalChunksDownloaded"`
// Time spent fetching chunks in nanoseconds.
ChunksDownloadTime int64 `protobuf:"varint,3,opt,name=chunksDownloadTime,proto3" json:"chunksDownloadTime"`
// Whether the query referenced structured metadata
QueryReferencedStructured bool `protobuf:"varint,13,opt,name=queryReferencedStructured,proto3" json:"queryReferencedStructuredMetadata"`
// Whether the V2 engine was used for some or all of the query.
QueryUsedV2Engine bool `protobuf:"varint,14,opt,name=queryUsedV2Engine,proto3" json:"queryUsedV2Engine"`
Chunk Chunk `protobuf:"bytes,4,opt,name=chunk,proto3" json:"chunk"`
// Time spent fetching chunk refs from index.
ChunkRefsFetchTime int64 `protobuf:"varint,5,opt,name=chunkRefsFetchTime,proto3" json:"chunkRefsFetchTime"`
// Time spent being blocked on congestion control.
CongestionControlLatency int64 `protobuf:"varint,6,opt,name=congestionControlLatency,proto3" json:"congestionControlLatency"`
// Total number of lines filtered by pipeline wrapper.
PipelineWrapperFilteredLines int64 `protobuf:"varint,7,opt,name=pipelineWrapperFilteredLines,proto3" json:"pipelineWrapperFilteredLines"`
Dataobj Dataobj `protobuf:"bytes,8,opt,name=dataobj,proto3" json:"dataobj"`
}
func (*Store) ChunksDownloadDuration ¶
func (*Store) Descriptor ¶
func (*Store) GetChunkRefsFetchTime ¶
func (*Store) GetChunksDownloadTime ¶
func (*Store) GetCongestionControlLatency ¶
func (*Store) GetDataobj ¶ added in v3.6.0
func (*Store) GetPipelineWrapperFilteredLines ¶
func (*Store) GetQueryReferencedStructured ¶
func (*Store) GetQueryUsedV2Engine ¶ added in v3.6.0
func (*Store) GetTotalChunksDownloaded ¶
func (*Store) GetTotalChunksRef ¶
func (*Store) ProtoMessage ¶
func (*Store) ProtoMessage()
func (*Store) XXX_DiscardUnknown ¶
func (m *Store) XXX_DiscardUnknown()
func (*Store) XXX_Marshal ¶
func (*Store) XXX_Unmarshal ¶
type Summary ¶
type Summary struct {
// Total bytes processed per second.
BytesProcessedPerSecond int64 `protobuf:"varint,1,opt,name=bytesProcessedPerSecond,proto3" json:"bytesProcessedPerSecond"`
// Total lines processed per second.
LinesProcessedPerSecond int64 `protobuf:"varint,2,opt,name=linesProcessedPerSecond,proto3" json:"linesProcessedPerSecond"`
// Total bytes processed. Includes structured metadata bytes.
TotalBytesProcessed int64 `protobuf:"varint,3,opt,name=totalBytesProcessed,proto3" json:"totalBytesProcessed"`
// Total lines processed.
TotalLinesProcessed int64 `protobuf:"varint,4,opt,name=totalLinesProcessed,proto3" json:"totalLinesProcessed"`
// Execution time in seconds.
// In addition to internal calculations this is also returned by the HTTP API.
// Grafana expects time values to be returned in seconds as float.
ExecTime float64 `protobuf:"fixed64,5,opt,name=execTime,proto3" json:"execTime"`
// Queue time in seconds.
// In addition to internal calculations this is also returned by the HTTP API.
// Grafana expects time values to be returned in seconds as float.
QueueTime float64 `protobuf:"fixed64,6,opt,name=queueTime,proto3" json:"queueTime"`
// Subqueries exists for backwards compatibility reasons and is deprecated. Do not use.
// Instead use splits and shards
Subqueries int64 `protobuf:"varint,7,opt,name=subqueries,proto3" json:"subqueries"`
// Total number of result entries returned
TotalEntriesReturned int64 `protobuf:"varint,8,opt,name=totalEntriesReturned,proto3" json:"totalEntriesReturned"`
// Total number of splits by time
Splits int64 `protobuf:"varint,9,opt,name=splits,proto3" json:"splits"`
// Total number of shards
Shards int64 `protobuf:"varint,10,opt,name=shards,proto3" json:"shards"`
// Total lines post query filtering
TotalPostFilterLines int64 `protobuf:"varint,11,opt,name=totalPostFilterLines,proto3" json:"totalPostFilterLines"`
// Total bytes processed of metadata.
TotalStructuredMetadataBytesProcessed int64 `protobuf:"varint,12,opt,name=totalStructuredMetadataBytesProcessed,proto3" json:"totalStructuredMetadataBytesProcessed"`
}
Summary is the summary of a query statistics.
func (*Summary) Descriptor ¶
func (*Summary) GetBytesProcessedPerSecond ¶
func (*Summary) GetExecTime ¶
func (*Summary) GetLinesProcessedPerSecond ¶
func (*Summary) GetQueueTime ¶
func (*Summary) GetSubqueries ¶
func (*Summary) GetTotalBytesProcessed ¶
func (*Summary) GetTotalEntriesReturned ¶
func (*Summary) GetTotalLinesProcessed ¶
func (*Summary) GetTotalPostFilterLines ¶
func (*Summary) GetTotalStructuredMetadataBytesProcessed ¶
func (*Summary) MarshalToSizedBuffer ¶
func (*Summary) ProtoMessage ¶
func (*Summary) ProtoMessage()
func (*Summary) XXX_DiscardUnknown ¶
func (m *Summary) XXX_DiscardUnknown()