Add an OpenTracing span for each rule (#4027)

* Add an OpenTracing span for each rule

So that tags and child spans can be traced back to the rule that they
refer to.
This commit is contained in:
Bryan Boreham 2018-03-30 21:29:19 +01:00 committed by Brian Brazil
parent 68e394a56e
commit 93494d8b7e
1 changed files with 4 additions and 0 deletions

View File

@ -27,6 +27,7 @@ import (
"github.com/go-kit/kit/log"
"github.com/go-kit/kit/log/level"
opentracing "github.com/opentracing/opentracing-go"
"github.com/prometheus/client_golang/prometheus"
"github.com/prometheus/prometheus/pkg/labels"
@ -324,7 +325,10 @@ func (g *Group) Eval(ctx context.Context, ts time.Time) {
}
func(i int, rule Rule) {
sp, ctx := opentracing.StartSpanFromContext(ctx, "rule")
sp.SetTag("name", rule.Name())
defer func(t time.Time) {
sp.Finish()
evalDuration.Observe(time.Since(t).Seconds())
rule.SetEvaluationTime(time.Since(t))
}(time.Now())