Add an OpenTracing span for each rule
* Add an OpenTracing span for each rule
So that tags and child spans can be traced back to the rule that they
refer to.
@@ -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())
