菜单
Grafana洛基 操作 存储 存储模式

Loki存储模式

为了支持存储层内容的迭代,Loki有一个可配置的存储模式。模式被定义为在一段时间内应用。一个Value标记了该模式的起点。模式一直是活动的,直到另一个条目用new日期。

schema_example

Loki使用已定义的模式来确定在存储和查询数据时使用哪种格式。

使用模式允许Loki在存储层上迭代,而不需要迁移现有数据。

更改模式

下面是改变模式时需要考虑的事项;如果模式更改没有正确完成,可能会创建一个阻止读取数据的场景。

  • 总是设置将新模式中的日期更改为将来的日期。

    日期由洛基解释为UTC 00:00:00开始。因此,Loki必须有一个未来的日期,以便在这个日期和时间到来时能够过渡到新的模式。

    在使用当前日期时,请注意您与UTC的关系。确保UTC 00:00:00还没有超过当前日期。

    例如,假设当前日期是2022-04-10,并且您希望更新到v12模式,因此您使用2022-04-11作为重新启动Loki新模式的日期。如果您忘记考虑到您的时区是UTC -5:00,而当前本地时区是20:00小时,那么实际上是2022-04-11T01:00:00 UTC。当Loki启动时,它将看到新的模式,并开始按照新模式写入和存储对象。如果您尝试查询在UTC时间00:00:00到01:00:00之间写入的数据,Loki将使用新的模式,数据将不可读,因为它是用以前的模式创建的。

  • 不能撤消或回滚架构更改。

    使用活动模式写入的任何数据只能由该模式读取。如果您希望返回到前面的模式;您可以使用前面的模式设置添加另一个新条目。

架构配置示例

Schema_config: configs:—from:“2020-07-31”index: period: 24h prefix: loki_ops_index_ object_store: GCS schema: v11 store: boltdb-shipper—from:“2022-01-20”index: period: 24h prefix: loki_ops_index_ object_store: GCS schema: v12 store: boltdb-shipper