@@ -19,55 +19,157 @@ Here are some important functional differences to keep in mind:
19
19
20
20
Metrictank aims to be able to provide as much processing power as it can: we're in the process
21
21
of implementing [ Graphite's extensive processing api] ( http://graphite.readthedocs.io/en/latest/functions.html ) into metrictank itself.
22
- We're only just getting started, which is why metrictank will automatically proxy requests to graphite if functions are requested
23
- that it cannot provide. You can also choose to enable unstable functions via process=any
22
+
23
+ Below is an overview of all current Graphite functions (as of Aug 15, 2018) and their support in metrictank.
24
+ There are 3 levels of support:
25
+
26
+ * No : not implemented yet in metrictank or not applicable (e.g. graphite functions that affect graphical style but not json data)
27
+ * Stable : 100% compatible with graphite and vetted
28
+ * Unstable: not fully compatible yet or not vetted enough
29
+
30
+ When you request functions that metrictank cannot provide, it will automatically proxy requests to graphite for a seamless failover.
31
+ You can also choose to enable unstable functions via process=any
24
32
See also:
25
33
* [ HTTP api docs for render endpoint] ( https://github.com/grafana/metrictank/blob/master/docs/http-api.md#graphite-query-api )
26
34
* [ HTTP api configuration] ( https://github.com/grafana/metrictank/blob/master/docs/config.md#http-api ) . Note the ` fallback-graphite-addr ` setting.
27
35
28
- Here are the currently included functions:
29
36
30
- | Function name and signature | Alias | Metrictank |
31
- | -------------------------------------------------------------- | ----------- | ---------- |
32
- | alias(seriesList, alias) seriesList | | Stable |
33
- | aliasByNode(seriesList, nodeList) seriesList | aliasByTags | Stable |
34
- | aliasSub(seriesList, pattern, replacement) seriesList | | Stable |
35
- | asPercent(seriesList, seriesList, nodeList) seriesList | | Stable |
36
- | averageSeries(seriesLists) series | avg | Stable |
37
- | consolidateBy(seriesList, func) seriesList | | Stable |
38
- | countSeries(seriesLists) series | | Stable |
39
- | derivative(seriesLists) series | | Stable |
40
- | diffSeries(seriesLists) series | | Stable |
41
- | divideSeries(dividend, divisor) seriesList | | Stable |
42
- | divideSeriesLists(dividends, divisors) seriesList | | Stable |
43
- | exclude(seriesList, pattern) seriesList | | Stable |
44
- | filterSeries(seriesList, func, operator, threshold) seriesList | | Stable |
45
- | grep(seriesList, pattern) seriesList | | Stable |
46
- | groupByTags(seriesList, func, tagList) seriesList | | Stable |
47
- | highest(seriesList, n, func) seriesList | | Stable |
48
- | highestAverage(seriesList, n, func) seriesList | | Stable |
49
- | highestCurrent(seriesList, n, func) seriesList | | Stable |
50
- | highestMax(seriesList, n, func) seriesList | | Stable |
51
- | isNonNull(seriesList) seriesList | | Stable |
52
- | lowest(seriesList, n, func) seriesList | | Stable |
53
- | lowestAverage(seriesList, n, func) seriesList | | Stable |
54
- | lowestCurrent(seriesList, n, func) seriesList | | Stable |
55
- | maxSeries(seriesList) series | max | Stable |
56
- | minSeries(seriesList) series | min | Stable |
57
- | multiplySeries(seriesList) series | | Stable |
58
- | movingAverage(seriesLists, windowSize) seriesList | | Unstable |
59
- | nonNegatievDerivative(seriesList, maxValue) seriesList | | Stable |
60
- | perSecond(seriesLists) seriesList | | Stable |
61
- | rangeOfSeries(seriesList) series | | Stable |
62
- | removeAboveValue(seriesList, n) seriesList | | Stable |
63
- | removeBelowValue(seriesList, n) seriesList | | Stable |
64
- | scale(seriesList, num) series | | Stable |
65
- | scaleToSeconds(seriesList, seconds) seriesList | | Stable |
66
- | sortBy(seriesList, func, reverse) seriesList | | Stable |
67
- | sortByMaxima(seriesList) seriesList | | Stable |
68
- | sortByName(seriesList, natural, reverse) seriesList | | Stable |
69
- | sortByTotal(seriesList) seriesList | | Stable |
70
- | stddevSeries(seriesList) series | | Stable |
71
- | sumSeries(seriesLists) series | sum | Stable |
72
- | summarize(seriesList) seriesList | | Stable |
73
- | transformNull(seriesList, default=0) seriesList | | Stable |
37
+ | Function name and signature | Alias | Metrictank |
38
+ | -------------------------------------------------------------- | ----------- | ---------- |
39
+ | absolute | | No |
40
+ | aggregate | | No |
41
+ | aggregateLine | | No |
42
+ | aggregateWithWildcards | | No |
43
+ | alias(seriesList, alias) seriesList | | Stable |
44
+ | aliasByMetric | | No |
45
+ | aliasByNode(seriesList, nodeList) seriesList | aliasByTags | Stable |
46
+ | aliasByTags | | No |
47
+ | aliasQuery | | No |
48
+ | aliasSub(seriesList, pattern, replacement) seriesList | | Stable |
49
+ | alpha | | No |
50
+ | applyByNode | | No |
51
+ | areaBetween | | No |
52
+ | asPercent(seriesList, seriesList, nodeList) seriesList | | Stable |
53
+ | averageAbove | | No |
54
+ | averageBelow | | No |
55
+ | averageOutsidePercentile | | No |
56
+ | averageSeries(seriesLists) series | avg | Stable |
57
+ | averageSeriesWithWildcards | | No |
58
+ | cactiStyle | | No |
59
+ | changed | | No |
60
+ | color | | No |
61
+ | consolidateBy(seriesList, func) seriesList | | Stable |
62
+ | constantLine | | No |
63
+ | countSeries(seriesLists) series | | Stable |
64
+ | cumulative | | No |
65
+ | currentAbove | | No |
66
+ | currentBelow | | No |
67
+ | dashed | | No |
68
+ | delay | | No |
69
+ | derivative(seriesLists) series | | Stable |
70
+ | diffSeries(seriesLists) series | | Stable |
71
+ | divideSeries(dividend, divisor) seriesList | | Stable |
72
+ | divideSeriesLists(dividends, divisors) seriesList | | Stable |
73
+ | drawAsInfinite | | No |
74
+ | events | | No |
75
+ | exclude(seriesList, pattern) seriesList | | Stable |
76
+ | exponentialMovingAverage | | No |
77
+ | fallbackSeries | | No |
78
+ | filterSeries(seriesList, func, operator, threshold) seriesList | | Stable |
79
+ | grep(seriesList, pattern) seriesList | | Stable |
80
+ | group | | No |
81
+ | groupByNode | | No |
82
+ | groupByNodes | | No |
83
+ | groupByTags(seriesList, func, tagList) seriesList | | Stable |
84
+ | highest(seriesList, n, func) seriesList | | Stable |
85
+ | highestAverage(seriesList, n, func) seriesList | | Stable |
86
+ | highestCurrent(seriesList, n, func) seriesList | | Stable |
87
+ | highestMax(seriesList, n, func) seriesList | | Stable |
88
+ | hitcount | | No |
89
+ | holtWintersAberration | | No |
90
+ | holtWintersConfidenceArea | | No |
91
+ | holtWintersConfidenceBands | | No |
92
+ | holtWintersForecast | | No |
93
+ | identity | | No |
94
+ | integral | | No |
95
+ | integralByInterval | | No |
96
+ | interpolate | | No |
97
+ | invert | | No |
98
+ | isNonNull(seriesList) seriesList | | Stable |
99
+ | keepLastValue | | No |
100
+ | legendValue | | No |
101
+ | limit | | No |
102
+ | linearRegression | | No |
103
+ | lineWidth | | No |
104
+ | logarithm | | No |
105
+ | lowest(seriesList, n, func) seriesList | | Stable |
106
+ | lowestAverage(seriesList, n, func) seriesList | | Stable |
107
+ | lowestCurrent(seriesList, n, func) seriesList | | Stable |
108
+ | mapSeries | map | No |
109
+ | maximumAbove | | No |
110
+ | maximumBelow | | No |
111
+ | maxSeries(seriesList) series | max | Stable |
112
+ | minimumAbove | | No |
113
+ | minimumBelow | | No |
114
+ | minMax | | No |
115
+ | minSeries(seriesList) series | min | Stable |
116
+ | mostDeviant | | No |
117
+ | movingAverage(seriesLists, windowSize) seriesList | | Unstable |
118
+ | movingMax | | No |
119
+ | movingMedian | | No |
120
+ | movingMin | | No |
121
+ | movingSum | | No |
122
+ | movingWindow | | No |
123
+ | multiplySeries(seriesList) series | | Stable |
124
+ | multiplySeriesWithWildcards | | No |
125
+ | nonNegatievDerivative(seriesList, maxValue) seriesList | | Stable |
126
+ | nPercentile | | No |
127
+ | offset | | No |
128
+ | offsetToZero | | No |
129
+ | percentileOfSeries | | No |
130
+ | perSecond(seriesLists) seriesList | | Stable |
131
+ | pieAverage | | No |
132
+ | pieMaximum | | No |
133
+ | pieMinimum | | No |
134
+ | pow | | No |
135
+ | powSeries | | No |
136
+ | randomWalkFunction | randomWalk | No |
137
+ | rangeOfSeries(seriesList) series | | Stable |
138
+ | reduceSeries | reduce | No |
139
+ | removeAbovePercentile | | No |
140
+ | removeAboveValue(seriesList, n) seriesList | | Stable |
141
+ | removeBelowPercentile | | No |
142
+ | removeBelowValue(seriesList, n) seriesList | | Stable |
143
+ | removeBetweenPercentile | | No |
144
+ | removeEmptySeries | | No |
145
+ | roundFunction | | No |
146
+ | scale(seriesList, num) series | | Stable |
147
+ | scaleToSeconds(seriesList, seconds) seriesList | | Stable |
148
+ | secondYAxis | | No |
149
+ | seriesByTag | | No |
150
+ | setXFilesFactor | xFilesFactor | No |
151
+ | sinFunction | sin | No |
152
+ | smartSummarize | | No |
153
+ | sortBy(seriesList, func, reverse) seriesList | | Stable |
154
+ | sortByMaxima(seriesList) seriesList | | Stable |
155
+ | sortByMinima | | No |
156
+ | sortByName(seriesList, natural, reverse) seriesList | | Stable |
157
+ | sortByTotal(seriesList) seriesList | | Stable |
158
+ | squareRoot | | No |
159
+ | stacked | | No |
160
+ | stddevSeries(seriesList) series | | Stable |
161
+ | stdev | | No |
162
+ | substr | | No |
163
+ | summarize(seriesList) seriesList | | Stable |
164
+ | sumSeries(seriesLists) series | sum | Stable |
165
+ | sumSeriesWithWildcards | | No |
166
+ | threshold | | No |
167
+ | timeFunction | time | No |
168
+ | timeShift | | No |
169
+ | timeSlice | | No |
170
+ | timeStack | | No |
171
+ | transformNull(seriesList, default=0) seriesList | | Stable |
172
+ | unique | | No |
173
+ | useSeriesAbove | | No |
174
+ | verticalLine | | No |
175
+ | weightedAverage | | No |
0 commit comments