in internal/mode/webserver/webserver.go [578:630]
func (s *loggedSearcher) log(ctx context.Context, q query.Q, opts *zoekt.SearchOptions, st *zoekt.Stats, err error) {
logger := s.Logger.
WithTrace(traceContext(ctx)).
With(
sglog.String("query", q.String()),
sglog.Bool("opts.EstimateDocCount", opts.EstimateDocCount),
sglog.Bool("opts.Whole", opts.Whole),
sglog.Int("opts.ShardMaxMatchCount", opts.ShardMaxMatchCount),
sglog.Int("opts.TotalMaxMatchCount", opts.TotalMaxMatchCount),
sglog.Duration("opts.MaxWallTime", opts.MaxWallTime),
sglog.Int("opts.MaxDocDisplayCount", opts.MaxDocDisplayCount),
sglog.Int("opts.MaxMatchDisplayCount", opts.MaxMatchDisplayCount),
)
if err != nil {
switch {
case errors.Is(err, context.Canceled):
logger.Warn("search canceled", sglog.Error(err))
case errors.Is(err, context.DeadlineExceeded):
logger.Warn("search timeout", sglog.Error(err))
default:
logger.Error("search failed", sglog.Error(err))
}
return
}
if st == nil {
return
}
logger.Debug("search",
sglog.Int64("stat.ContentBytesLoaded", st.ContentBytesLoaded),
sglog.Int64("stat.IndexBytesLoaded", st.IndexBytesLoaded),
sglog.Int("stat.Crashes", st.Crashes),
sglog.Duration("stat.Duration", st.Duration),
sglog.Int("stat.FileCount", st.FileCount),
sglog.Int("stat.ShardFilesConsidered", st.ShardFilesConsidered),
sglog.Int("stat.FilesConsidered", st.FilesConsidered),
sglog.Int("stat.FilesLoaded", st.FilesLoaded),
sglog.Int("stat.FilesSkipped", st.FilesSkipped),
sglog.Int("stat.ShardsScanned", st.ShardsScanned),
sglog.Int("stat.ShardsSkipped", st.ShardsSkipped),
sglog.Int("stat.ShardsSkippedFilter", st.ShardsSkippedFilter),
sglog.Int("stat.MatchCount", st.MatchCount),
sglog.Int("stat.NgramMatches", st.NgramMatches),
sglog.Int("stat.NgramLookups", st.NgramLookups),
sglog.Duration("stat.Wait", st.Wait),
sglog.Duration("stat.MatchTreeConstruction", st.MatchTreeConstruction),
sglog.Duration("stat.MatchTreeSearch", st.MatchTreeSearch),
sglog.Int("stat.RegexpsConsidered", st.RegexpsConsidered),
sglog.String("stat.FlushReason", st.FlushReason.String()),
)
}