Skip to content
This repository was archived by the owner on Aug 23, 2023. It is now read-only.

full functions overview #998

Merged
merged 1 commit into from
Aug 15, 2018
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
196 changes: 149 additions & 47 deletions docs/graphite.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,55 +19,157 @@ Here are some important functional differences to keep in mind:

Metrictank aims to be able to provide as much processing power as it can: we're in the process
of implementing [Graphite's extensive processing api](http://graphite.readthedocs.io/en/latest/functions.html) into metrictank itself.
We're only just getting started, which is why metrictank will automatically proxy requests to graphite if functions are requested
that it cannot provide. You can also choose to enable unstable functions via process=any

Below is an overview of all current Graphite functions (as of Aug 15, 2018) and their support in metrictank.
There are 3 levels of support:

* No : not implemented yet in metrictank or not applicable (e.g. graphite functions that affect graphical style but not json data)
* Stable : 100% compatible with graphite and vetted
* Unstable: not fully compatible yet or not vetted enough

When you request functions that metrictank cannot provide, it will automatically proxy requests to graphite for a seamless failover.
You can also choose to enable unstable functions via process=any
See also:
* [HTTP api docs for render endpoint](https://github.com/grafana/metrictank/blob/master/docs/http-api.md#graphite-query-api)
* [HTTP api configuration](https://github.com/grafana/metrictank/blob/master/docs/config.md#http-api). Note the `fallback-graphite-addr` setting.

Here are the currently included functions:

| Function name and signature | Alias | Metrictank |
| -------------------------------------------------------------- | ----------- | ---------- |
| alias(seriesList, alias) seriesList | | Stable |
| aliasByNode(seriesList, nodeList) seriesList | aliasByTags | Stable |
| aliasSub(seriesList, pattern, replacement) seriesList | | Stable |
| asPercent(seriesList, seriesList, nodeList) seriesList | | Stable |
| averageSeries(seriesLists) series | avg | Stable |
| consolidateBy(seriesList, func) seriesList | | Stable |
| countSeries(seriesLists) series | | Stable |
| derivative(seriesLists) series | | Stable |
| diffSeries(seriesLists) series | | Stable |
| divideSeries(dividend, divisor) seriesList | | Stable |
| divideSeriesLists(dividends, divisors) seriesList | | Stable |
| exclude(seriesList, pattern) seriesList | | Stable |
| filterSeries(seriesList, func, operator, threshold) seriesList | | Stable |
| grep(seriesList, pattern) seriesList | | Stable |
| groupByTags(seriesList, func, tagList) seriesList | | Stable |
| highest(seriesList, n, func) seriesList | | Stable |
| highestAverage(seriesList, n, func) seriesList | | Stable |
| highestCurrent(seriesList, n, func) seriesList | | Stable |
| highestMax(seriesList, n, func) seriesList | | Stable |
| isNonNull(seriesList) seriesList | | Stable |
| lowest(seriesList, n, func) seriesList | | Stable |
| lowestAverage(seriesList, n, func) seriesList | | Stable |
| lowestCurrent(seriesList, n, func) seriesList | | Stable |
| maxSeries(seriesList) series | max | Stable |
| minSeries(seriesList) series | min | Stable |
| multiplySeries(seriesList) series | | Stable |
| movingAverage(seriesLists, windowSize) seriesList | | Unstable |
| nonNegatievDerivative(seriesList, maxValue) seriesList | | Stable |
| perSecond(seriesLists) seriesList | | Stable |
| rangeOfSeries(seriesList) series | | Stable |
| removeAboveValue(seriesList, n) seriesList | | Stable |
| removeBelowValue(seriesList, n) seriesList | | Stable |
| scale(seriesList, num) series | | Stable |
| scaleToSeconds(seriesList, seconds) seriesList | | Stable |
| sortBy(seriesList, func, reverse) seriesList | | Stable |
| sortByMaxima(seriesList) seriesList | | Stable |
| sortByName(seriesList, natural, reverse) seriesList | | Stable |
| sortByTotal(seriesList) seriesList | | Stable |
| stddevSeries(seriesList) series | | Stable |
| sumSeries(seriesLists) series | sum | Stable |
| summarize(seriesList) seriesList | | Stable |
| transformNull(seriesList, default=0) seriesList | | Stable |
| Function name and signature | Alias | Metrictank |
| -------------------------------------------------------------- | ----------- | ---------- |
| absolute | | No |
| aggregate | | No |
| aggregateLine | | No |
| aggregateWithWildcards | | No |
| alias(seriesList, alias) seriesList | | Stable |
| aliasByMetric | | No |
| aliasByNode(seriesList, nodeList) seriesList | aliasByTags | Stable |
| aliasByTags | | No |
| aliasQuery | | No |
| aliasSub(seriesList, pattern, replacement) seriesList | | Stable |
| alpha | | No |
| applyByNode | | No |
| areaBetween | | No |
| asPercent(seriesList, seriesList, nodeList) seriesList | | Stable |
| averageAbove | | No |
| averageBelow | | No |
| averageOutsidePercentile | | No |
| averageSeries(seriesLists) series | avg | Stable |
| averageSeriesWithWildcards | | No |
| cactiStyle | | No |
| changed | | No |
| color | | No |
| consolidateBy(seriesList, func) seriesList | | Stable |
| constantLine | | No |
| countSeries(seriesLists) series | | Stable |
| cumulative | | No |
| currentAbove | | No |
| currentBelow | | No |
| dashed | | No |
| delay | | No |
| derivative(seriesLists) series | | Stable |
| diffSeries(seriesLists) series | | Stable |
| divideSeries(dividend, divisor) seriesList | | Stable |
| divideSeriesLists(dividends, divisors) seriesList | | Stable |
| drawAsInfinite | | No |
| events | | No |
| exclude(seriesList, pattern) seriesList | | Stable |
| exponentialMovingAverage | | No |
| fallbackSeries | | No |
| filterSeries(seriesList, func, operator, threshold) seriesList | | Stable |
| grep(seriesList, pattern) seriesList | | Stable |
| group | | No |
| groupByNode | | No |
| groupByNodes | | No |
| groupByTags(seriesList, func, tagList) seriesList | | Stable |
| highest(seriesList, n, func) seriesList | | Stable |
| highestAverage(seriesList, n, func) seriesList | | Stable |
| highestCurrent(seriesList, n, func) seriesList | | Stable |
| highestMax(seriesList, n, func) seriesList | | Stable |
| hitcount | | No |
| holtWintersAberration | | No |
| holtWintersConfidenceArea | | No |
| holtWintersConfidenceBands | | No |
| holtWintersForecast | | No |
| identity | | No |
| integral | | No |
| integralByInterval | | No |
| interpolate | | No |
| invert | | No |
| isNonNull(seriesList) seriesList | | Stable |
| keepLastValue | | No |
| legendValue | | No |
| limit | | No |
| linearRegression | | No |
| lineWidth | | No |
| logarithm | | No |
| lowest(seriesList, n, func) seriesList | | Stable |
| lowestAverage(seriesList, n, func) seriesList | | Stable |
| lowestCurrent(seriesList, n, func) seriesList | | Stable |
| mapSeries | map | No |
| maximumAbove | | No |
| maximumBelow | | No |
| maxSeries(seriesList) series | max | Stable |
| minimumAbove | | No |
| minimumBelow | | No |
| minMax | | No |
| minSeries(seriesList) series | min | Stable |
| mostDeviant | | No |
| movingAverage(seriesLists, windowSize) seriesList | | Unstable |
| movingMax | | No |
| movingMedian | | No |
| movingMin | | No |
| movingSum | | No |
| movingWindow | | No |
| multiplySeries(seriesList) series | | Stable |
| multiplySeriesWithWildcards | | No |
| nonNegatievDerivative(seriesList, maxValue) seriesList | | Stable |
| nPercentile | | No |
| offset | | No |
| offsetToZero | | No |
| percentileOfSeries | | No |
| perSecond(seriesLists) seriesList | | Stable |
| pieAverage | | No |
| pieMaximum | | No |
| pieMinimum | | No |
| pow | | No |
| powSeries | | No |
| randomWalkFunction | randomWalk | No |
| rangeOfSeries(seriesList) series | | Stable |
| reduceSeries | reduce | No |
| removeAbovePercentile | | No |
| removeAboveValue(seriesList, n) seriesList | | Stable |
| removeBelowPercentile | | No |
| removeBelowValue(seriesList, n) seriesList | | Stable |
| removeBetweenPercentile | | No |
| removeEmptySeries | | No |
| roundFunction | | No |
| scale(seriesList, num) series | | Stable |
| scaleToSeconds(seriesList, seconds) seriesList | | Stable |
| secondYAxis | | No |
| seriesByTag | | No |
| setXFilesFactor | xFilesFactor | No |
| sinFunction | sin | No |
| smartSummarize | | No |
| sortBy(seriesList, func, reverse) seriesList | | Stable |
| sortByMaxima(seriesList) seriesList | | Stable |
| sortByMinima | | No |
| sortByName(seriesList, natural, reverse) seriesList | | Stable |
| sortByTotal(seriesList) seriesList | | Stable |
| squareRoot | | No |
| stacked | | No |
| stddevSeries(seriesList) series | | Stable |
| stdev | | No |
| substr | | No |
| summarize(seriesList) seriesList | | Stable |
| sumSeries(seriesLists) series | sum | Stable |
| sumSeriesWithWildcards | | No |
| threshold | | No |
| timeFunction | time | No |
| timeShift | | No |
| timeSlice | | No |
| timeStack | | No |
| transformNull(seriesList, default=0) seriesList | | Stable |
| unique | | No |
| useSeriesAbove | | No |
| verticalLine | | No |
| weightedAverage | | No |