func (m *mockClient) Write(bp stdinflux.BatchPoints) error { for _, p := range bp.Points() { m.Points = append(m.Points, *p) m.Done() } return nil }
// Batches incoming Result.Point and sends them if the batch reaches 5k in size func (st *StressTest) batcher(pt *influx.Point, bp influx.BatchPoints) influx.BatchPoints { if len(bp.Points()) <= 5000 { bp.AddPoint(pt) } else { err := st.ResultsClient.Write(bp) if err != nil { log.Fatalf("Error writing performance stats\n error: %v\n", err) } bp = st.NewResultsPointBatch() } return bp }
// Batches incoming Result.Point and sends them if the batch reaches 5k in sizes func (sf *StoreFront) batcher(pt *influx.Point, bp influx.BatchPoints, bpconf influx.BatchPointsConfig) influx.BatchPoints { // If fewer than 5k add point and return if len(bp.Points()) <= 5000 { bp.AddPoint(pt) } else { // Otherwise send the batch err := sf.ResultsClient.Write(bp) // Check error if err != nil { log.Fatalf("Error writing performance stats\n error: %v\n", err) } // Reset the batch of points bp, _ = influx.NewBatchPoints(bpconf) } return bp }
func sendMetrics(config StartupConfig, runningConfig RunningConfig, bps influx.BatchPoints, retry bool) { influxClient, err := influxConnect(config, runningConfig) if err != nil { if retry { config.BpsChan <- bps } errHndlr(err, ERROR) return } pts := bps.Points() for len(pts) > 0 { chunkBps, err := influx.NewBatchPoints(influx.BatchPointsConfig{ Database: bps.Database(), Precision: bps.Precision(), RetentionPolicy: bps.RetentionPolicy(), }) if err != nil { if retry { config.BpsChan <- chunkBps } errHndlr(err, ERROR) } for _, p := range pts[:intMin(config.MaxPublishSize, len(pts))] { chunkBps.AddPoint(p) } pts = pts[intMin(config.MaxPublishSize, len(pts)):] err = influxClient.Write(chunkBps) if err != nil { if retry { config.BpsChan <- chunkBps } errHndlr(err, ERROR) } else { log.Info(fmt.Sprintf("Sent %v stats for %v", len(chunkBps.Points()), chunkBps.Database())) } } }
func (w *bufWriter) Write(bp influxdb.BatchPoints) error { for _, p := range bp.Points() { fmt.Fprintf(&w.buf, p.String()+"\n") } return nil }