我正在使用官方的InfluxDB docker映像。我想将保留策略默认设置为14 days

我可以设置各种ENV变量来更改InfluxDB的配置,例如INFLUXDB_RETENTION_POLICY。这希望将保留策略的名称(例如“ default”)用作默认保留策略。

问题在于此默认策略的有效期为7天。我需要将其设置为14天。

文档相当差。我找不到任何ENV变量来调整默认持续时间。我还可以将INFLUXDB_RETENTION_POLICY变量设置为其他保留策略的其他名称,但是我看不到如何通过配置来创建该保留策略。

有谁知道:
1)一种通过配置更改默认保留期限的方法
要么
2)通过配置创建保留策略的方法

最佳答案

不幸的是,无法通过配置设置默认保留策略。原因是通常在创建数据库的过程中定义保留策略的持续时间。

CREATE DATABASE <database_name>
[WITH [DURATION <duration>] [REPLICATION <n>]
      [SHARD DURATION <duration>] [NAME <retention-policy-name>]]


如果允许用户通过配置设置默认保留期限,则命令的结果

CREATE DATABASE mydb


会因实例而异。虽然这不一定有问题,但也不理想。


问题在于此默认策略的有效期为7天。我需要将其设置为14天。


InfluxDB中的默认保留策略应为无限。

> CREATE DATABASE mydb
> SHOW RETENTION POLICIES ON mydb
name    duration shardGroupDuration replicaN default
----    -------- ------------------ -------- -------
autogen 0s       168h0m0s           1        true


在这里,我们看到保留策略的持续时间是0s,这是无限的别名,而分片组的持续时间是168h0m0s,这是7天。

我认为这里的困惑主要是相对常见的-主要是由于保留政策命名不当。在InfluxDB中,数据库是保留策略的容器,而保留策略是实际时间序列数据的容器。也就是说,保留策略与其说是一个策略,不如说是一个容器,该容器对其所包含的所有数据都有一个策略。

我的建议是在InfluxDB中创建数据库时始终完全明确。这样做将始终保证您的数据库具有正确的保留策略期限。因此,要创建具有14天保留策略的数据库,请发出以下命令

CREATE DATABASE mydb WITH DURATION 14d

关于configuration - 如何通过配置为InfluxDB设置默认保留策略和持续时间,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41620595/

10-15 23:14