Skip to content

Latest commit

 

History

History
127 lines (92 loc) · 4.32 KB

README.md

File metadata and controls

127 lines (92 loc) · 4.32 KB

Loki Storage

Loki needs to store two different types of data: chunks and indexes.

Loki receives logs in separate streams, where each stream is uniquely identified by its tenant ID and its set of labels. As log entries from a stream arrive, they are GZipped as "chunks" and saved in the chunks store. See chunk format for how chunks are stored internally.

The index stores each stream's label set and links them to the individual chunks.

Refer to Loki's configuration for details on how to configure the storage and the index.

For more information:

  1. Table Manager
  2. Retention

Supported Stores

The following are supported for the index:

The following are supported for the chunks:

Cloud Storage Permissions

S3

When using S3 as object storage, the following permissions are needed:

  • s3:ListBucket
  • s3:PutObject
  • s3:GetObject

Resources: arn:aws:s3:::<bucket_name>, arn:aws:s3:::<bucket_name>/*

DynamoDB

When using DynamoDB for the index, the following permissions are needed:

  • dynamodb:BatchGetItem
  • dynamodb:BatchWriteItem
  • dynamodb:DeleteItem
  • dynamodb:DescribeTable
  • dynamodb:GetItem
  • dynamodb:ListTagsOfResource
  • dynamodb:PutItem
  • dynamodb:Query
  • dynamodb:TagResource
  • dynamodb:UntagResource
  • dynamodb:UpdateItem
  • dynamodb:UpdateTable

Resources: arn:aws:dynamodb:<aws_region>:<aws_account_id>:table/<prefix>*

AutoScaling

If you enable autoscaling from table manager, the following permissions are needed:

Deletion
  • dynamodb:DeleteTable

Resources: arn:aws:dynamodb:<aws_region>:<aws_account_id>:table/<prefix>*

Application Autoscaling
  • dynamodb:ListTables
  • application-autoscaling:DescribeScalableTargets
  • application-autoscaling:DescribeScalingPolicies
  • application-autoscaling:RegisterScalableTarget
  • application-autoscaling:PutScalingPolicy

Resources: *

IAM
  • iam:GetRole
  • iam:PassRole

Resources: arn:aws:iam::<aws_account_id>:role/<role_name>

Chunk Format

  -------------------------------------------------------------------
  |                               |                                 |
  |        MagicNumber(4b)        |           version(1b)           |
  |                               |                                 |
  -------------------------------------------------------------------
  |         block-1 bytes         |          checksum (4b)          |
  -------------------------------------------------------------------
  |         block-2 bytes         |          checksum (4b)          |
  -------------------------------------------------------------------
  |         block-n bytes         |          checksum (4b)          |
  -------------------------------------------------------------------
  |                        #blocks (uvarint)                        |
  -------------------------------------------------------------------
  | #entries(uvarint) | mint, maxt (varint) | offset, len (uvarint) |
  -------------------------------------------------------------------
  | #entries(uvarint) | mint, maxt (varint) | offset, len (uvarint) |
  -------------------------------------------------------------------
  | #entries(uvarint) | mint, maxt (varint) | offset, len (uvarint) |
  -------------------------------------------------------------------
  | #entries(uvarint) | mint, maxt (varint) | offset, len (uvarint) |
  -------------------------------------------------------------------
  |                      checksum(from #blocks)                     |
  -------------------------------------------------------------------
  |           metasOffset - offset to the point with #blocks        |
  -------------------------------------------------------------------