Open source


Grafana Labs is excited to announce the release of Loki 2.9.0 Here’s a summary of new enhancements and important fixes:

Features and enhancements

  • Structured metadata: The Structured Metadata feature, which was introduced as experimental in release 2.9.0, is generally available as of release 2.9.4.

  • Query Language Improvements: Several improvements to the query language that speed up line parsing and regex matching. PR #8646, PR #8659, PR #8724, PR #8734, PR #8739, PR #8763, PR #8890, PR #8914

  • Remote rule evaluation: Rule evaluation can now be handled by queriers to improve speed. PR #8744 PR #8848

  • Multi-store Index support: Loki now supports reading/writing indexes to multiple object stores which enables the use of different storage buckets across periods for storing index. PR #7754, PR #7447

  • New volume and volume_range endpoints: Two new endoints, index/volume and index/volume_range, have been added to Loki. They return aggregate volume information from the TSDB index for all streams matching a provided stream selector. This feature was introduced via multiple PRs, including PR #9988, PR #9966, PR #9833, PR #9832, PR #9776, PR #9762, PR #9704, PR #10248, PR #10099, PR #10076, PR #10047 and PR #10045

  • New Storage Client: Add support for IBM cloud object storage as storage client. PR #8826

  • Block queries by hash: Queries can now be blocked by a query hash. PR #8953

  • logfmt stage improvements: logfmt parser now performs non-strict parsing by default which helps scan semi-structured log lines. PR #9626

  • Deprecations

    • Legacy index and chunk stores that are not “single store” (such as tsdb, boltdb-shipper) are deprecated. These storage backends are Cassandra (cassandra), DynamoDB (aws, aws-dynamo), BigTable (bigtable, bigtable-hashed), GCP (gcp, gcp-columnkey), and gRPC (grpc). See for more information.
    • The table-manager target is deprecated, because it is not used by “single store” implementations.
    • The -boltdb.shipper.compactor.* CLI flags are deprecated in favor of -compactor.*.
    • The -ingester.unordered-writes CLI flag is deprecated and will always default to true in the next major release.
    • For the full list of deprecations, see

Bug fixes

2.9.4 (2024-01-24)

  • Fixed a couple of data races that can cause panics due to concurrent read-write access of tenant configs.
  • Fixed a bug in the log results cache.
  • Fixed the cache to atomically check background cache size limit correctly.
  • Fixed the discrepancy between the semantics of logs and metrics queries.
  • Fixed promtail default scrape config causing CPU and memory load
  • Update to v0.18.0

2.9.3 (2023-12-11)

  • Upgrade otelhttp from 0.40.0 -> 0.44.0 and base alpine image from 3.18.3 -> 3.18.5 to fix a few CVES (CVE-2023-45142, CVE-2022-21698, CVE-2023-5363).
  • Fix querying ingester for label values with a matcher (previously didn’t respect the matcher).
  • Ensure all lifecycler cfgs ref a valid IPv6 addr and port combination

2.9.2 (2023-10-16)

  • Upgrade go to v1.21.3, to v0.17.0 and grpc-go to v1.56.3 to patch CVE-2023-39325 / CVE-2023-44487

For a full list of all changes and fixes, look at the CHANGELOG.

2.9.1 (2023-09-14)

  • Update Docker base images to mitigate security vulnerability CVE-2022-48174
  • Fix bugs in indexshipper (tsdb, boltdb-shipper) that could result in not showing all ingested logs in query results.