diff --git a/pkg/experiment/query_backend/block_reader.go b/pkg/experiment/query_backend/block_reader.go index 5a8a5326f7..1c93ccd9b6 100644 --- a/pkg/experiment/query_backend/block_reader.go +++ b/pkg/experiment/query_backend/block_reader.go @@ -73,6 +73,7 @@ func (b *BlockReader) Invoke( if err != nil { return nil, status.Errorf(codes.InvalidArgument, "request validation failed: %v", err) } + r.setTraceTags(span) g, ctx := errgroup.WithContext(ctx) agg := newAggregator(req) @@ -113,6 +114,23 @@ type request struct { endTime int64 // Unix nano. } +func (r *request) setTraceTags(span opentracing.Span) { + if r.src == nil { + return + } + span.SetTag("start_time", model.Time(r.src.StartTime).Time().String()) + span.SetTag("end_time", model.Time(r.src.EndTime).Time().String()) + span.SetTag("matchers", r.src.LabelSelector) + + if len(r.src.Query) > 0 { + queryTypes := make([]string, 0, len(r.src.Query)) + for _, q := range r.src.Query { + queryTypes = append(queryTypes, q.QueryType.String()) + } + span.SetTag("query_types", queryTypes) + } +} + func validateRequest(req *queryv1.InvokeRequest) (*request, error) { if len(req.Query) == 0 { return nil, fmt.Errorf("no queries provided")