MCPcopy
hub / github.com/grafana/tempo / queueFutureBatches

Function queueFutureBatches

cmd/tempo-vulture/main.go:329–364  ·  view source on GitHub ↗
(client util.JaegerClient, info *util.TraceInfo, config vultureConfiguration, l *zap.Logger)

Source from the content-addressed store, hash-verified

327}
328
329func queueFutureBatches(client util.JaegerClient, info *util.TraceInfo, config vultureConfiguration, l *zap.Logger) {
330 if info.LongWritesRemaining() == 0 {
331 return
332 }
333
334 logger := l.With(
335 zap.String("org_id", config.tempoOrgID),
336 zap.String("write_trace_id", info.HexID()),
337 zap.Int64("seed", info.Timestamp().Unix()),
338 zap.Int64("longWritesRemaining", info.LongWritesRemaining()),
339 )
340 logger.Info("queueing future batches")
341
342 info.Done()
343
344 go func() {
345 time.Sleep(config.tempoLongWriteBackoffDuration)
346
347 logger := l.With(
348 zap.String("org_id", config.tempoOrgID),
349 zap.String("write_trace_id", info.HexID()),
350 zap.Int64("seed", info.Timestamp().Unix()),
351 zap.Int64("longWritesRemaining", info.LongWritesRemaining()),
352 )
353 logger.Info("sending trace")
354
355 err := info.EmitBatches(context.Background(), client)
356 if err != nil {
357 logger.Error("failed to queue batches",
358 zap.Error(err),
359 )
360 }
361
362 queueFutureBatches(client, info, config, l)
363 }()
364}
365
366func runChecker(
367 ticker *time.Ticker,

Callers 2

TestQueueFutureBatchesFunction · 0.85
doWriteFunction · 0.85

Calls 8

LongWritesRemainingMethod · 0.80
HexIDMethod · 0.80
TimestampMethod · 0.80
EmitBatchesMethod · 0.80
DoneMethod · 0.65
SleepMethod · 0.65
ErrorMethod · 0.65
StringMethod · 0.45

Tested by 1

TestQueueFutureBatchesFunction · 0.68