mirror of
https://github.com/yunionio/cloudpods.git
synced 2026-09-24 16:03:43 +08:00
fix(monitor): delete default group by and mean aggregator (#21115)
This commit is contained in:
@@ -66,7 +66,7 @@ require (
|
||||
github.com/vishvananda/netns v0.0.0-20211101163701-50045581ed74
|
||||
github.com/vmihailenco/msgpack v4.0.4+incompatible
|
||||
github.com/xuri/excelize/v2 v2.7.1
|
||||
github.com/zexi/influxql-to-metricsql v0.0.7
|
||||
github.com/zexi/influxql-to-metricsql v0.0.8
|
||||
go.etcd.io/etcd/api/v3 v3.5.0
|
||||
go.etcd.io/etcd/client/v3 v3.5.0
|
||||
golang.org/x/crypto v0.8.0
|
||||
|
||||
@@ -758,6 +758,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.7 h1:t2Kp6neknnOnszNl3mLteK4dSmXWglfI1JYUtRWTmyQ=
|
||||
github.com/zexi/influxql-to-metricsql v0.0.7/go.mod h1:PyRRM+3Zrzzig6J4okYLeSv+/d+5GaL5ccBaUKQABNs=
|
||||
github.com/zexi/influxql-to-metricsql v0.0.8 h1:DIzXVffcpWGgW6AHdK8exHXKyh6dFNXuBrYdFStyFIQ=
|
||||
github.com/zexi/influxql-to-metricsql v0.0.8/go.mod h1:PyRRM+3Zrzzig6J4okYLeSv+/d+5GaL5ccBaUKQABNs=
|
||||
go.etcd.io/etcd/api/v3 v3.5.0 h1:GsV3S+OfZEOCNXdtNkBSR7kgLobAa/SO6tCxRa0GAYw=
|
||||
go.etcd.io/etcd/api/v3 v3.5.0/go.mod h1:cbVKeC6lCfl7j/8jBhAK6aIYO9XOjdptoxU/nLQcPvs=
|
||||
go.etcd.io/etcd/client/pkg/v3 v3.5.0 h1:2aQv6F436YnN7I4VbI8PPYrBhu+SmrTaADcf8Mi/6PU=
|
||||
|
||||
@@ -390,7 +390,7 @@ func setDefaultValue(query *monitor.AlertQuery, inputQuery *monitor.MetricQueryI
|
||||
|
||||
metricMeasurement, _ := MetricMeasurementManager.GetCache().Get(query.Model.Measurement)
|
||||
|
||||
checkQueryGroupBy(query, inputQuery)
|
||||
//checkQueryGroupBy(query, inputQuery)
|
||||
|
||||
if len(inputQuery.Interval) != 0 {
|
||||
query.Model.GroupBy = append(query.Model.GroupBy,
|
||||
@@ -430,10 +430,10 @@ func setDefaultValue(query *monitor.AlertQuery, inputQuery *monitor.MetricQueryI
|
||||
if len(sel) > 1 {
|
||||
continue
|
||||
}
|
||||
sel = append(sel, monitor.MetricQueryPart{
|
||||
/*sel = append(sel, monitor.MetricQueryPart{
|
||||
Type: "mean",
|
||||
Params: []string{},
|
||||
})
|
||||
})*/
|
||||
query.Model.Selects[i] = sel
|
||||
}
|
||||
var projectId, domainId string
|
||||
@@ -498,11 +498,13 @@ func checkQueryGroupBy(query *monitor.AlertQuery, inputQuery *monitor.MetricQuer
|
||||
if len(tagId) == 0 || (len(inputQuery.Slimit) != 0 && len(inputQuery.Soffset) != 0) {
|
||||
tagId = "*"
|
||||
}
|
||||
query.Model.GroupBy = append(query.Model.GroupBy,
|
||||
monitor.MetricQueryPart{
|
||||
Type: "field",
|
||||
Params: []string{tagId},
|
||||
})
|
||||
if tagId != "" {
|
||||
query.Model.GroupBy = append(query.Model.GroupBy,
|
||||
monitor.MetricQueryPart{
|
||||
Type: "field",
|
||||
Params: []string{tagId},
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
func fillSerieTags(series *monitor.TimeSeriesSlice) {
|
||||
|
||||
+32
-14
@@ -19,6 +19,7 @@ const UNION_RESULT_NAME = "__union_result__"
|
||||
const (
|
||||
CALL_TOP = "top"
|
||||
CALL_PERCENTILE = "percentile"
|
||||
CALL_SUM = "sum"
|
||||
)
|
||||
|
||||
var MUL_ARGS_AGGREGATOR MulArgsAggregator = []string{CALL_TOP, CALL_PERCENTILE}
|
||||
@@ -259,18 +260,37 @@ func (m promQL) generateExpr(
|
||||
|
||||
result = getAggrExpr(aggrOps, result)
|
||||
|
||||
//fmt.Printf("=====m.GroupByWildcard: %v, %#v\n", m.groupByWildcard, result)
|
||||
//fmt.Printf("=====m.GroupByWildcard: %v, %#v, aggrOps: %#v\n", m.groupByWildcard, result, aggrOps)
|
||||
|
||||
if len(groups) != 0 && !m.groupByWildcard {
|
||||
expr := &promql.AggregateExpr{
|
||||
Op: promql.ItemAvg,
|
||||
Expr: result,
|
||||
shouldSkipAggr := func(opName string) bool {
|
||||
switch opName {
|
||||
case CALL_PERCENTILE, CALL_TOP, "last":
|
||||
return true
|
||||
}
|
||||
if len(groups) != 0 {
|
||||
expr.Grouping = groups
|
||||
}
|
||||
result = expr
|
||||
return false
|
||||
}
|
||||
|
||||
if len(aggrOps) != 0 {
|
||||
op := promql.ItemAvg
|
||||
opName := aggrOps[0].Name
|
||||
if !shouldSkipAggr(opName) {
|
||||
switch opName {
|
||||
case CALL_SUM:
|
||||
op = promql.ItemSum
|
||||
}
|
||||
expr := &promql.AggregateExpr{
|
||||
Op: op,
|
||||
Expr: result,
|
||||
}
|
||||
if len(groups) != 0 {
|
||||
expr.Grouping = groups
|
||||
}
|
||||
if !m.groupByWildcard {
|
||||
result = expr
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return result, nil
|
||||
}
|
||||
|
||||
@@ -305,20 +325,18 @@ func getAggrExpr(ops []*AggrOperator, expr promql.Expr) promql.Expr {
|
||||
case "abs":
|
||||
// https://prometheus.io/docs/prometheus/latest/querying/functions/#abs
|
||||
expr = newAggrExpr("abs", promql.ValueTypeVector, promql.ValueTypeVector, restExpr)
|
||||
case "sum":
|
||||
expr = newAggrExpr("sum", promql.ValueTypeVector, promql.ValueTypeVector, restExpr)
|
||||
case "mean":
|
||||
// https://docs.victoriametrics.com/MetricsQL.html#avg_over_time
|
||||
expr = newAggrExpr("avg_over_time", promql.ValueTypeMatrix, promql.ValueTypeVector, restExpr)
|
||||
case "last":
|
||||
// https://docs.victoriametrics.com/MetricsQL.html#last_over_time
|
||||
expr = newAggrExpr("last_over_time", promql.ValueTypeMatrix, promql.ValueTypeVector, restExpr)
|
||||
case "count":
|
||||
// use count, not use 'count_over_time' https://docs.victoriametrics.com/MetricsQL.html#count_over_time
|
||||
expr = newAggrExpr("count", promql.ValueTypeMatrix, promql.ValueTypeVector, restExpr)
|
||||
case "stddev":
|
||||
// https://prometheus.io/docs/prometheus/latest/querying/functions/#aggregation_over_time
|
||||
expr = newAggrExpr("stddev_over_time", promql.ValueTypeMatrix, promql.ValueTypeVector, restExpr)
|
||||
case "count":
|
||||
// use count, not use 'count_over_time' https://docs.victoriametrics.com/MetricsQL.html#count_over_time
|
||||
expr = newAggrExpr("count", promql.ValueTypeMatrix, promql.ValueTypeVector, restExpr)
|
||||
case "median":
|
||||
// https://docs.victoriametrics.com/MetricsQL.html#median_over_time
|
||||
expr = newAggrExpr("median_over_time", promql.ValueTypeMatrix, promql.ValueTypeVector, restExpr)
|
||||
|
||||
Vendored
+1
-1
@@ -983,7 +983,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.7
|
||||
# github.com/zexi/influxql-to-metricsql v0.0.8
|
||||
## explicit; go 1.18
|
||||
github.com/zexi/influxql-to-metricsql/converter
|
||||
github.com/zexi/influxql-to-metricsql/converter/translator
|
||||
|
||||
Reference in New Issue
Block a user