Documentation ¶
Index ¶
- Variables
- func ConsolidateJSON(maxDataPoints int64, results []*MetricData)
- func CopyLink(tags map[string]string) map[string]string
- func ExtractName(s string) string
- func ExtractNameLoc(s string) (int, int)
- func ExtractNameTag(s string) string
- func MarshalCSV(results []*MetricData) []byte
- func MarshalJSON(results []*MetricData, timestampMultiplier int64, noNullPoints bool) []byte
- func MarshalPickle(results []*MetricData) []byte
- func MarshalProtobufV2(results []*MetricData) ([]byte, error)
- func MarshalProtobufV3(results []*MetricData) ([]byte, error)
- func MarshalRaw(results []*MetricData) []byte
- type FunctionDescription
- type FunctionParam
- type FunctionType
- type GraphOptions
- type MetricData
- func CopyMetricDataSlice(args []*MetricData) (newData []*MetricData)
- func CopyMetricDataSliceLink(args []*MetricData) (newData []*MetricData)
- func CopyMetricDataSliceWithName(args []*MetricData, name string) (newData []*MetricData)
- func CopyMetricDataSliceWithTags(args []*MetricData, name string, tags map[string]string) (newData []*MetricData)
- func MakeMetricData(name string, values []float64, step, start int64) *MetricData
- func (r *MetricData) AggregateValues()
- func (r *MetricData) AggregatedStartTime() int64
- func (r *MetricData) AggregatedTimeStep() int64
- func (r *MetricData) AggregatedValues() []float64
- func (r *MetricData) AppendStopTime(step int64) *MetricData
- func (r *MetricData) Copy(includeValues bool) *MetricData
- func (r *MetricData) CopyLink() *MetricData
- func (r *MetricData) CopyLinkTags() *MetricData
- func (r *MetricData) CopyName(name string) *MetricData
- func (r *MetricData) CopyNameArg(name, defaultName string, defaultTags map[string]string, extractTags bool) *MetricData
- func (r *MetricData) CopyNameWithDefault(name, defaultName string) *MetricData
- func (r *MetricData) CopyNameWithVal(name string) *MetricData
- func (r *MetricData) CopyTag(name string, tags map[string]string) *MetricData
- func (r *MetricData) FixNameTag() *MetricData
- func (r *MetricData) FixStopTime() *MetricData
- func (r *MetricData) GetAggregateFunction() func([]float64) float64
- func (r *MetricData) RecalcStopTime() *MetricData
- func (r *MetricData) SetConsolidationFunc(f string) *MetricData
- func (r *MetricData) SetNameTag(name string) *MetricData
- func (r *MetricData) SetPathExpression(path string) *MetricData
- func (r *MetricData) SetTag(key, value string) *MetricData
- func (r *MetricData) SetTags(tags map[string]string) *MetricData
- func (r *MetricData) SetValuesPerPoint(v int)
- func (r *MetricData) SetXFilesFactor(x float32) *MetricData
- type MetricHeap
- type MetricHeapElement
- type Option
- type Suggestion
- type SuggestionTypes
- type Windowed
- func (w *Windowed) Count() float64
- func (w *Windowed) Diff() float64
- func (w *Windowed) IsNonNull() bool
- func (w *Windowed) Last() float64
- func (w *Windowed) Len() int
- func (w *Windowed) Max() float64
- func (w *Windowed) Mean() float64
- func (w *Windowed) MeanZero() float64
- func (w *Windowed) Median() float64
- func (w *Windowed) Min() float64
- func (w *Windowed) Multiply() float64
- func (w *Windowed) Push(n float64)
- func (w *Windowed) Range() float64
- func (w *Windowed) Reset()
- func (w *Windowed) Stdev() float64
- func (w *Windowed) Sum() float64
- func (w *Windowed) SumSQ() float64
Constants ¶
This section is empty.
Variables ¶
var ( // ErrWildcardNotAllowed is an eval error returned when a wildcard/glob argument is found where a single series is required. ErrWildcardNotAllowed = errors.New("found wildcard where series expected") // ErrTooManyArguments is an eval error returned when too many arguments are provided. ErrTooManyArguments = errors.New("too many arguments") )
var FunctionTypeToStr = map[FunctionType]string{ AggFunc: "aggFunc", Boolean: "boolean", Date: "date", Float: "float", IntOrInterval: "intOrInterval", Integer: "integer", Interval: "interval", Node: "node", NodeOrTag: "nodeOrTag", SeriesList: "seriesList", SeriesLists: "seriesLists", String: "string", Tag: "tag", Any: "any", AggOrSeriesFunc: "aggOrSeriesFunc", IntOrInf: "intOrInf", }
FunctionTypeToStr provides a mapping between internal type constants and graphite-friendly string that have a name of a type
Functions ¶
func ConsolidateJSON ¶
func ConsolidateJSON(maxDataPoints int64, results []*MetricData)
ConsolidateJSON consolidates values to maxDataPoints size
func ExtractName ¶ added in v0.16.0
ExtractName extracts name out of function list. Only for use in MetrciData name parse, it's has more allowed chard in names, like =
func ExtractNameLoc ¶ added in v0.16.0
ExtractNameLoc extracts name start:end location out of function list with . Only for use in MetrciData name parse, it's has more allowed chard in names, like =
func ExtractNameTag ¶ added in v0.16.0
ExtractNameTag extracts name tag out of function list with . Only for use in MetrciData name parse, it's has more allowed chard in names, like =
func MarshalCSV ¶
func MarshalCSV(results []*MetricData) []byte
MarshalCSV marshals metric data to CSV
func MarshalJSON ¶
func MarshalJSON(results []*MetricData, timestampMultiplier int64, noNullPoints bool) []byte
MarshalJSON marshals metric data to JSON
func MarshalPickle ¶
func MarshalPickle(results []*MetricData) []byte
MarshalPickle marshals metric data to pickle format
func MarshalProtobufV2 ¶ added in v0.13.0
func MarshalProtobufV2(results []*MetricData) ([]byte, error)
MarshalProtobufV3 marshals metric data to protobuf
func MarshalProtobufV3 ¶ added in v0.13.0
func MarshalProtobufV3(results []*MetricData) ([]byte, error)
MarshalProtobufV3 marshals metric data to protobuf
func MarshalRaw ¶
func MarshalRaw(results []*MetricData) []byte
MarshalRaw marshals metric data to graphite's internal format, called 'raw'
Types ¶
type FunctionDescription ¶
type FunctionDescription struct { Description string `json:"description"` Function string `json:"function"` Group string `json:"group"` Module string `json:"module"` Name string `json:"name"` Params []FunctionParam `json:"params,omitempty"` Proxied bool `json:"proxied"` SeriesChange bool `json:"aggregate,omitempty"` // function aggregate metrics, for tests and verify results in future NameChange bool `json:"name-change,omitempty"` // function change name, for tests and verify results in future TagsChange bool `json:"name-tag-change,omitempty"` // function change name tag, for tests and verify results in future ValuesChange bool `json:"values-change,omitempty"` // function change values, for tests and verify results in future }
FunctionDescription contains full function description.
type FunctionParam ¶
type FunctionParam struct { Name string `json:"name"` Multiple bool `json:"multiple,omitempty"` Required bool `json:"required,omitempty"` Type FunctionType `json:"type,omitempty"` Options []Suggestion `json:"options,omitempty"` Suggestions []*Suggestion `json:"suggestions,omitempty"` Default *Suggestion `json:"default,omitempty"` }
FunctionParam contains list of all available parameters of function
type FunctionType ¶
type FunctionType int
FunctionType is a special type to handle parameter type in function description
const ( // AggFunc is a constant for AggregationFunction type AggFunc FunctionType = iota // Boolean is a constant for Boolean type Boolean // Date is a constant for Date type Date // Float is a constant for Float type Float // IntOrInterval is a constant for Interval-Or-Integer type IntOrInterval // Integer is a constant for Integer type Integer // Interval is a constant for Interval type Interval // Node is a constant for Node type Node // NodeOrTag is a constant for Node-Or-Tag type NodeOrTag // SeriesList is a constant for SeriesList type SeriesList // SeriesLists is a constant for SeriesLists type SeriesLists // String is a constant for String type String // Tag is a constant for Tag type Tag // Any is a constant for `Any` type Any // AggOrSeriesFunc is a constant for AggregationFunction or SeriesList AggOrSeriesFunc // IntOrInf is a constant for Integer that can be infinity IntOrInf )
func (FunctionType) MarshalJSON ¶
func (t FunctionType) MarshalJSON() ([]byte, error)
MarshalJSON marshals metric data to JSON
func (*FunctionType) UnmarshalJSON ¶
func (t *FunctionType) UnmarshalJSON(d []byte) error
type GraphOptions ¶
type GraphOptions struct { }
type MetricData ¶
type MetricData struct { pb.FetchResponse GraphOptions ValuesPerPoint int Tags map[string]string AggregateFunction func([]float64) float64 `json:"-"` // contains filtered or unexported fields }
MetricData contains necessary data to represent parsed metric (ready to be send out or drawn)
func CopyMetricDataSlice ¶ added in v0.14.1
func CopyMetricDataSlice(args []*MetricData) (newData []*MetricData)
CopyMetricDataSlice returns the slice of metrics that should be changed later. It allows to avoid a changing of source data, e.g. by AlignMetrics
func CopyMetricDataSliceLink ¶ added in v0.16.0
func CopyMetricDataSliceLink(args []*MetricData) (newData []*MetricData)
CopyMetricDataSliceLink returns the copies slice of metrics, Values not copied and link from parent.
func CopyMetricDataSliceWithName ¶ added in v0.16.0
func CopyMetricDataSliceWithName(args []*MetricData, name string) (newData []*MetricData)
CopyMetricDataSliceWithName returns the copies slice of metrics with name overwrite, Values not copied and link from parent. Tags will be reset
func CopyMetricDataSliceWithTags ¶ added in v0.16.0
func CopyMetricDataSliceWithTags(args []*MetricData, name string, tags map[string]string) (newData []*MetricData)
CopyMetricDataSliceWithTags returns the copies slice of metrics with name overwrite, Values not copied and link from parent.
func MakeMetricData ¶
func MakeMetricData(name string, values []float64, step, start int64) *MetricData
MakeMetricData creates new metrics data with given metric timeseries
func (*MetricData) AggregateValues ¶
func (r *MetricData) AggregateValues()
AggregateValues aggregates values
func (*MetricData) AggregatedStartTime ¶ added in v0.17.0
func (r *MetricData) AggregatedStartTime() int64
AggregatedStartTime returns the start time of the aggregated series. This can be different from the original start time if NudgeStartTimeOnAggregation or UseBucketsHighestTimestampOnAggregation are enabled.
func (*MetricData) AggregatedTimeStep ¶
func (r *MetricData) AggregatedTimeStep() int64
AggregatedTimeStep aggregates time step
func (*MetricData) AggregatedValues ¶
func (r *MetricData) AggregatedValues() []float64
AggregatedValues aggregates values (with cache)
func (*MetricData) AppendStopTime ¶ added in v0.16.0
func (r *MetricData) AppendStopTime(step int64) *MetricData
AppendStopTime append to StopTime for simulate broken time series
func (*MetricData) Copy ¶ added in v0.14.1
func (r *MetricData) Copy(includeValues bool) *MetricData
Copy returns the copy of r. If includeValues set to true, it copies values as well.
func (*MetricData) CopyLink ¶ added in v0.15.4
func (r *MetricData) CopyLink() *MetricData
CopyLink returns the copy of MetricData, Values not copied and link from parent. Tags map are copied
func (*MetricData) CopyLinkTags ¶ added in v0.16.0
func (r *MetricData) CopyLinkTags() *MetricData
CopyLinkTags returns the copy of MetricData, Values not copied and link from parent. Tags map set by rereference without copy (so, DON'T change them for prevent naming bugs)
func (*MetricData) CopyName ¶ added in v0.16.0
func (r *MetricData) CopyName(name string) *MetricData
CopyName returns the copy of MetricData, Values not copied and link from parent. If name set, Name and Name tag changed
func (*MetricData) CopyNameArg ¶ added in v0.16.0
func (r *MetricData) CopyNameArg(name, defaultName string, defaultTags map[string]string, extractTags bool) *MetricData
CopyNameArg returns the copy of MetricData, Values not copied and link from parent. Name is changed, tags extracted from seriesByTag args, if extractTags is true For use in functions like aggregate
func (*MetricData) CopyNameWithDefault ¶ added in v0.16.0
func (r *MetricData) CopyNameWithDefault(name, defaultName string) *MetricData
CopyNameWithDefault returns the copy of MetricData, Values not copied and link from parent. Name is changed, Tags will be reset. If Name tag not set, it will be set with default value. Use this function in aggregate function (like sumSeries)
func (*MetricData) CopyNameWithVal ¶ added in v0.16.0
func (r *MetricData) CopyNameWithVal(name string) *MetricData
CopyName returns the copy of MetricData, Values not copied and link from parent. If name set, Name and Name tag changed, Tags wil be reset
func (*MetricData) CopyTag ¶ added in v0.16.0
func (r *MetricData) CopyTag(name string, tags map[string]string) *MetricData
CopyTag returns the copy of MetricData, Values not copied and link from parent. If name set, Name and Name tag changed, Tags will be reset. WARNING: can provide inconsistence beetween name and tags, if incorectly used
func (*MetricData) FixNameTag ¶ added in v0.16.0
func (r *MetricData) FixNameTag() *MetricData
FixNameTag for safe name tag for future use without metric.ExtractMetric
func (*MetricData) FixStopTime ¶ added in v0.16.0
func (r *MetricData) FixStopTime() *MetricData
FixStopTime fix broken StopTime (less than need for values)
func (*MetricData) GetAggregateFunction ¶ added in v0.14.1
func (r *MetricData) GetAggregateFunction() func([]float64) float64
GetAggregateFunction returns MetricData.AggregateFunction and set it, if it's not yet
func (*MetricData) RecalcStopTime ¶ added in v0.16.0
func (r *MetricData) RecalcStopTime() *MetricData
RecalcStopTime recalc StopTime with StartTime and Values length
func (*MetricData) SetConsolidationFunc ¶ added in v0.16.0
func (r *MetricData) SetConsolidationFunc(f string) *MetricData
SetConsolidationFunc set ConsolidationFunc
func (*MetricData) SetNameTag ¶ added in v0.16.0
func (r *MetricData) SetNameTag(name string) *MetricData
SetNameTag set name tag
func (*MetricData) SetPathExpression ¶ added in v0.17.0
func (r *MetricData) SetPathExpression(path string) *MetricData
SetPathExpression set path expression
func (*MetricData) SetTag ¶ added in v0.16.0
func (r *MetricData) SetTag(key, value string) *MetricData
SetTag allow to set custom tag (for tests)
func (*MetricData) SetTags ¶ added in v0.16.0
func (r *MetricData) SetTags(tags map[string]string) *MetricData
SetTag allow to set tags
func (*MetricData) SetValuesPerPoint ¶
func (r *MetricData) SetValuesPerPoint(v int)
SetValuesPerPoint sets value per point coefficient.
func (*MetricData) SetXFilesFactor ¶ added in v0.16.0
func (r *MetricData) SetXFilesFactor(x float32) *MetricData
SetXFilesFactor set XFilesFactor
type MetricHeap ¶
type MetricHeap []MetricHeapElement
func (MetricHeap) Len ¶
func (m MetricHeap) Len() int
func (MetricHeap) Less ¶
func (m MetricHeap) Less(i, j int) bool
func (MetricHeap) Swap ¶
func (m MetricHeap) Swap(i, j int)
type MetricHeapElement ¶
type Option ¶ added in v0.15.3
type Option struct { Type SuggestionTypes Value interface{} }
type Suggestion ¶
type Suggestion struct { Type SuggestionTypes Value interface{} }
func NewSuggestion ¶
func NewSuggestion(arg interface{}) *Suggestion
func NewSuggestions ¶
func NewSuggestions(vaArgs ...interface{}) []*Suggestion
func StringsToSuggestionList ¶ added in v0.15.3
func StringsToSuggestionList(in []string) []Suggestion
func (Suggestion) MarshalJSON ¶
func (t Suggestion) MarshalJSON() ([]byte, error)
MarshalJSON marshals metric data to JSON
func (*Suggestion) UnmarshalJSON ¶
func (t *Suggestion) UnmarshalJSON(d []byte) error
type SuggestionTypes ¶
type SuggestionTypes int
const ( SInt SuggestionTypes = iota SInt32 SInt64 SUint SUint32 SUint64 SFloat64 SString SBool SNone )
type Windowed ¶
type Windowed struct { Data []float64 // contains filtered or unexported fields }
Windowed is a struct to compute simple windowed stats
func (*Windowed) IsNonNull ¶ added in v0.16.1
IsNonNull checks if the window's data contains only NaN values This is to prevent returning -Inf when the window's data contains only NaN values
func (*Windowed) MeanZero ¶ added in v0.16.0
MeanZero returns mean value of data, with NaN values replaced with 0