helper

package
v1.0.0 Latest Latest
Warning

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

Go to latest
Published: Jun 15, 2022 License: BSD-2-Clause Imports: 13 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var Backref = regexp.MustCompile(`\\(\d+)`)

Backref is a pre-compiled expression for backref

View Source
var ExtrapolatePoints = false

ExtrapolatePoints defines if we should extrapolate when we are aligning series together

Functions

func AggKey added in v1.0.0

func AggKey(arg *types.MetricData, nodesOrTags []parser.NodeOrTag) string

AggKey returns joined by dot nodes of tags names

func AggregateSeries

func AggregateSeries(e parser.Expr, args []*types.MetricData, function AggregateFunc) ([]*types.MetricData, error)

AggregateSeries aggregates series

func AlignSeries

func AlignSeries(args []*types.MetricData) []*types.MetricData

AlignSeries aligns different series together. By default it only prepends and appends NaNs in case of different length, but if ExtrapolatePoints is enabled, it can extrapolate

func AlignStartToInterval

func AlignStartToInterval(start, stop, bucketSize int64) int64

AlignStartToInterval aligns start of serie to interval

func AlignToBucketSize

func AlignToBucketSize(start, stop, bucketSize int64) (int64, int64)

AlignToBucketSize aligns start and stop of serie to specified bucket (step) size

func Contains

func Contains(a []int, i int) bool

Contains check if slice 'a' contains value 'i'

func ExtractMetric

func ExtractMetric(s string) string

ExtractMetric extracts metric out of function list

func ForEachSeriesDo

func ForEachSeriesDo(ctx context.Context, e parser.Expr, from, until int64, values map[parser.MetricRequest][]*types.MetricData, function seriesFunc) ([]*types.MetricData, error)

ForEachSeriesDo do action for each serie in list.

func GCD added in v1.0.0

func GCD(a, b int64) int64

GCD returns greatest common divisor calculated via Euclidean algorithm

func GetBuckets

func GetBuckets(start, stop, bucketSize int64) int64

GetBuckets returns amount buckets for timeSeries (defined with startTime, stopTime and step (bucket) size.

func GetCommonStep added in v1.0.0

func GetCommonStep(args []*types.MetricData) (commonStep int64, changed bool)

GetCommonStep returns LCM(steps), changed (bool) for slice of metrics. If all metrics have the same step, changed == false.

func GetSeriesArg

func GetSeriesArg(ctx context.Context, arg parser.Expr, from, until int64, values map[parser.MetricRequest][]*types.MetricData) ([]*types.MetricData, error)

GetSeriesArg returns argument from series.

func GetSeriesArgs

func GetSeriesArgs(ctx context.Context, e []parser.Expr, from, until int64, values map[parser.MetricRequest][]*types.MetricData) ([]*types.MetricData, error)

GetSeriesArgs returns arguments of series

func GetSeriesArgsAndRemoveNonExisting

func GetSeriesArgsAndRemoveNonExisting(ctx context.Context, e parser.Expr, from, until int64, values map[parser.MetricRequest][]*types.MetricData) ([]*types.MetricData, error)

GetSeriesArgsAndRemoveNonExisting will fetch all required arguments, but will also filter out non existing Series This is needed to be graphite-web compatible in cases when you pass non-existing Series to, for example, sumSeries

func LCM added in v1.0.0

func LCM(args ...int64) int64

LCM returns the least common multiple of 2 or more integers via GDB

func RemoveEmptySeriesFromName

func RemoveEmptySeriesFromName(args []*types.MetricData) string

RemoveEmptySeriesFromName removes empty series from list of names.

func ScaleToCommonStep added in v1.0.0

func ScaleToCommonStep(args []*types.MetricData, commonStep int64) []*types.MetricData

ScaleToCommonStep returns the metrics, aligned LCM of all metrics steps. If commonStep == 0, then it will be calculated automatically It respects xFilesFactor and fills gaps in the begin and end with NaNs if needed.

func ScaleValuesToCommonStep added in v1.0.0

func ScaleValuesToCommonStep(values map[parser.MetricRequest][]*types.MetricData) map[parser.MetricRequest][]*types.MetricData

ScaleValuesToCommonStep returns map[parser.MetricRequest][]*types.MetricData. If any element of []*types.MetricData is changed, it doesn't change original metric, but creates the new one to avoid cache spoiling.

func SetEvaluator

func SetEvaluator(e interfaces.Evaluator)

SetEvaluator sets evaluator for all helper functions

Types

type AggregateFunc

type AggregateFunc func([]float64) float64

AggregateFunc type that defined aggregate function

type ByName

type ByName []*types.MetricData

ByName sorts metrics by name

func (ByName) Len

func (s ByName) Len() int

Len returns length, required to be sortable

func (ByName) Less

func (s ByName) Less(i, j int) bool

Less compares two elements with specified IDs, required to be sortable

func (ByName) Swap

func (s ByName) Swap(i, j int)

Swap swaps to elements by IDs, required to be sortable

type ByNameNatural

type ByNameNatural []*types.MetricData

ByNameNatural sorts metric naturally by name

func (ByNameNatural) Len

func (s ByNameNatural) Len() int

Len returns length, required to be sortable

func (ByNameNatural) Less

func (s ByNameNatural) Less(i, j int) bool

Less compares two elements with specified IDs, required to be sortable

func (ByNameNatural) Swap

func (s ByNameNatural) Swap(i, j int)

Swap swaps to elements by IDs, required to be sortable

type ByVals

type ByVals struct {
	Vals   []float64
	Series []*types.MetricData
}

ByVals sorts by values Total (sortByTotal), max (sortByMaxima), min (sortByMinima) sorting For 'min', we actually store 1/v so the sorting logic is the same

func (ByVals) Len

func (s ByVals) Len() int

Len returns length, required to be sortable

func (ByVals) Less

func (s ByVals) Less(i, j int) bool

Less compares two elements with specified IDs, required to be sortable

func (ByVals) Swap

func (s ByVals) Swap(i, j int)

Swap swaps to elements by IDs, required to be sortable

type ErrUnknownFunction

type ErrUnknownFunction string

ErrUnknownFunction is an error message about unknown function

func (ErrUnknownFunction) Error

func (e ErrUnknownFunction) Error() string

Jump to

Keyboard shortcuts

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