问题内容
我想用这样的签名写点InfluxDB:
{
"_field": "some_uuid",
"_value": float64,
"_time": "2006-01-02T15:04:05.000Z"
}
登录后复制
但是 uuid 写入“field”键而不是“_field”,并且“_field”键具有默认值 - “value”。
我该如何修复它?
这是我的示例代码:
import (
"fmt"
influxdb2 "github.com/influxdata/influxdb-client-go/v2"
"time"
)
type TagData struct {
TagId string `json:"tag_id"`
Value float64 `json:"value"`
Timestamp string `json:"timestamp"`
}
func main() {
inflClient := influxdb2.NewClient("my_url", "my_token")
writeAPI := inflClient.WriteAPI("my_org", "my_bucket")
data := TagData{
TagId: "d8f623a9-c255-4e0d-9c2f-126056875cef",
Value: 300,
Timestamp: "2023-12-11T15:35:42.343Z",
}
parsedTime, err := time.Parse("2006-01-02T15:04:05.000Z", data.Timestamp)
if err != nil {
fmt.Println("Error parsing time:", err)
return
}
point := influxdb2.NewPointWithMeasurement("data").
AddTag("field", data.TagId).
AddField("value", data.Value).
SetTime(parsedTime.UTC())
writeAPI.WritePoint(point)
writeAPI.Flush()
inflClient.Close()
}
登录后复制
正确答案
如果有人遇到同样的问题 - 可能的解决方案是:
point := influxdb2.NewPointWithMeasurement("your_measurement").
AddField(data.TagId, data.Value).
SetTime(parsedTime.UTC())
登录后复制
point := influxdb2.NewPoint("your_measurement",
map[string]string{},
map[string]interface{}{data.TagId: data.Value},
parsedTime.UTC())
登录后复制
以上就是Golang InfluxDB 客户端使用 _field 键写入点的详细内容,更多请关注每日运维网(www.mryunwei.com)其它相关文章!