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

Function doWrite

cmd/tempo-vulture/main.go:307–327  ·  view source on GitHub ↗
(jaegerClient util.JaegerClient, tickerWrite *time.Ticker, interval time.Duration, config vultureConfiguration, l *zap.Logger)

Source from the content-addressed store, hash-verified

305}
306
307func doWrite(jaegerClient util.JaegerClient, tickerWrite *time.Ticker, interval time.Duration, config vultureConfiguration, l *zap.Logger) {
308 go func() {
309 for now := range tickerWrite.C {
310 timestamp := now.Round(interval)
311 info := util.NewTraceInfo(timestamp, config.tempoOrgID)
312
313 logger := l.With(
314 zap.String("org_id", config.tempoOrgID),
315 zap.Int64("seed", info.Timestamp().Unix()),
316 )
317
318 logger.Info("sending trace")
319
320 err := info.EmitBatches(context.Background(), jaegerClient)
321 if err != nil {
322 metricErrorTotal.Inc()
323 }
324 queueFutureBatches(jaegerClient, info, config, l)
325 }
326 }()
327}
328
329func queueFutureBatches(client util.JaegerClient, info *util.TraceInfo, config vultureConfiguration, l *zap.Logger) {
330 if info.LongWritesRemaining() == 0 {

Callers 3

TestDoWriteFunction · 0.85
TestDoWriteWithErrorFunction · 0.85
mainFunction · 0.85

Calls 6

TimestampMethod · 0.95
EmitBatchesMethod · 0.95
NewTraceInfoFunction · 0.92
queueFutureBatchesFunction · 0.85
IncMethod · 0.65
StringMethod · 0.45

Tested by 2

TestDoWriteFunction · 0.68
TestDoWriteWithErrorFunction · 0.68