How to using the NewBatchPoints.AddPoints?

OS: windows 10 x64 / CentOS 7.3 x64
Go: 1.8.1
influxdb: 1.2.2

code:

// influxdb init
func DBset_influxdb() *db_influx {
	// Make client
	config := client.HTTPConfig{
		Addr: "http://localhost:8086",
		Username:"root",
		Password:"root1234",
	}
	c, err := client.NewHTTPClient(config)
	if err != nil {
		log.WithField("mylib", "dbaccess.DBset_influxdb.NewUDPClient").Error(err)
	}
	return &db_influx{c}
}

// db access close
func (db *db_influx) Close() {
	db.client.Close()
}

// db access write data
func (db *db_influx) WriteDatas(data_type string, datas []string) {
	if len(datas) == 0 {
		log.WithField("mylib", "dbaccess.WriteDatas.datas").Error("no datas.")
		return
	}
	// set data tags
	var dbname string
	var tags map[string]string
	switch data_type {
	case "cpu":
		tags = map[string]string{"cpu": "cpu-usage"}
		dbname = "sysinfo_cpu"
	case "mem":
		tags = map[string]string{"men": "men-usage"}
		dbname = "sysinfo_mem"
	case "disk":
		tags = map[string]string{"disk": "disk-usage"}
		dbname = "sysinfo_disk"
	case "net":
		tags = map[string]string{"net": "net-usage"}
		dbname = "sysinfo_net"
	default:
		log.WithField("mylib", "dbaccess.WriteDatas.data_type_set").Error(fmt.Sprintf("not support %s type", data_type))
		return
	}

	// Create a new point batch
	bp, _ := client.NewBatchPoints(client.BatchPointsConfig{Database: dbname, Precision: "ms"})

	// Create a point and add to batch
	pts := []*client.Point{}
	var fields map[string]interface{}
	for _, line := range datas {
		if err := json.Unmarshal([]byte(line), &fields); err != nil {
			log.WithField("mylib", "dbaccess.WriteDatas.Unmarshal").Error(err)
			return
		}
		pt, err := client.NewPoint("test_linux", tags, fields, time.Now())
		if err != nil {
			log.WithField("mylib", "dbaccess.WriteDatas.NewPoint").Error(err)
			return
		}
		pts = append(pts, pt)
	}
	bp.AddPoints(pts)

	// Write the batch
	if err := db.client.Write(bp); err != nil {
		log.WithField("mylib", "dbaccess.WriteDatas.Write").Error(err)
	}
}

but

fmt.Println(bp.Points())

is good.

using AddPoint code:

	var fields map[string]interface{}
	for _, line := range datas {
		if err := json.Unmarshal([]byte(line), &fields); err != nil {
			log.WithField("mylib", "dbaccess.WriteDatas.Unmarshal").Error(err)
			return
		}
		pt, err := client.NewPoint("test_linux", tags, fields, time.Now())
		if err != nil {
			log.WithField("mylib", "dbaccess.WriteDatas.NewPoint").Error(err)
			return
		}
		bp.AddPoint(pt)

		// Write the batch
		if err := db.client.Write(bp); err != nil {
			log.WithField("mylib", "dbaccess.WriteDatas.Write").Error(err)
		}
	}

why?

@pashifika Can you clarify your question? I’m not quite sure what you are asking.

bp.AddPoints is not worked.(only put the last pt

@pashifika This is still not enough information to understand what you are asking. Would you please describe the problem?