Menu
Open source

v3.0

Grafana Labs and the Loki team are excited to announce the release of Loki 3.0. Here’s a summary of new enhancements and important fixes.

For a full list of all changes and fixes, refer to the CHANGELOG.

Features and enhancements

Note

Note that Loki 3.0 defaults to using the v13 schema. All of the latest features are built against TSDB and the v13 Schema. This version of the schema is compatible with both Loki 2.9.x and Loki 3.0. The main change is to add support for Structured Metadata which is used by the new OTLP native endpoint and is enabled by default.

Key features in Loki 3.0.0 include the following:

  • Query acceleration with Bloom filters (experimental): This is designed to speed up filter queries, with best results for queries that are looking for a specific text string like an error message or UUID. For more information, refer to Query acceleration with Blooms.

  • Native OpenTelemetry Support: A simplified ingestion pipeline (Loki Exporter no longer needed) and a more intuitive query experience for OTel logs. For more information, refer to the OTEL documentation.

  • Helm charts: A major upgrade to the Loki helm chart introduces support for Distributed mode (also known as microservices mode), includes memcached by default, and includes several updates to configurations to improve Loki operations.

  • Pattern match filter: LogQL now supports two new pattern match filter operators. You can match any word with just one control character and it is simpler and 10x faster than using regex.

  • Caching updates: This release includes multiple updates to caching to improve performance, add new configuration options and support for new features, deprecate features no longer needed, and add automatic background checks.

  • Lambda/Promtail: Support dropping labels (#10755) (ec54c72).

  • Profiling integration: Added profiling integrations to tracing instrumentation to allow getting a profile for a single request.

  • Docs improvements: All the Getting Started topics have been revised, including a new Quickstart to help new users get up and running with Loki faster. The Storage, Configuration Reference, and API documentation have been updated to reflect deprecated and removed code, configuration options, and API endpoints.

Deprecations

One of the focuses of Loki 3.0 was cleaning up unused code and old features that had been previously deprecated but not removed. Loki 3.0 removes a number of previous deprecations and introduces some new deprecations. Some of the main areas with changes include:

To learn more about breaking changes in this release, refer to the Upgrade guide.

Upgrade Considerations

The path from 2.9 to 3.0 includes several breaking changes. For important upgrade guidance, refer to the Upgrade Guide and the separate Helm Upgrade Guide.

Bug fixes

3.0.0 (2024-04-08)

  • All lifecycler configurations reference a valid IPv6 address and port combination (#11121) (6385b19).
  • deps: Update github.com/c2h5oh/datasize digest to 859f65c (main) (#10820) (c66ffd1).
  • deps: Update github.com/docker/go-plugins-helpers digest to 6eecb7b (main) (#10826) (fb9c496).
  • deps: Update github.com/grafana/gomemcache digest to 6947259 (main) (#10836) (2327789).
  • deps: Update github.com/grafana/loki/pkg/push digest to 583aa28 (main) (#10842) (02d9418).
  • deps: Update github.com/grafana/loki/pkg/push digest to cfc4f0e (main) (#10946) (d27c4d2).
  • deps: Update github.com/grafana/loki/pkg/push digest to e523809 (main) (#11107) (09cb9ae).
  • deps: Update github.com/joncrlsn/dque digest to c2ef48c (main) (#10947) (1fe4885).
  • deps: Update module google.golang.org/grpc [security] (main) (#11031) (0695424).
  • helm: Bump nginx-unprivilege to fix CVE (#10754) (dbf7dd4).
  • helm: Sidecar configuration for Backend (#10603) (c29ba97).
  • lambda-promtail Fix panic in lambda-promtail due to mishandling of empty DROP_LABELS env var. (#11074).
  • loki: Respect query matcher in ingester when getting label values (#10375) (85e2e52).
  • loki Generate tsdb_shipper storage_config even if using_boltdb_shipper is false (#11195).
  • loki Do not reflect label names in request metrics’ “route” label. (11551).
  • loki Fix duplicate logs from docker containers. (#11563).
  • loki Ruler: Fixed a panic that can be caused by concurrent read-write access of tenant configs when there are a large amount of rules. (#11601).
  • loki Fixed regression adding newlines to HTTP error response bodies which may break client integrations. (#11606).
  • loki Log results cache: compose empty response based on the request being served to avoid returning incorrect limit or direction. (#11657).
  • loki Fix semantics of label parsing logic of metrics and logs queries. Both only parse the first label if multiple extractions into the same label are requested. (#11587).
  • loki Background Cache: Fixes a bug that is causing the background queue size to be incremented twice for each enqueued item. (#11776).
  • loki: Parsing: String array elements were not being parsed correctly in JSON processing (#11921).
  • promtail: Correctly parse list of drop stage sources from YAML (#10848) (f51ee84).
  • promtail: Prevent panic due to duplicate metric registration after reloaded (#10798) (47e2c58).
  • promtail: Fix Promtail excludepath not evaluated on newly added files. (#9831).
  • tools/lambda-promtail: Do not evaluate empty string for drop_labels (#11074) (94169a0).