# (default configuration)
auth_enabled: false

server:
  http_listen_port: 3100
  grpc_listen_port: 9096

ingester:
  lifecycler:
    address: 127.0.0.1
    ring:
      kvstore:
        store: inmemory
      replication_factor: 1
    final_sleep: 0s
  chunk_idle_period: 1h       # Flush any chunk idle for 1h
  max_chunk_age: 1h           # Flush chunks older than 1h
  chunk_target_size: 1048576  # Build chunks up to ~1MB in size
  chunk_retain_period: 30s    # Retain flushed chunks briefly (ensure index cache TTL is lower)
  wal:                        # Enable the WAL (write-ahead log) which is now the preferred mechanism for durability.
    enabled: true
    dir: /loki/wal
    flush_on_shutdown: true   # When set to true, the ingester will flush its in-memory data on shutdown.

schema_config:
  configs:
    - from: 2020-10-24
      store: tsdb             # Use the TSDB index store (recommended in Loki 3)
      object_store: filesystem
      schema: v13             # New schema version required for structured metadata/OTLP
      index:
        prefix: index_
        period: 24h

storage_config:
  tsdb_shipper:
    active_index_directory: /loki/tsdb-shipper-active
    cache_location: /loki/tsdb-shipper-cache
    cache_ttl: 24h
  filesystem:
    directory: /loki/chunks

compactor:
  working_directory: /loki/tsdb-shipper-compactor
  delete_request_store: filesystem  # Replaces the old shared_store setting
  compaction_interval: 10m
  retention_enabled: true
  retention_delete_delay: 2h
  retention_delete_worker_count: 150

limits_config:
  reject_old_samples: true
  reject_old_samples_max_age: 168h
  ingestion_burst_size_mb: 16
  ingestion_rate_mb: 16
  retention_period: 48h  # How long logs will be retained
  volume_enabled: true

ruler:
  storage:
    type: local
    local:
      directory: /loki/rules
  rule_path: /loki/rules-temp
  alertmanager_url: localhost
  ring:
    kvstore:
      store: inmemory
  enable_api: true