fix formula notwork when there is only one metric items

This commit is contained in:
liugq 2023-06-07 16:06:44 +08:00
parent 66a3fc6ccf
commit be2787db97
1 changed files with 4 additions and 3 deletions

View File

@ -7,9 +7,9 @@ package insight
import ( import (
"github.com/Knetic/govaluate" "github.com/Knetic/govaluate"
log "github.com/cihub/seelog" log "github.com/cihub/seelog"
"infini.sh/console/model/insight"
httprouter "infini.sh/framework/core/api/router" httprouter "infini.sh/framework/core/api/router"
"infini.sh/framework/core/elastic" "infini.sh/framework/core/elastic"
"infini.sh/console/model/insight"
"infini.sh/framework/core/orm" "infini.sh/framework/core/orm"
"infini.sh/framework/core/util" "infini.sh/framework/core/util"
"math" "math"
@ -217,7 +217,8 @@ func getMetricData(metric *insight.Metric) (interface{}, error) {
metricData := CollectMetricData(agg, metric.TimeBeforeGroup) metricData := CollectMetricData(agg, metric.TimeBeforeGroup)
var targetMetricData []insight.MetricData var targetMetricData []insight.MetricData
if len(metric.Items) == 1 { formula := strings.TrimSpace(metric.Formula)
if len(metric.Items) == 1 && formula == "" {
targetMetricData = metricData targetMetricData = metricData
}else { }else {
for _, md := range metricData { for _, md := range metricData {
@ -225,7 +226,7 @@ func getMetricData(metric *insight.Metric) (interface{}, error) {
Group: md.Group, Group: md.Group,
Data: map[string][]insight.MetricDataItem{}, Data: map[string][]insight.MetricDataItem{},
} }
expression, err := govaluate.NewEvaluableExpression(metric.Formula) expression, err := govaluate.NewEvaluableExpression(formula)
if err != nil { if err != nil {
return nil, err return nil, err
} }