Go写influxdb, 查询失败问题排查(时间设置)

218 阅读1分钟

1.环境:

本机windows 虚拟机centos7 influxdb容器运行 本机时间7月10日

golang写入influxdb代码如下:

tags := map[string]string{"device": "cpu"}
percent, _ := cpu.Percent(time.Second, false)
fields := map[string]interface{}{
   "occupancy": percent[0],
}
pt, err := cli.NewPoint("hd_monitor", tags, fields, time.Now())
if err != nil {
   fmt.Println("Error", err.Error())
}

bp, err := cli.NewBatchPoints(cli.BatchPointsConfig{
   Precision: "s",
   Database:  "monitor",
})

if err != nil {
   fmt.Println("Error: ", err.Error())
}
bp.AddPoint(pt)
err = client.Write(bp)
if err != nil {
   fmt.Println("Error: ", err.Error())
}

2.表现:

直接操作influxdb正常,也能通过client读取数据; 但是通过代码插入的数据,查询不到;

3.排查:

  • client连接正常,读取数据正常,且无报错;
  • 从grafana拉取数据发现时间轴在7月6日;猜想可能跟时区有关,由于本机插入时time.Now()大于虚机当时时间,select查询时显示不出来。

4.问题解决:

date -R 查看时区 +0800 东八区 时区正确

应该是系统本身时间不对,需要同步

yum install ntpdate
ntpdate cn.pool.ntp.org

再次查询influxdb,之前插入的数据都显示了出来