go influxdb 批量写入 api
原创
©著作权归作者所有:来自51CTO博客作者go工程师的原创作品,请联系作者获取转载授权,否则将追究法律责任
a := []string{}
a1 := strings.Join(a, "\n")
reader := bytes.NewBuffer([]byte(a1))
cHttp := &http.Client{Timeout: 10 * time.Second}
resp, _ := http.NewRequest("POST", "http://localhost:8086/api/v2/write?org=org&bucket=test&precision=s", reader)
resp.Header.Add("Authorization", "Token 12345")
resp.Header.Set("Content-Type", "text/plain; charset=utf-8")
resp.Header.Set("Accept", "application/json")
_, _ = cHttp.Do(resp)
influxdbClient := influxdb2.NewClient("http://", "")
influxdbClient.Options().SetPrecision(time.Second)
writeAPI := influxdbClient.WriteAPIBlocking("org", "test")
data := make(map[string]float64)
data["1"] = 71.00
data["2"] = 72.00
data["3"] = 73.00
data["4"] = 74.00
var pList []*write.Point
for k, v := range data {
p := influxdb2.NewPoint("cpu",
map[string]string{"id": "123", "cpu": k},
map[string]interface{}{"s": v},
time.Now())
pList = append(pList, p)
}
fmt.Println(pList)
_ = writeAPI.WritePoint(context.Background(), pList...)
_ = writeAPI.Flush(context.Background())
influxdbClient.Close()