mrkeyoor.com_
Fri 16 Oct 19:53 UTC
Self-Hostedevaluationupdated 26 Aug 2026

loki review

Grafana Loki is a self-hosted log aggregation system that stores compressed log data and indexes labels instead of every word in each message. It gives teams a Prometheus-like way to collect, search, and view logs, especially when they already use Kubernetes and Grafana.

+22stars / 7d
Verdict

Our Loki build passed in 280 seconds, but its test command hit the 900-second cap with 75 packages passing and 1 failing, which makes source work a serious engineering task. Use Loki when your team already thinks in Prometheus labels, runs Grafana, and can design log streams carefully. Choose a full-text search engine when investigations depend on indexing arbitrary message content rather than labels.

We ran it

Lab card: what happened when we ran lokiScreenshot of loki (grafana.com/oss/loki)
Install✓ · 116s0 packages
Build✓ · 280s
Tests✗ timed out · 900s75 passed · 1 failed of 76 (go test)
Repo4324 files~802,947 lines of source · 94.6 MB · 36 CI workflows

Answers from our run

Does loki build from source?

Dependencies installed in 116 seconds (0 packages), and the build succeeded in 280 seconds. We cloned commit 8c75a64 into a clean Debian container with 3 CPUs and no project-specific setup.

Do loki's tests pass?

Not all of them: 75 of 76 passed and 1 failed when we ran the project's own test command (go test). Some failures need services or credentials a bare container does not have.

Who should not use loki?

Search teams that need arbitrary full-text indexing across every field: Loki's README says it indexes stream labels and keeps log contents compressed and unstructured.

What are the alternatives to loki?

Elasticsearch, OpenSearch, VictoriaLogs. Our Loki build passed in 280 seconds, but its test command hit the 900-second cap with 75 packages passing and 1 failing, which makes source work a serious engineering task.

Setup3/5Local binary is direct; production adds collectors and storage
Docs5/5Clear guides for APIs, labels, operations, upgrades, and queries
Community5/5Current pushes, recent release, and active issue traffic
Maturity5/5Established logging system with multi-tenant operations tooling

Discussed on

  1. hnGrafana Loki – Like Prometheus, but for logs444 points
  2. hnLoki 3.0.022 points
  3. hnLoki 3.0 Released5 points
  4. hnLoki: like Prometheus, but for logs5 points
  5. hnLoki v1.0.0 Released4 points

Who it’s for

Kubernetes teams whose pod labels already provide useful dimensions for finding logs.
Grafana and Prometheus users who want logs queried through a familiar label model.
Platform groups prepared to run shared object storage, collection agents, and a multi-service deployment at scale.
Cost-conscious operators whose common investigations can work without a full-text index over every log line.

Who it’s NOT for

Search teams that need arbitrary full-text indexing across every field: Loki's README says it indexes stream labels and keeps log contents compressed and unstructured.
Small teams expecting one binary to be the whole logging product: the documented stack also needs Grafana for viewing and Alloy for collection.
Operators who cannot control label cardinality and tenant configuration: Loki's design makes labels part of storage, routing, and query behavior.
Organizations that cannot use AGPL-3.0 software or review the listed Apache 2.0 exceptions.
Helm users who require charts to remain in this repository: the README says the community chart moved to grafana-community/helm-charts on March 16, 2026, while this repository's chart remains for GEL users.

Setup reality

Our Go install completed in 116 seconds with 0 packages installed, and the build completed in 280 seconds. The test command reached the 900-second cap: 75 packages passed and 1 failed out of 76. The checkout at commit 8c75a64 held 4,324 files, about 802,947 source lines, and used 94.6 MB.

A local binary can run from the included YAML file without credentials or an external database. A useful stack also needs a collector such as Grafana Alloy and Grafana for viewing. Multi-tenant mode requires authentication to be enabled, tenant information on requests, and a runtime configuration for tenant-specific overrides.

Production is larger than the single-host example. Teams must plan labels, retention, object storage, ingestion and query capacity, upgrades, and the chart repository migration. The source tree had 36 CI workflow files but no root Dockerfile or top-level tests directory, so the repository itself is not a one-file container recipe.

Loki saves index cost by indexing labels, not log text

Loki's defining decision is simple: it indexes metadata labels for each stream, while storing compressed log lines without a full-text index. That can cut the indexing work behind high-volume logging, especially when the questions start with a service, namespace, pod, or environment. The trade is equally direct. Queries that begin with well-chosen labels fit the system; open-ended search across arbitrary message text does not receive the same index structure as Elasticsearch or OpenSearch.

The codebase is substantial. Our checkout contained 4,324 files, about 802,947 source lines, and 94.6 MB at commit 8c75a64. Loki can run as one binary for a local trial, but its normal stack has 3 named parts: Grafana Alloy gathers and sends logs, Loki stores and queries them, and Grafana displays them. Promtail is feature complete, and the README directs future collection work toward Alloy.

