Added tracing span to evaluator.eval()
@@ -19,6 +19,7 @@ import (
"context"
"fmt"
"math"
+ "reflect"
"regexp"
"runtime"
"sort"
@@ -1125,6 +1126,10 @@ func (ev *evaluator) eval(expr parser.Expr) (parser.Value, storage.Warnings) {
}
numSteps := int((ev.endTimestamp-ev.startTimestamp)/ev.interval) + 1
+ // Create a new span to help investigate inner evaluation performances.
+ span, _ := opentracing.StartSpanFromContext(ev.ctx, stats.InnerEvalTime.SpanOperation()+" eval "+reflect.TypeOf(expr).String())
+ defer span.Finish()
+
switch e := expr.(type) {
case *parser.AggregateExpr:
unwrapParenExpr(&e.Param)
