From 72100169cf8060ba45fdbfdc2a2cc525d605c7d7 Mon Sep 17 00:00:00 2001 From: Owen Diehl Date: Wed, 22 Jan 2020 17:27:45 -0500 Subject: [PATCH 1/2] adds span metadata for split queries --- pkg/querier/queryrange/split_by_interval.go | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/pkg/querier/queryrange/split_by_interval.go b/pkg/querier/queryrange/split_by_interval.go index 2c16b95fbd5a..213e8665a063 100644 --- a/pkg/querier/queryrange/split_by_interval.go +++ b/pkg/querier/queryrange/split_by_interval.go @@ -6,6 +6,8 @@ import ( "github.com/cortexproject/cortex/pkg/querier/queryrange" "github.com/grafana/loki/pkg/logproto" + "github.com/opentracing/opentracing-go" + otlog "github.com/opentracing/opentracing-go/log" "github.com/weaveworks/common/user" ) @@ -98,6 +100,10 @@ func (h *splitByInterval) Process( func (h *splitByInterval) loop(ctx context.Context, ch <-chan *lokiResult) { for data := range ch { + + _, ctx := opentracing.StartSpanFromContext(ctx, "interval") + queryrange.LogToSpan(ctx, data.req) + resp, err := h.next.Do(ctx, data.req) if err != nil { data.err <- err @@ -117,6 +123,11 @@ func (h *splitByInterval) Do(ctx context.Context, r queryrange.Request) (queryra intervals := splitByTime(lokiRequest, h.interval) + if sp := opentracing.SpanFromContext(ctx); sp != nil { + sp.LogFields(otlog.Int("n_intervals", len(intervals))) + + } + if lokiRequest.Direction == logproto.BACKWARD { for i, j := 0, len(intervals)-1; i < j; i, j = i+1, j-1 { intervals[i], intervals[j] = intervals[j], intervals[i] From 5139b9f639aad3f9834ef002ce03c2db54c87f3e Mon Sep 17 00:00:00 2001 From: Owen Diehl Date: Wed, 22 Jan 2020 22:46:03 -0500 Subject: [PATCH 2/2] finishes interval span --- pkg/querier/queryrange/split_by_interval.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pkg/querier/queryrange/split_by_interval.go b/pkg/querier/queryrange/split_by_interval.go index 213e8665a063..0f49f369011c 100644 --- a/pkg/querier/queryrange/split_by_interval.go +++ b/pkg/querier/queryrange/split_by_interval.go @@ -101,7 +101,7 @@ func (h *splitByInterval) loop(ctx context.Context, ch <-chan *lokiResult) { for data := range ch { - _, ctx := opentracing.StartSpanFromContext(ctx, "interval") + sp, ctx := opentracing.StartSpanFromContext(ctx, "interval") queryrange.LogToSpan(ctx, data.req) resp, err := h.next.Do(ctx, data.req) @@ -110,6 +110,7 @@ func (h *splitByInterval) loop(ctx context.Context, ch <-chan *lokiResult) { } else { data.resp <- resp } + sp.Finish() } }