Like Prometheus, but for logs.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
loki/pkg/dataobj/index/stream_statistics.go

29 lines
869 B

package index
import (
"context"
"fmt"
"github.com/grafana/loki/v3/pkg/dataobj"
"github.com/grafana/loki/v3/pkg/dataobj/sections/logs"
)
type streamStatisticsCalculation struct{}
func (c *streamStatisticsCalculation) Prepare(_ context.Context, _ *dataobj.Section, _ logs.Stats) error {
return nil
}
func (c *streamStatisticsCalculation) ProcessBatch(_ context.Context, context *logsCalculationContext, batch []logs.Record) error {
for _, log := range batch {
err := context.builder.ObserveLogLine(context.tenantID, context.objectPath, context.sectionIdx, log.StreamID, context.streamIDLookup[log.StreamID], log.Timestamp, int64(len(log.Line)))
if err != nil {
return fmt.Errorf("failed to observe log line: %w", err)
}
}
return nil
}
func (c *streamStatisticsCalculation) Flush(_ context.Context, _ *logsCalculationContext) error {
return nil
}