ringbuffer

package
v0.0.0-...-dd52237 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 19, 2026 License: Apache-2.0 Imports: 11 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Empty

func Empty(b Buffer) bool

func UseStreamingRingBuffers

func UseStreamingRingBuffers(opts query.Options, selectRange int64) bool

Types

type Buffer

type Buffer interface {
	MaxT() int64
	Push(t int64, v Value)
	Reset(mint int64, evalt int64)
	Eval(ctx context.Context, _, _ float64, _ int64) (float64, *histogram.FloatHistogram, bool, warnings.Warnings, error)
	SampleCount() int

	// to handle extlookback properly, only used by buffers that implement xincrease or xrate
	ReadIntoLast(f func(*Sample))
}

type FunctionArgs

type FunctionArgs struct {
	Samples          []Sample
	StepTime         int64
	SelectRange      int64
	Offset           int64
	MetricAppearedTs int64

	// quantile_over_time and predict_linear use one, so we only use one here.
	ScalarPoint  float64
	ScalarPoint2 float64 // only for double_exponential_smoothing (trend factor)
}

type FunctionCall

func NewRangeVectorFunc

func NewRangeVectorFunc(name string) (FunctionCall, error)

type GenericRingBuffer

type GenericRingBuffer struct {
	// contains filtered or unexported fields
}

func New

func New(ctx context.Context, size int, selectRange, offset int64, call FunctionCall) *GenericRingBuffer

func NewWithExtLookback

func NewWithExtLookback(ctx context.Context, size int, selectRange, offset, extLookback int64, call FunctionCall) *GenericRingBuffer

func (*GenericRingBuffer) Eval

func (r *GenericRingBuffer) Eval(ctx context.Context, scalarArg float64, scalarArg2 float64, metricAppearedTs int64) (float64, *histogram.FloatHistogram, bool, warnings.Warnings, error)

func (*GenericRingBuffer) MaxT

func (r *GenericRingBuffer) MaxT() int64

MaxT returns the maximum timestamp of the ring buffer. If the ring buffer is empty, it returns math.MinInt64.

func (*GenericRingBuffer) Push

func (r *GenericRingBuffer) Push(t int64, v Value)

Push adds a new sample to the buffer.

func (*GenericRingBuffer) ReadIntoLast

func (r *GenericRingBuffer) ReadIntoLast(f func(*Sample))

ReadIntoLast reads a sample into the last slot in the buffer, replacing the existing sample.

func (*GenericRingBuffer) Reset

func (r *GenericRingBuffer) Reset(mint int64, evalt int64)

func (*GenericRingBuffer) SampleCount

func (r *GenericRingBuffer) SampleCount() int

type OverTimeBuffer

type OverTimeBuffer struct {
	// contains filtered or unexported fields
}

OverTimeBuffer is a Buffer which can calculate [agg]_over_time for a series in a streaming manner, calculating the value incrementally for each step where the sample is used.

func NewAvgOverTimeBuffer

func NewAvgOverTimeBuffer(opts query.Options, selectRange, offset int64) *OverTimeBuffer

func NewCountOverTimeBuffer

func NewCountOverTimeBuffer(opts query.Options, selectRange, offset int64) *OverTimeBuffer

func NewLastOverTimeBuffer

func NewLastOverTimeBuffer(opts query.Options, selectRange, offset int64) *OverTimeBuffer

func NewMaxOverTimeBuffer

func NewMaxOverTimeBuffer(opts query.Options, selectRange, offset int64) *OverTimeBuffer

func NewMinOverTimeBuffer

func NewMinOverTimeBuffer(opts query.Options, selectRange, offset int64) *OverTimeBuffer

func NewPresentOverTimeBuffer

func NewPresentOverTimeBuffer(opts query.Options, selectRange, offset int64) *OverTimeBuffer

func NewStdDevOverTimeBuffer

func NewStdDevOverTimeBuffer(opts query.Options, selectRange, offset int64) *OverTimeBuffer

func NewStdVarOverTimeBuffer

func NewStdVarOverTimeBuffer(opts query.Options, selectRange, offset int64) *OverTimeBuffer

func NewSumOverTimeBuffer

func NewSumOverTimeBuffer(opts query.Options, selectRange, offset int64) *OverTimeBuffer

func (*OverTimeBuffer) Eval

func (*OverTimeBuffer) MaxT

func (r *OverTimeBuffer) MaxT() int64

func (*OverTimeBuffer) Push

func (r *OverTimeBuffer) Push(t int64, v Value)

func (*OverTimeBuffer) ReadIntoLast

func (r *OverTimeBuffer) ReadIntoLast(func(*Sample))

func (*OverTimeBuffer) Reset

func (r *OverTimeBuffer) Reset(mint int64, evalt int64)

func (*OverTimeBuffer) SampleCount

func (r *OverTimeBuffer) SampleCount() int

type RateBuffer

type RateBuffer struct {
	// contains filtered or unexported fields
}

RateBuffer is a Buffer which can calculate rate, increase and delta for a series in a streaming manner, calculating the value incrementally for each step where the sample is used.

func NewRateBuffer

func NewRateBuffer(ctx context.Context, opts query.Options, isCounter, isRate bool, selectRange, offset int64) *RateBuffer

NewRateBuffer creates a new RateBuffer.

func (*RateBuffer) Eval

func (*RateBuffer) MaxT

func (r *RateBuffer) MaxT() int64

func (*RateBuffer) Push

func (r *RateBuffer) Push(t int64, v Value)

func (*RateBuffer) ReadIntoLast

func (r *RateBuffer) ReadIntoLast(func(*Sample))

func (*RateBuffer) Reset

func (r *RateBuffer) Reset(mint int64, evalt int64)

func (*RateBuffer) SampleCount

func (r *RateBuffer) SampleCount() int

type Sample

type Sample struct {
	T int64
	V Value
}

type SamplesBuffer

type SamplesBuffer GenericRingBuffer

type Value

type Value struct {
	F float64
	H *histogram.FloatHistogram
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL