|
|
|
|
@ -5,11 +5,13 @@ storing the ingested log lines, as well as executing the queries against its |
|
|
|
|
persistent store to analyze the contents. |
|
|
|
|
|
|
|
|
|
## Architecture |
|
|
|
|
|
|
|
|
|
Loki mainly consists of three and a half individual services that achieve this |
|
|
|
|
in common. The high level architecture is based on Cortex, most of their documentation |
|
|
|
|
usually applies to Loki as well. |
|
|
|
|
|
|
|
|
|
### Distributor |
|
|
|
|
|
|
|
|
|
The distributor can be considered the "first stop" for the log lines ingested by |
|
|
|
|
the agents (e.g. Promtail). |
|
|
|
|
|
|
|
|
|
@ -23,6 +25,7 @@ docs](https://github.com/cortexproject/cortex/blob/master/docs/architecture.md#d |
|
|
|
|
for details on the internals. |
|
|
|
|
|
|
|
|
|
### Ingester |
|
|
|
|
|
|
|
|
|
The ingester service is responsible for de-duplicating and persisting the data |
|
|
|
|
to long-term storage backends (DynamoDB, S3, Cassandra, etc.). |
|
|
|
|
|
|
|
|
|
@ -39,7 +42,7 @@ Loki is not database, so it needs some place to persist the ingested log lines |
|
|
|
|
to, for a longer period of time. |
|
|
|
|
|
|
|
|
|
The chunk store is not really a service of Loki in the traditional way, but |
|
|
|
|
rather some storage backend Loki uses. |
|
|
|
|
rather some storage backend Loki uses. |
|
|
|
|
|
|
|
|
|
It consists of a key-value (KV) store for the actual **chunk data** and an |
|
|
|
|
**index store** to keep track of them. Refer to [Storage](storage.md) for details. |
|
|
|
|
@ -49,6 +52,7 @@ docs](https://github.com/cortexproject/cortex/blob/master/docs/architecture.md#c |
|
|
|
|
also have good information about this. |
|
|
|
|
|
|
|
|
|
### Querier |
|
|
|
|
|
|
|
|
|
The Querier executes the LogQL queries from clients such as Grafana and LogCLI. |
|
|
|
|
|
|
|
|
|
It fetches its data directly from the [Chunk store](#chunk-store) and the |