fork of https://github.com/sourcegraph/zoekt
0

Configure Feed

Select the types of activity you want to include in your feed.

1package web 2 3import ( 4 "context" 5 6 "github.com/opentracing/opentracing-go" 7 8 "github.com/sourcegraph/zoekt" 9 "github.com/sourcegraph/zoekt/internal/trace" 10 "github.com/sourcegraph/zoekt/query" 11) 12 13func NewTraceAwareSearcher(s zoekt.Streamer) zoekt.Streamer { 14 return traceAwareSearcher{Searcher: s} 15} 16 17// traceAwareSearcher wraps a zoekt.Searcher instance so that the tracing context item is set in the 18// context. This context item toggles on trace collection via the 19// github.com/sourcegraph/zoekt/internal/trace/ot package. 20type traceAwareSearcher struct { 21 Searcher zoekt.Streamer 22} 23 24func (s traceAwareSearcher) Search( 25 ctx context.Context, 26 q query.Q, 27 opts *zoekt.SearchOptions, 28) (*zoekt.SearchResult, error) { 29 ctx = trace.WithOpenTracingEnabled(ctx, opts.Trace) 30 spanContext := trace.SpanContextFromContext(ctx) 31 if opts.Trace && spanContext != nil { 32 var span opentracing.Span 33 span, ctx = opentracing.StartSpanFromContext(ctx, "zoekt.traceAwareSearcher.Search", opentracing.ChildOf(spanContext)) 34 defer span.Finish() 35 } 36 return s.Searcher.Search(ctx, q, opts) 37} 38 39func (s traceAwareSearcher) StreamSearch( 40 ctx context.Context, 41 q query.Q, 42 opts *zoekt.SearchOptions, 43 sender zoekt.Sender, 44) error { 45 ctx = trace.WithOpenTracingEnabled(ctx, opts.Trace) 46 spanContext := trace.SpanContextFromContext(ctx) 47 if opts.Trace && spanContext != nil { 48 var span opentracing.Span 49 span, ctx = opentracing.StartSpanFromContext(ctx, "zoekt.traceAwareSearcher.StreamSearch", opentracing.ChildOf(spanContext)) 50 defer span.Finish() 51 } 52 return s.Searcher.StreamSearch(ctx, q, opts, sender) 53} 54 55func (s traceAwareSearcher) List(ctx context.Context, q query.Q, opts *zoekt.ListOptions) (*zoekt.RepoList, error) { 56 return s.Searcher.List(ctx, q, opts) 57} 58func (s traceAwareSearcher) Close() { s.Searcher.Close() } 59func (s traceAwareSearcher) String() string { return s.Searcher.String() }