mirror of
https://github.com/prometheus/prometheus.git
synced 2024-11-09 23:24:05 -08:00
Capture timing information while sorting
Signed-off-by: Charles Korn <charles.korn@grafana.com>
This commit is contained in:
parent
036c87223c
commit
0e934dba8e
|
@ -752,7 +752,7 @@ func (ng *Engine) execEvalStmt(ctx context.Context, query *query, s *parser.Eval
|
||||||
case parser.ValueTypeScalar:
|
case parser.ValueTypeScalar:
|
||||||
return Scalar{V: mat[0].Floats[0].F, T: start}, warnings, nil
|
return Scalar{V: mat[0].Floats[0].F, T: start}, warnings, nil
|
||||||
case parser.ValueTypeMatrix:
|
case parser.ValueTypeMatrix:
|
||||||
sort.Sort(mat)
|
ng.sortMatrixResult(ctx, query, mat)
|
||||||
return mat, warnings, nil
|
return mat, warnings, nil
|
||||||
default:
|
default:
|
||||||
panic(fmt.Errorf("promql.Engine.exec: unexpected expression type %q", s.Expr.Type()))
|
panic(fmt.Errorf("promql.Engine.exec: unexpected expression type %q", s.Expr.Type()))
|
||||||
|
@ -791,11 +791,15 @@ func (ng *Engine) execEvalStmt(ctx context.Context, query *query, s *parser.Eval
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO(fabxc): where to ensure metric labels are a copy from the storage internals.
|
// TODO(fabxc): where to ensure metric labels are a copy from the storage internals.
|
||||||
|
ng.sortMatrixResult(ctx, query, mat)
|
||||||
|
|
||||||
|
return mat, warnings, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (ng *Engine) sortMatrixResult(ctx context.Context, query *query, mat Matrix) {
|
||||||
sortSpanTimer, _ := query.stats.GetSpanTimer(ctx, stats.ResultSortTime, ng.metrics.queryResultSort)
|
sortSpanTimer, _ := query.stats.GetSpanTimer(ctx, stats.ResultSortTime, ng.metrics.queryResultSort)
|
||||||
sort.Sort(mat)
|
sort.Sort(mat)
|
||||||
sortSpanTimer.Finish()
|
sortSpanTimer.Finish()
|
||||||
|
|
||||||
return mat, warnings, nil
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// subqueryTimes returns the sum of offsets and ranges of all subqueries in the path.
|
// subqueryTimes returns the sum of offsets and ranges of all subqueries in the path.
|
||||||
|
|
Loading…
Reference in a new issue