前面学习了Loki中日志的保留策略,本文整理一下对于使用Loki官方helm chart部署Loki时如何在values.yaml中配置日志保留策略。
所有的配置参考都可以在这个helm chart的默认的values.yaml中获得,地址是https://github.com/grafana/loki/blob/main/production/helm/loki/values.yaml。
基于默认的values.yaml结合前面已经学习的保留策略配置,对我们使用的values.yaml定制如下(下面只保留了"保留策略相关的配置"):
# ...
loki:
storage:
bucketNames:
# ...
s3:
# ...
compactor:
# 运行压缩操作的间隔时间
compaction_interval: 10m
# 启用保留策略
retention_enabled: true
# 在保留期限过后,完全删除块(chunks)的延迟时间。
retention_delete_delay: 2h
# 用于删除块的goroutine的最大数量
retention_delete_worker_count: 150
limits_config:
# 是否强制确保每个样本都有一个指标名称。
enforce_metric_name: false
# 每个租户允许缓存的最新结果,以防止缓存可能仍处于变动状态的最新结果。
max_cache_freshness_per_query: 10m
# 是否拒绝旧样本。
reject_old_samples: true
# 在拒绝之前接受的最大样本时间
reject_old_samples_max_age: 1w
# 按时间间隔分割查询并并行执行。值为0将禁用按时间分割。
# 这也决定了在启用结果缓存时如何选择缓存键。
split_queries_by_interval: 15m
# 存储数据的保留期限,仅在压缩器配置中的retention_enabled为true时才适用。
# 从版本2.8.0开始,零值0或0s表示禁用保留。
# 在之前的版本中,Loki未正确处理零值以禁用保留,因此应使用一个非常大的值代替。
retention_period: 30d
tenants:
- name: org1
password: org1pass
# ...
schema_config:
configs:
- from: 2022-01-11
store: boltdb-shipper
object_store: s3
schema: v12
index:
prefix: loki_index_
period: 24h
storage_config:
hedging:
at: 250ms
max_per_second: 20
up_to: 3
# ...注意,只有当索引周期(index period)为24小时时,才可使用保留功能。