Kubernetes labels make Loki useful and dangerous

Kubernetes is the clearest fit because pod metadata already supplies labels that operators use during incidents. Loki shares the label-oriented mental model of Prometheus, which makes moving between a metric spike and the relevant log streams feel natural in Grafana. LogQL and LogCLI give teams interactive and command-line query paths, while Loki Canary checks whether expected logs disappear from an installation.

Labels also need discipline. The 36 CI workflow files in the repository are evidence of a heavily maintained system, not a substitute for a stream design. If teams promote highly variable values into labels, the number of streams grows and the storage model loses its advantage. Service names, environments, clusters, and bounded workload identities are sensible dimensions. Request IDs and other near-unique values usually belong in the log line for filtering after the stream selector.

What happened when we ran it

Our Go install completed in 116 seconds and reported 0 packages installed. The build then succeeded in 280 seconds inside an unprivileged golang:1.24-bookworm container with 3 CPUs and 8 GB of RAM. Those results show that the source tree can compile in a plain Go environment, though a 280-second build is long enough to matter for clean CI jobs and contributor feedback.

Tests did not complete within our 900-second limit. The command reported 75 packages passing and 1 failing out of 76 before timing out. The log tail showed successful storage packages, several packages with no test files, and timings for bloom shipper and index shipper packages. It did not include the failing assertion, so we cannot say whether the failure came from the container, the repository, or an earlier package.

The checkout had no root Dockerfile and no top-level tests directory, although it had 36 workflow files. That layout is not a quality problem by itself, but it means a contributor should follow repository commands rather than infer a generic docker build or look only for one tests folder. Our sandbox had no secrets and no privileged access. Install and build passed under those limits; only the full test run exceeded the available window.

One local binary becomes a distributed service in production

The source README offers a credible local path: compile ./cmd/loki, launch it with the supplied local YAML configuration, then push and query logs. No database credential is needed for that experiment. Multi-tenant operation changes the setup. Authentication must be enabled, requests need tenant context, and runtime configuration can carry tenant-specific overrides. The surrounding Alloy and Grafana services must also be installed and connected.

The 900-second test timeout is a useful warning about operational scope. A production deployment needs decisions about object storage, retention, ingestion capacity, query capacity, label policy, tenant isolation, and upgrades. Loki may be easier to operate than a full-text search cluster for the right log model, but it is still a distributed stateful system. The single-binary mode helps evaluation and smaller workloads; it does not erase capacity planning.

AGPL and chart ownership need an explicit decision

Loki uses AGPL-3.0-only, with Apache 2.0 exceptions documented separately. That license can be acceptable for internal infrastructure, but organizations with strict distribution or hosted-service policies should involve counsel before standardizing on it. This is a purchasing constraint, not a minor footer detail, because a logging platform tends to become shared infrastructure with a long replacement cycle.

The deployment path also changed on March 16, 2026. The README says the Grafana Loki Helm chart moved to grafana-community/helm-charts; the chart remaining in the Loki repository is maintained for Grafana Enterprise Logs users. Existing automation should pin the intended chart source and document who owns upgrade testing. Copying an old install command into a new cluster can otherwise put a team on the wrong maintenance track.

Current releases and issue activity support long-term use

Loki was pushed on August 26, 2026, and v3.7.6 was published on August 6. GitHub showed 1,715 open issues and pull requests together. Recent issue activity included a multi-tenant detected-labels failure and a ruler query-frontend message-size configuration mismatch. The latest release fixed query-range handling of a label sketch. These dated signals show ongoing maintenance alongside a large public queue.

Our 280-second build and unfinished 900-second test run keep Loki from being an effortless source dependency. As an operated product, it makes sense for teams already invested in Grafana, Prometheus-style labels, and Kubernetes metadata. If your investigators need arbitrary full-text search first, pick Elasticsearch or OpenSearch. If your streams have stable labels and index cost is the pain, Loki's narrower indexing model is a sound reason to accept the operational work.

Alternatives

ProjectWhat it isPick it when
Elasticsearch gh↗A distributed search engine often used to index and query complete log documents.pick this instead when rich full-text search and document indexing matter more than Loki's label-first storage model.
OpenSearchAn Apache 2.0 search and analytics engine with a broad logging ecosystem.pick this instead when you need full-text log analytics under a permissive license and can operate a search cluster.
VictoriaLogsA log database from VictoriaMetrics with its own query language and compact deployment options.pick this instead when you want to compare a newer log store with a narrower operational surface and do not depend on LogQL.

What people are saying

  1. [github-trending] grafana/loki

Sources

  1. Grafana Loki README
  2. Loki documentation
  3. Loki v3.7.6 release
  4. Loki issue 19218
  5. Loki issue 23488

More self-hosted reviews

Qwen3.8-Flash-Next-Single-DGX-Spark-TensorFold · invisible_dots · LibreTV · unifi-toolkit · ps5-payload-manager · DiPlay · the whole board →