【发布时间】:2019-08-23 05:58:08
【问题描述】:
我尝试将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 时区。
Docker 中的 InfluxDB 可以在我的本地时区运行吗?我尝试设置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
【问题讨论】:
-
嗨,Michal,你见过this吗?
-
@RobertoGonçalves 我想我做到了,我希望这是旧信息。 :-) 保存有关 InfluxDB 数据时区信息的常用方法是什么?我需要在外部某个地方维护它吗?
-
我不知道我的问题是否正确...... InfluxDB 只有它的核心 UTC。
-
@RobertoGonçalves 我知道,但您也需要在某处保留有关时区的信息。我想您可以执行“INSERT timezone,appname=myapp value='Europe/Prague'”之类的操作,然后以这种方式将其保存在数据库中。
-
哦!现在我明白了!当然,您可以像这样保留您的时区信息,然后进行查询以使用它。
标签: docker docker-compose timezone influxdb