Project: Grafana Loki (Observability and Analysis / Observability)
File: v2-9.md

title: V2.9 description: Version 2.9 release notes weight: 50 Grafana Labs is excited to announce the release of Loki 2.9.0 Here's a summary of new enhancements and important fixes: Structured metadata: The 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. , , , , , , , Remote rule evaluation: Rule evaluation can now be handled by queriers to improve speed. 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. , 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 , , , , , , , , , , and New Storage Client: Add support for IBM cloud object storage as storage client. Block queries by hash: Queries can now be blocked by a query hash. logfmt stage improvements: logfmt parser now performs non-strict parsing by default which helps scan semi-structured log lines. 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 https://grafana.com/docs/loki/<LOKI_VERSION>/configure/storage.md 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 CHANGELOG.md deps: update module golang.org/x/net to v0.23.0 ) (). Bump go to 1.21.9 and build image to 0.33.1 (#12542) (efc4d2f) Fixed Promtail failures connecting to local Loki installation () (). Fixed an issue when using IPv6 where IPv6 addresses were not properly joined with ports. Use `net.JoinHostPort` to support IPv6 addresses. () () (). Updated google.golang.org/protobuf to v1.33.0 () () (). For a full list of all changes and fixes, refer to the . Bumped base images and Go dependencies to address CVEs () (). For a full list of all changes and fixes, refer to the . 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. Updated golang.org/x/crypto to v0.18.0. For a full list of all changes and fixes, refer to the . Upgraded 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). Fixed querying ingester for label values with a matcher (previously didn't respect the matcher). Ensured all lifecycler cfgs ref a valid IPv6 addr and port combination. For a full list of all changes and fixes, refer to the . Upgraded go to v1.21.3, golang.org/x/net 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, refer to the . Updated Docker base images to mitigate security vulnerability CVE-2022-48174 Fixed bugs in indexshipper (`tsdb`, `boltdb-shipper`) that could result in not showing all ingested logs in query results. For a full list of all changes and fixes, refer to the .