问题描述
我对 grafana-loki 中的保留机制有疑问 我需要存储一年的日志并且能够查询它们 使用官方 Loki 图表在 k8s 中进行设置
下面是我的配置
auth_enabled: false
ingester:
chunk_idle_period: 5m
chunk_block_size: 262144
chunk_retain_period: 1m
# max_transfer_retries: 0
lifecycler:
ring:
kvstore:
store: inmemory
replication_factor: 1
limits_config:
enforce_metric_name: false
reject_old_samples: true
reject_old_samples_max_age: 168h
schema_config:
configs:
- from: 2020-05-15
store: aws
object_store: s3
schema: v11
index:
prefix: loki_index_prod_
period: 8760h
tags:
env: prod-loki
server:
http_listen_port: 3100
storage_config:
aws:
s3: s3://us-east-1/loki-prod-t
s3forcepathstyle: true
dynamodb:
dynamodb_url: dynamodb://us-east-1
table_manager:
index_tables_provisioning:
inactive_read_throughput: 5
inactive_write_throughput: 5
provisioned_write_throughput: 10
provisioned_read_throughput: 10
chunk_tables_provisioning:
inactive_read_throughput: 5
inactive_write_throughput: 5
provisioned_write_throughput: 10
provisioned_read_throughput: 10
retention_deletes_enabled: true
retention_period: 8760h
creation_grace_period: 24h
现在配置了一年的保留期,但是退出保留期会在dynamodb中创建新表,旧表会立即删除?
在这种情况下,我会丢失上一年的所有日志并从头开始吗?
另一方面是如何处理s3中chunk的retention?
请指教...
解决方法
不,您不会丢失上一年的所有日志并从头开始。表管理器使用以下公式保持最后一个表处于活动状态:
number_of_tables_to_keep = floor(retention_period / table_period) + 1
就你而言:
number_of_tables_to_keep = 8760 / 8760 + 1 = 2
请参阅 Loki 文档 here。