Docker InfluxDB 在 UTC 时区运行
Docker InfluxDB runs in UTC timezone
我尝试运行influxdb作为Docker容器。我正在为此使用 docker-compose:
influxdb:
image: influxdb:1.7.7-alpine
ports:
- "8083:8083"
- "8086:8086"
- "8090:8090"
volumes:
- ./influxdb-data:/var/lib/influxdb
networks:
- mynet
expose:
- "8086"
environment:
TZ: Europe/Prague
问题出在时区。我不知道如何在我的本地时区启动 InfluxDB,这里你可以看到问题:
[michal@motoko ~]$ LC_ALL=C date
Fri Aug 23 07:38:44 CEST 2019
[michal@motoko ~]$ LC_ALL=C influx -host 'localhost'
Connected to http://localhost:8086 version 1.7.7
InfluxDB shell version: 1.7.7
> use test Using database test
> insert test value=4
> precision rfc3339
> select * from test
name: test
time value
---- ----
2019-08-23T05:39:09.017460215Z 4
>
如您所见(正确),我机器上的实时时间是“07:38:44”,而存储在数据库中的时间戳是“05:39:09”。我在 UTC+2 时区。
InfluxDB 可以在我当地的时区 Docker 运行 中使用吗?我尝试设置 TZ
变量,但 InfluxDB 可能需要 /etc/timezone
。我还没有找到 InfluxDB 配置参数。
或者我是否需要在每个查询中使用 tz()
?这可以正常工作:
> select * from test tz('Europe/Prague')
name: test
time value
---- -----
2019-08-23T07:39:09.017460215+02:00 4
如评论中所述,InfluxDB 时区默认为 immutable。但是正如您提到的,您可以使用 tz() 命令设置时区。
一个可能的解决方案是将您的时区存储在 InfluxDB 上并在您的查询中使用它。
我尝试运行influxdb作为Docker容器。我正在为此使用 docker-compose:
influxdb:
image: influxdb:1.7.7-alpine
ports:
- "8083:8083"
- "8086:8086"
- "8090:8090"
volumes:
- ./influxdb-data:/var/lib/influxdb
networks:
- mynet
expose:
- "8086"
environment:
TZ: Europe/Prague
问题出在时区。我不知道如何在我的本地时区启动 InfluxDB,这里你可以看到问题:
[michal@motoko ~]$ LC_ALL=C date
Fri Aug 23 07:38:44 CEST 2019
[michal@motoko ~]$ LC_ALL=C influx -host 'localhost'
Connected to http://localhost:8086 version 1.7.7
InfluxDB shell version: 1.7.7
> use test Using database test
> insert test value=4
> precision rfc3339
> select * from test
name: test
time value
---- ----
2019-08-23T05:39:09.017460215Z 4
>
如您所见(正确),我机器上的实时时间是“07:38:44”,而存储在数据库中的时间戳是“05:39:09”。我在 UTC+2 时区。
InfluxDB 可以在我当地的时区 Docker 运行 中使用吗?我尝试设置 TZ
变量,但 InfluxDB 可能需要 /etc/timezone
。我还没有找到 InfluxDB 配置参数。
或者我是否需要在每个查询中使用 tz()
?这可以正常工作:
> select * from test tz('Europe/Prague')
name: test
time value
---- -----
2019-08-23T07:39:09.017460215+02:00 4
如评论中所述,InfluxDB 时区默认为 immutable。但是正如您提到的,您可以使用 tz() 命令设置时区。
一个可能的解决方案是将您的时区存储在 InfluxDB 上并在您的查询中使用它。