2019-12-25 19:35:47 +00:00
|
|
|
package metricsql
|
2019-12-08 22:52:31 +00:00
|
|
|
|
|
|
|
import (
|
|
|
|
"strings"
|
|
|
|
)
|
|
|
|
|
|
|
|
var rollupFuncs = map[string]bool{
|
|
|
|
// Standard rollup funcs from PromQL.
|
|
|
|
// See funcs accepting range-vector on https://prometheus.io/docs/prometheus/latest/querying/functions/ .
|
|
|
|
"changes": true,
|
|
|
|
"delta": true,
|
|
|
|
"deriv": true,
|
|
|
|
"deriv_fast": true,
|
|
|
|
"holt_winters": true,
|
|
|
|
"idelta": true,
|
|
|
|
"increase": true,
|
|
|
|
"irate": true,
|
|
|
|
"predict_linear": true,
|
|
|
|
"rate": true,
|
|
|
|
"resets": true,
|
|
|
|
"avg_over_time": true,
|
|
|
|
"min_over_time": true,
|
|
|
|
"max_over_time": true,
|
|
|
|
"sum_over_time": true,
|
|
|
|
"count_over_time": true,
|
|
|
|
"quantile_over_time": true,
|
|
|
|
"stddev_over_time": true,
|
|
|
|
"stdvar_over_time": true,
|
|
|
|
|
|
|
|
// Additional rollup funcs.
|
2019-12-25 19:35:47 +00:00
|
|
|
"default_rollup": true,
|
2019-12-08 22:52:31 +00:00
|
|
|
"sum2_over_time": true,
|
|
|
|
"geomean_over_time": true,
|
|
|
|
"first_over_time": true,
|
|
|
|
"last_over_time": true,
|
|
|
|
"distinct_over_time": true,
|
|
|
|
"increases_over_time": true,
|
|
|
|
"decreases_over_time": true,
|
|
|
|
"integrate": true,
|
|
|
|
"ideriv": true,
|
|
|
|
"lifetime": true,
|
|
|
|
"lag": true,
|
|
|
|
"scrape_interval": true,
|
|
|
|
"rollup": true,
|
|
|
|
"rollup_rate": true,
|
|
|
|
"rollup_deriv": true,
|
|
|
|
"rollup_delta": true,
|
|
|
|
"rollup_increase": true,
|
|
|
|
"rollup_candlestick": true,
|
|
|
|
}
|
|
|
|
|
|
|
|
func isRollupFunc(funcName string) bool {
|
|
|
|
funcName = strings.ToLower(funcName)
|
|
|
|
return rollupFuncs[funcName]
|
|
|
|
}
|