Skip to content

Commit

Permalink
chore: reduces span footprint + double recording (#12864)
Browse files Browse the repository at this point in the history
Trying to remove some cruft from traces.
  • Loading branch information
owen-d authored and shantanualsi committed May 6, 2024
1 parent da06f1c commit eaadf54
Show file tree
Hide file tree
Showing 7 changed files with 9 additions and 28 deletions.
11 changes: 6 additions & 5 deletions pkg/bloomgateway/querier.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ import (

"github.com/go-kit/log"
"github.com/go-kit/log/level"
"github.com/opentracing/opentracing-go"
"github.com/pkg/errors"
"github.com/prometheus/client_golang/prometheus"
"github.com/prometheus/client_golang/prometheus/promauto"
Expand All @@ -16,6 +15,7 @@ import (
v1 "github.com/grafana/loki/v3/pkg/storage/bloom/v1"
"github.com/grafana/loki/v3/pkg/storage/stores/shipper/bloomshipper"
"github.com/grafana/loki/v3/pkg/util/constants"
"github.com/grafana/loki/v3/pkg/util/spanlogger"
)

type querierMetrics struct {
Expand Down Expand Up @@ -90,8 +90,9 @@ func (bq *BloomQuerier) FilterChunkRefs(ctx context.Context, tenant string, from
if !bq.limits.BloomGatewayEnabled(tenant) || len(chunkRefs) == 0 || len(v1.ExtractTestableLineFilters(queryPlan.AST)) == 0 {
return chunkRefs, nil
}
sp, ctx := opentracing.StartSpanFromContext(ctx, "bloomquerier.FilterChunkRefs")
defer sp.Finish()

logger, ctx := spanlogger.NewWithLogger(ctx, bq.logger, "bloomquerier.FilterChunkRefs")
defer logger.Finish()

grouped := groupedChunksRefPool.Get(len(chunkRefs))
defer groupedChunksRefPool.Put(grouped)
Expand Down Expand Up @@ -141,8 +142,7 @@ func (bq *BloomQuerier) FilterChunkRefs(ctx context.Context, tenant string, from
postFilterChunks := len(result)
postFilterSeries := len(deduped)

level.Debug(bq.logger).Log(
"operation", "bloomquerier.FilterChunkRefs",
level.Debug(logger).Log(
"tenant", tenant,
"from", from.Time(),
"through", through.Time(),
Expand All @@ -153,6 +153,7 @@ func (bq *BloomQuerier) FilterChunkRefs(ctx context.Context, tenant string, from
"preFilterSeries", preFilterSeries,
"postFilterSeries", postFilterSeries,
"filteredSeries", preFilterSeries-postFilterSeries,
"operation", "bloomquerier.FilterChunkRefs",
)

bq.metrics.chunksTotal.Add(float64(preFilterChunks))
Expand Down
1 change: 0 additions & 1 deletion pkg/logql/engine.go
Original file line number Diff line number Diff line change
Expand Up @@ -232,7 +232,6 @@ func (q *query) Exec(ctx context.Context) (logqlmodel.Result, error) {
sp, ctx := opentracing.StartSpanFromContext(ctx, "query.Exec")
defer sp.Finish()
spLogger := spanlogger.FromContext(ctx)
defer spLogger.Finish()

sp.LogKV(
"type", GetRangeType(q.params),
Expand Down
4 changes: 0 additions & 4 deletions pkg/querier/handler.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,6 @@ import (
"fmt"
"net/http"

"github.com/opentracing/opentracing-go"

"github.com/grafana/loki/v3/pkg/loghttp"
"github.com/grafana/loki/v3/pkg/logproto"
"github.com/grafana/loki/v3/pkg/querier/queryrange"
Expand All @@ -24,8 +22,6 @@ func NewQuerierHandler(api *QuerierAPI) *Handler {
}

func (h *Handler) Do(ctx context.Context, req queryrangebase.Request) (queryrangebase.Response, error) {
span, ctx := opentracing.StartSpanFromContext(ctx, "queryHandler")
defer span.Finish()

switch concrete := req.(type) {
case *queryrange.LokiRequest:
Expand Down
1 change: 0 additions & 1 deletion pkg/querier/queryrange/downstreamer.go
Original file line number Diff line number Diff line change
Expand Up @@ -143,7 +143,6 @@ func (in instance) Downstream(ctx context.Context, queries []logql.DownstreamQue
sp, ctx := opentracing.StartSpanFromContext(ctx, "DownstreamHandler.instance")
defer sp.Finish()
logger := spanlogger.FromContext(ctx)
defer logger.Finish()
level.Debug(logger).Log("shards", fmt.Sprintf("%+v", qry.Params.Shards()), "query", req.GetQuery(), "step", req.GetStep(), "handler", reflect.TypeOf(in.handler), "engine", "downstream")

res, err := in.handler.Do(ctx, req)
Expand Down
2 changes: 0 additions & 2 deletions pkg/querier/queryrange/limits.go
Original file line number Diff line number Diff line change
Expand Up @@ -340,8 +340,6 @@ func (q *querySizeLimiter) guessLimitName() string {
}

func (q *querySizeLimiter) Do(ctx context.Context, r queryrangebase.Request) (queryrangebase.Response, error) {
span, ctx := opentracing.StartSpanFromContext(ctx, "query_size_limits")
defer span.Finish()
log := spanlogger.FromContext(ctx)
defer log.Finish()

Expand Down
8 changes: 3 additions & 5 deletions pkg/querier/queryrange/shard_resolver.go
Original file line number Diff line number Diff line change
Expand Up @@ -221,9 +221,7 @@ func (r *dynamicShardResolver) ShardingRanges(expr syntax.Expr, targetBytesPerSh
[]logproto.ChunkRefGroup,
error,
) {
sp, ctx := opentracing.StartSpanFromContext(r.ctx, "dynamicShardResolver.ShardingRanges")
defer sp.Finish()
log := spanlogger.FromContext(ctx)
log := spanlogger.FromContext(r.ctx)
defer log.Finish()

adjustedFrom := r.from
Expand Down Expand Up @@ -254,7 +252,7 @@ func (r *dynamicShardResolver) ShardingRanges(expr syntax.Expr, targetBytesPerSh
exprStr := expr.String()
// try to get shards for the given expression
// if it fails, fallback to linearshards based on stats
resp, err := r.next.Do(ctx, &logproto.ShardsRequest{
resp, err := r.next.Do(r.ctx, &logproto.ShardsRequest{
From: adjustedFrom,
Through: r.through,
Query: expr.String(),
Expand All @@ -271,7 +269,7 @@ func (r *dynamicShardResolver) ShardingRanges(expr syntax.Expr, targetBytesPerSh
}

// accumulate stats
logqlstats.JoinResults(ctx, casted.Response.Statistics)
logqlstats.JoinResults(r.ctx, casted.Response.Statistics)

var refs int
for _, x := range casted.Response.ChunkGroups {
Expand Down
10 changes: 0 additions & 10 deletions pkg/querier/worker/scheduler_processor.go
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,6 @@ import (
"github.com/grafana/loki/v3/pkg/querier/queryrange"
querier_stats "github.com/grafana/loki/v3/pkg/querier/stats"
"github.com/grafana/loki/v3/pkg/scheduler/schedulerpb"
httpgrpcutil "github.com/grafana/loki/v3/pkg/util/httpgrpc"
util_log "github.com/grafana/loki/v3/pkg/util/log"
)

Expand Down Expand Up @@ -147,15 +146,6 @@ func (sp *schedulerProcessor) querierLoop(c schedulerpb.SchedulerForQuerier_Quer
ctx := user.InjectOrgID(ctx, request.UserID)

sp.metrics.inflightRequests.Inc()
tracer := opentracing.GlobalTracer()
// Ignore errors here. If we cannot get parent span, we just don't create new one.
parentSpanContext, _ := httpgrpcutil.GetParentSpanForRequest(tracer, request)
if parentSpanContext != nil {
queueSpan, spanCtx := opentracing.StartSpanFromContextWithTracer(ctx, tracer, "querier_processor_runRequest", opentracing.ChildOf(parentSpanContext))
defer queueSpan.Finish()

ctx = spanCtx
}
logger := util_log.WithContext(ctx, sp.log)

switch r := request.Request.(type) {
Expand Down

0 comments on commit eaadf54

Please sign in to comment.