Loki 保留期 s3 + 发电机

问题描述

我对 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