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 JoinIndex(ctx context.Context, index Index)
- 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 (c Caches) Log(log log.Logger)
- 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) AddIngesterBatch(size int64)
- func (c *Context) AddIngesterReached(i int32)
- func (c *Context) AddIngesterTotalChunkMatched(i int64)
- func (c *Context) AddPostFilterLines(i int64)
- func (c *Context) AddSplitQueries(num int64)
- func (c *Context) Caches() Caches
- func (c *Context) Index() Index
- func (c *Context) Ingester() Ingester
- func (c *Context) Reset()
- func (c *Context) Result(execTime time.Duration, queueTime time.Duration, totalEntriesReturned int) Result
- func (c *Context) SetQueryReferencedStructuredMetadata()
- func (c *Context) Store() Store
- type Index
- func (*Index) Descriptor() ([]byte, []int)
- func (this *Index) Equal(that interface{}) bool
- func (m *Index) GetPostFilterChunks() int64
- func (m *Index) GetTotalChunks() int64
- 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) Log(log 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 (*Result) ProtoMessage()
- func (r Result) QueryReferencedStructuredMetadata() 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) GetQueryReferencedStructured() 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 (s Summary) Log(log log.Logger)
- 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) AddIngesterBatch ¶
func (*Context) AddIngesterReached ¶
func (*Context) AddIngesterTotalChunkMatched ¶
func (*Context) AddPostFilterLines ¶
func (*Context) AddSplitQueries ¶
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()
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"` }
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) GetTotalChunks ¶
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) ProtoMessage ¶
func (*Result) ProtoMessage()
func (Result) QueryReferencedStructuredMetadata ¶
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"` 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"` }
func (*Store) ChunksDownloadDuration ¶
func (*Store) Descriptor ¶
func (*Store) GetChunkRefsFetchTime ¶
func (*Store) GetChunksDownloadTime ¶
func (*Store) GetCongestionControlLatency ¶
func (*Store) GetQueryReferencedStructured ¶
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()