From 93494d8b7e54b047729df65b1b4218765bbf2e67 Mon Sep 17 00:00:00 2001 From: Bryan Boreham Date: Fri, 30 Mar 2018 21:29:19 +0100 Subject: [PATCH] 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. --- rules/manager.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/rules/manager.go b/rules/manager.go index b2a8a51c8..1e3311b3f 100644 --- a/rules/manager.go +++ b/rules/manager.go @@ -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())