我正在使用官方的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/