I am trying to set up Loki using S3. I read Deploy the Loki Helm chart on AWS | Grafana Loki documentation
which has
loki:
schemaConfig:
configs:
- from: "2024-04-01"
store: tsdb
object_store: s3
schema: v13
index:
prefix: loki_index_
period: 24h
storage_config:
aws:
region: <S3 BUCKET REGION> # for example, eu-west-2
bucketnames: <CHUNK BUCKET NAME> # Your actual S3 bucket name, for example, loki-aws-dev-chunks
s3forcepathstyle: false
ingester:
chunk_encoding: snappy
pattern_ingester:
enabled: true
limits_config:
allow_structured_metadata: true
volume_enabled: true
retention_period: 672h # 28 days retention
compactor:
retention_enabled: true
delete_request_store: s3
ruler:
enable_api: true
storage:
type: s3
s3:
region: <S3 BUCKET REGION> # for example, eu-west-2
bucketnames: <RULER BUCKET NAME> # Your actual S3 bucket name, for example, loki-aws-dev-ruler
s3forcepathstyle: false
alertmanager_url: http://prom:9093 # The URL of the Alertmanager to send alerts (Prometheus, Mimir, etc.)
querier:
max_concurrent: 4
storage:
type: s3
bucketNames:
chunks: "<CHUNK BUCKET NAME>" # Your actual S3 bucket name (loki-aws-dev-chunks)
ruler: "<RULER BUCKET NAME>" # Your actual S3 bucket name (loki-aws-dev-ruler)
# admin: "<Insert s3 bucket name>" # Your actual S3 bucket name (loki-aws-dev-admin) - GEL customers only
s3:
region: <S3 BUCKET REGION> # eu-west-2
#insecure: false
# s3forcepathstyle: false
serviceAccount:
create: true
annotations:
"eks.amazonaws.com/role-arn": "arn:aws:iam::<Account ID>:role/LokiServiceAccountRole" # The service role you created
deploymentMode: Distributed
ingester:
replicas: 3
persistence:
storageClass: gp3
accessModes:
- ReadWriteOnce
size: 10Gi
querier:
replicas: 3
maxUnavailable: 2
persistence:
storageClass: gp3
accessModes:
- ReadWriteOnce
size: 10Gi
queryFrontend:
replicas: 2
maxUnavailable: 1
queryScheduler:
replicas: 2
distributor:
replicas: 3
maxUnavailable: 2
compactor:
replicas: 1
persistence:
storageClass: gp3
accessModes:
- ReadWriteOnce
size: 10Gi
indexGateway:
replicas: 2
maxUnavailable: 1
persistence:
storageClass: gp3
accessModes:
- ReadWriteOnce
size: 10Gi
ruler:
replicas: 1
maxUnavailable: 1
persistence:
storageClass: gp3
accessModes:
- ReadWriteOnce
size: 10Gi
# This exposes the Loki gateway so it can be written to and queried externaly
gateway:
service:
type: LoadBalancer
basicAuth:
enabled: true
existingSecret: loki-basic-auth
# Since we are using basic auth, we need to pass the username and password to the canary
lokiCanary:
extraArgs:
- -pass=$(LOKI_PASS)
- -user=$(LOKI_USER)
extraEnv:
- name: LOKI_PASS
valueFrom:
secretKeyRef:
name: canary-basic-auth
key: password
- name: LOKI_USER
valueFrom:
secretKeyRef:
name: canary-basic-auth
key: username
# Enable minio for storage
minio:
enabled: false
backend:
replicas: 0
read:
replicas: 0
write:
replicas: 0
singleBinary:
replicas: 0
However, there are some fields such as
loki.limits_config.allow_structured_metadata
loki.limits_config.retention_period
loki.ruler.enable_api
loki.storage_config.aws
which do not exist in Loki helm chart values.yaml.
For retention_period
, instead of loki.limits_config.retention_period
, it has another tableManager.retention_period
. Are they both valid? I am a little confused.
I am wondering which document is latest? Or maybe both are valid and just the helm chart values.yaml simply did not document enough info? Thanks!