Documentation ¶
Index ¶
- Variables
- func AggKey(arg *types.MetricData, nodesOrTags []parser.NodeOrTag) string
- func AggregateSeries(e parser.Expr, args []*types.MetricData, function AggregateFunc) ([]*types.MetricData, error)
- func AlignSeries(args []*types.MetricData) []*types.MetricData
- func AlignStartToInterval(start, stop, bucketSize int64) int64
- func AlignToBucketSize(start, stop, bucketSize int64) (int64, int64)
- func Contains(a []int, i int) bool
- func ExtractMetric(s string) string
- func ForEachSeriesDo(ctx context.Context, e parser.Expr, from, until int64, ...) ([]*types.MetricData, error)
- func GCD(a, b int64) int64
- func GetBuckets(start, stop, bucketSize int64) int64
- func GetCommonStep(args []*types.MetricData) (commonStep int64, changed bool)
- func GetSeriesArg(ctx context.Context, arg parser.Expr, from, until int64, ...) ([]*types.MetricData, error)
- func GetSeriesArgs(ctx context.Context, e []parser.Expr, from, until int64, ...) ([]*types.MetricData, error)
- func GetSeriesArgsAndRemoveNonExisting(ctx context.Context, e parser.Expr, from, until int64, ...) ([]*types.MetricData, error)
- func LCM(args ...int64) int64
- func RemoveEmptySeriesFromName(args []*types.MetricData) string
- func ScaleToCommonStep(args []*types.MetricData, commonStep int64) []*types.MetricData
- func ScaleValuesToCommonStep(values map[parser.MetricRequest][]*types.MetricData) map[parser.MetricRequest][]*types.MetricData
- func SetEvaluator(e interfaces.Evaluator)
- type AggregateFunc
- type ByName
- type ByNameNatural
- type ByVals
- type ErrUnknownFunction
Constants ¶
This section is empty.
Variables ¶
var Backref = regexp.MustCompile(`\\(\d+)`)
Backref is a pre-compiled expression for backref
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 ¶
AlignStartToInterval aligns start of serie to interval
func AlignToBucketSize ¶
AlignToBucketSize aligns start and stop of serie to specified bucket (step) size
func ExtractMetric ¶
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 GetBuckets ¶
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 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 ¶
AggregateFunc type that defined aggregate function
type ByName ¶
type ByName []*types.MetricData
ByName sorts metrics by name
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
type ErrUnknownFunction ¶
type ErrUnknownFunction string
ErrUnknownFunction is an error message about unknown function
func (ErrUnknownFunction) Error ¶
func (e ErrUnknownFunction) Error() string