| 305 | } |
| 306 | |
| 307 | func 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 | |
| 329 | func queueFutureBatches(client util.JaegerClient, info *util.TraceInfo, config vultureConfiguration, l *zap.Logger) { |
| 330 | if info.LongWritesRemaining() == 0 { |