// NormalizeBatchPoints returns a slice of Points, created by populating individual // points within the batch, which do not have timestamps or tags, with the top-level // values. func NormalizeBatchPoints(bp client.BatchPoints) ([]Point, error) { points := []Point{} for _, p := range bp.Points { if p.Timestamp.IsZero() { if bp.Timestamp.IsZero() { p.Timestamp = time.Now() } else { p.Timestamp = bp.Timestamp } } if p.Precision == "" && bp.Precision != "" { p.Precision = bp.Precision } p.Timestamp = client.SetPrecision(p.Timestamp, p.Precision) if len(bp.Tags) > 0 { if p.Tags == nil { p.Tags = make(map[string]string) } for k := range bp.Tags { if p.Tags[k] == "" { p.Tags[k] = bp.Tags[k] } } } // Need to convert from a client.Point to a influxdb.Point points = append(points, Point{ Name: p.Name, Tags: p.Tags, Timestamp: p.Timestamp, Fields: p.Fields, }) } return points, nil }
// NormalizeBatchPoints returns a slice of Points, created by populating individual // points within the batch, which do not have times or tags, with the top-level // values. func NormalizeBatchPoints(bp client.BatchPoints) ([]models.Point, error) { points := []models.Point{} for _, p := range bp.Points { if p.Time.IsZero() { if bp.Time.IsZero() { p.Time = time.Now() } else { p.Time = bp.Time } } if p.Precision == "" && bp.Precision != "" { p.Precision = bp.Precision } p.Time = client.SetPrecision(p.Time, p.Precision) if len(bp.Tags) > 0 { if p.Tags == nil { p.Tags = make(map[string]string) } for k := range bp.Tags { if p.Tags[k] == "" { p.Tags[k] = bp.Tags[k] } } } if p.Measurement == "" { return points, fmt.Errorf("missing measurement") } if len(p.Fields) == 0 { return points, fmt.Errorf("missing fields") } // Need to convert from a client.Point to a influxdb.Point pt, err := models.NewPoint(p.Measurement, p.Tags, p.Fields, p.Time) if err != nil { return points, err } points = append(points, pt) } return points, nil }