feat(monitor): add min and max aggregator (#21764)

This commit is contained in:
Zexi Li
2024-12-07 20:58:05 +08:00
committed by GitHub
parent 97fdc00825
commit 27d6b5bf57
5 changed files with 14 additions and 6 deletions
+1 -1
View File
@@ -69,7 +69,7 @@ require (
github.com/vishvananda/netns v0.0.5-0.20240412164733-9469873f4601
github.com/vmihailenco/msgpack v4.0.4+incompatible
github.com/xuri/excelize/v2 v2.7.1
github.com/zexi/influxql-to-metricsql v0.0.9
github.com/zexi/influxql-to-metricsql v0.1.0
go.etcd.io/etcd/api/v3 v3.5.0
go.etcd.io/etcd/client/v3 v3.5.0
golang.org/x/crypto v0.19.0
+2
View File
@@ -877,6 +877,8 @@ github.com/yusufpapurcu/wmi v1.2.2 h1:KBNDSne4vP5mbSWnJbO+51IMOXJB67QiYCSBrubbPR
github.com/yusufpapurcu/wmi v1.2.2/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0=
github.com/zexi/influxql-to-metricsql v0.0.9 h1:IVT4w4OvYvUJvj5c1TvH0G/ueM4ZZsfHGMoXtzC5rQE=
github.com/zexi/influxql-to-metricsql v0.0.9/go.mod h1:JlC5FY+6De9ZPxG47G5DOgva8P9X1VaKS4ExzCmhSCc=
github.com/zexi/influxql-to-metricsql v0.1.0 h1:gSXhnYEu16fHNs5e1NSdNYceKdlKjMijTHEpnnMVYN4=
github.com/zexi/influxql-to-metricsql v0.1.0/go.mod h1:JlC5FY+6De9ZPxG47G5DOgva8P9X1VaKS4ExzCmhSCc=
github.com/zexi/promql/v2 v2.12.1 h1:crHKpULdLLsBZ9b78Rg6qQkugzlk6BHeCj93tw/F5RU=
github.com/zexi/promql/v2 v2.12.1/go.mod h1:2UtzWZGmth95n2qdIZWpJ5yQ0cE5hEvz0dGsajI1Sqg=
go.etcd.io/etcd/api/v3 v3.5.0 h1:GsV3S+OfZEOCNXdtNkBSR7kgLobAa/SO6tCxRa0GAYw=
+1 -1
View File
@@ -23,7 +23,7 @@ var (
UNIFIED_MONITOR_FIELD_OPT_TYPE = []string{"Aggregations", "Selectors"}
UNIFIED_MONITOR_GROUPBY_OPT_TYPE = []string{"time", "tag", "fill"}
UNIFIED_MONITOR_FIELD_OPT_VALUE = map[string][]string{
"Aggregations": {"MEAN", "SUM"}, // {"COUNT", "DISTINCT", "INTEGRAL", "MEAN", "MEDIAN", "MODE", "STDDEV", "SUM"},
"Aggregations": {"MEAN", "SUM", "MAX", "MIN"}, // {"COUNT", "DISTINCT", "INTEGRAL", "MEAN", "MEDIAN", "MODE", "STDDEV", "SUM"},
"Selectors": {"BOTTOM", "FIRST", "LAST", "MAX", "MIN", "TOP"},
}
UNIFIED_MONITOR_GROUPBY_OPT_VALUE = map[string][]string{
@@ -20,6 +20,8 @@ const (
CALL_TOP = "top"
CALL_PERCENTILE = "percentile"
CALL_SUM = "sum"
CALL_MIN = "min"
CALL_MAX = "max"
)
var MUL_ARGS_AGGREGATOR MulArgsAggregator = []string{CALL_TOP, CALL_PERCENTILE}
@@ -280,6 +282,10 @@ func (m promQL) generateExpr(
switch opName {
case CALL_SUM:
op = promql.ItemSum
case CALL_MAX:
op = promql.ItemMax
case CALL_MIN:
op = promql.ItemMin
}
expr := &promql.AggregateExpr{
Op: op,
@@ -351,12 +357,12 @@ func getAggrExpr(ops []*AggrOperator, expr promql.Expr) promql.Expr {
case "median":
// https://docs.victoriametrics.com/MetricsQL.html#median_over_time
expr = newAggrExpr("median_over_time", promql.ValueTypeMatrix, promql.ValueTypeVector, restExpr)
case "max":
/*case "max":
// https://docs.victoriametrics.com/MetricsQL.html#max_over_time
expr = newAggrExpr("max_over_time", promql.ValueTypeMatrix, promql.ValueTypeVector, restExpr)
expr = newAggrExpr("max", promql.ValueTypeMatrix, promql.ValueTypeVector, restExpr)
case "min":
// https://docs.victoriametrics.com/MetricsQL.html#min_over_time
expr = newAggrExpr("min_over_time", promql.ValueTypeMatrix, promql.ValueTypeVector, restExpr)
expr = newAggrExpr("min", promql.ValueTypeMatrix, promql.ValueTypeVector, restExpr)*/
case "mode":
// https://docs.victoriametrics.com/MetricsQL.html#mode_over_time
expr = newAggrExpr("mode_over_time", promql.ValueTypeMatrix, promql.ValueTypeVector, restExpr)
+1 -1
View File
@@ -1227,7 +1227,7 @@ github.com/xuri/nfp
# github.com/yusufpapurcu/wmi v1.2.2
## explicit; go 1.16
github.com/yusufpapurcu/wmi
# github.com/zexi/influxql-to-metricsql v0.0.9
# github.com/zexi/influxql-to-metricsql v0.1.0
## explicit; go 1.18
github.com/zexi/influxql-to-metricsql/converter
github.com/zexi/influxql-to-metricsql/converter/translator