Back to Loki

v3.7

docs/sources/release-notes/v3-7.md

3.7.132.3 KB
Original Source

v3.7

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

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

{{< admonition type="note" >}} See the deprecations section for important information about the Loki Helm charts. {{< /admonition >}}

Features and enhancements

Key features in Loki 3.7.0 include the following:

  • Helm charts: - Effective March 16, 2026, the Grafana Loki Helm chart has been be forked to the new repository grafana-community/helm-charts. The motivation behind this change is to accelerate development and enable direct community maintenance, as outlined in grafana/helm-charts#3955. The Grafana Community now owns maintenance of the Loki Helm Chart, while Grafana Labs continues to maintain the Helm Chart for Grafana Enterprise Logs (GEL).

  • Docs: The documentation now includes a new, comprehensive Troubleshooting section, documenting the Loki error messages.

{{< admonition type="note" >}} Note that when appropriate, documentation updates have been backported to previous releases. {{< /admonition >}}

Other improvements include the following:

  • canary: Support passing arbitrary set of labels to use for the query (#17008) (993b3ae)
  • compactor: Add support for storing chunk deletion markers in object storage instead of local disk (#19689) (856c11d)
  • distributor: add gauge to track in-flight bytes (#20091) (23ef8ec)
  • distributor: Add resolved policy to blocked and enforced label error (#19826) (48d13d1)
  • distributor: add segmentation keys and resolver (#19927) (c853f2c)
  • distributor: add support for UpdateRates RPC to distributors (#19918) (9018886)
  • distributor: randomly distribute requests to the ingest-limits frontend (#19840) (1605a38)
  • distributor: shuffle shard on tenant rate limit (#19990) (3904c2b)
  • distributor: write to dataobj partitions based on segmentation key (#19946) (3a24f5d)
  • helm: nameOverride now passed through helm tpl function. (#19590) (7f56fd2)
  • helm: Add ability to toggle grpclb port for query frontend service (#19609) (9c4f022)
  • helm: Add startupProbe to distributor (#20073) (5b76589)
  • helm: allow configuration of service trafficDistribution parameter (#19558) (55f95e3)
  • helm: allow set topologySpreadConstraints on singleBinary (#19534) (265601f)
  • helm: make loki-canary readinessProbe configurable via values.yaml (#19328) (7231766)
  • helm: use fsGroupChangePolicy=OnRootMismatch to speed up pod starts (#13942) (c7cec3a)
  • index-gateway: Client side index gateway shuffle sharding (#20124) (326c7d1)
  • ingest-limits: Add UpdateRates RPC, update rates from the frontend, return no-op in the service (#19894) (e173cf4)
  • ingest-limits: check partition state in parallel (#19884) (b8536aa)
  • ingester: Handle state change lock in prepare downscale (#20141) (de092da)
  • logcli: Allow custom headers to be passed (#20231) (c524203)
  • loki: add loki health command (#20313) (ef69cfd)
  • lokitool: Add regex namespace filtering (#20209) (0c1561d)
  • operator: add option to disable ingress (#19382) (9dc71a6)
  • querier: ability to send query context for limit enforcement (#19900) (1a66d2d)

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 removed 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

For important upgrade guidance, refer to the Upgrade Guide.

  • BREAKING CHANGE - engine: Make scheduler aware of total compute capacity (#19876)
  • BREAKING CHANGE - engine: Share worker threads across all scheduler connections (#20229)
  • BREAKING CHANGE - labels: parsed labels should not override structured metadata (#19991)

Bug fixes

3.7.0 (2026-03-26)

  • cd: add loki-image to needs (#19870) (a2c4ea6)
  • compactor: compactor file descriptor leak (#20077) (0c3dd8c)
  • config: migrate renovate config (#19436) (97745fe)
  • dataobj: Flush into multiple index objects when ErrBuilderFull (#19223) (32dbef9)
  • deps: update dataobj-inspect transitive deps version (#19813) (5b212b7)
  • deps: update module cloud.google.com/go/bigtable to v1.41.0 (main) (#20352) (6102309)
  • deps: update module cloud.google.com/go/pubsub to v2 (main) (#19803) (d47dde3)
  • deps: update module cloud.google.com/go/storage to v1.59.0 (main) (#20407) (5c71db6)
  • deps: update module github.com/alecthomas/chroma/v2 to v2.22.0 (main) (#20409) (c64f044)
  • deps: update module github.com/apache/arrow-go/v18 to v18.5.0 (main) (#20354) (d0861a1)
  • deps: update module github.com/aws/aws-sdk-go-v2 to v1.40.1 (main) (#20137) (e106809)
  • deps: update module github.com/aws/aws-sdk-go-v2/config to v1.32.7 (main) (#20401) (50ce71a)
  • deps: update module github.com/aws/aws-sdk-go-v2/credentials to v1.19.7 (main) (#20402) (f20228d)
  • deps: update module github.com/aws/aws-sdk-go-v2/service/dynamodb to v1.53.6 (main) (#20403) (31a870c)
  • deps: update module github.com/aws/aws-sdk-go-v2/service/s3 to v1.95.1 (main) (#20406) (c7c1411)
  • deps: update module github.com/aws/smithy-go to v1.24.0 (main) (#20117) (b0efa70)
  • deps: update module github.com/axiomhq/hyperloglog to v0.2.6 (main) (#20341) (4469f82)
  • deps: update module github.com/baidubce/bce-sdk-go to v0.9.256 (main) (#20342) (69e6254)
  • deps: update module github.com/bits-and-blooms/bloom/v3 to v3.7.1 (main) (#19755) (af47e1f)
  • deps: update module github.com/bmatcuk/doublestar/v4 to v4.9.2 (main) (#20418) (078dc94)
  • deps: update module github.com/coder/quartz to v0.3.0 (main) (#19786) (6f784f9)
  • deps: update module github.com/docker/docker to v28.5.2+incompatible (main) (#19756) (1007ee4)
  • deps: update module github.com/gocql/gocql to v2 (main) (#19794) (898b6d2)
  • deps: update module github.com/google/renameio/v2 to v2.0.2 (main) (#20411) (cc43074)
  • deps: update module github.com/grafana/loki/v3 to v3.6.3 (main) (#20343) (d1ae7a1)
  • deps: update module github.com/grpc-ecosystem/go-grpc-middleware/v2 to v2.3.3 (main) (#19758) (8133da9)
  • deps: update module github.com/hashicorp/consul/api to v1.33.0 (main) (#19788) (e417259)
  • deps: update module github.com/ibm/go-sdk-core/v5 to v5.21.2 (main) (#19988) (d8ab970)
  • deps: update module github.com/ibm/ibm-cos-sdk-go to v1.13.0 (main) (#20364) (52d1d8d)
  • deps: update module github.com/ibm/sarama to v1.46.3 (main) (#19760) (4a19787)
  • deps: update module github.com/influxdata/telegraf to v1.37.0 (main) (#20356) (dc1e0ae)
  • deps: update module github.com/klauspost/compress to v1.18.2 (main) (#20108) (f4f2b2a)
  • deps: update module github.com/leodido/go-syslog/v4 to v4.3.0 (main) (#19416) (036387b)
  • deps: update module github.com/minio/minio-go/v7 to v7.0.98 (main) (#20436) (cf89342)
  • deps: update module github.com/ncw/swift/v2 to v2.0.5 (main) (#19764) (fa5e144)
  • deps: update module github.com/oschwald/geoip2-golang to v2 (main) (#19799) (33eeab6)
  • deps: update module github.com/oschwald/geoip2-golang/v2 to v2.1.0 (main) (#20357) (8853d71)
  • deps: update module github.com/parquet-go/parquet-go to v0.27.0 (main) (#20426) (a283eac)
  • deps: update module github.com/prometheus/alertmanager to v0.30.0 (main) (#20358) (f53a609)
  • deps: update module github.com/prometheus/client_golang to v1.23.2 (main) (#19763) (8317f7e)
  • deps: update module github.com/prometheus/common to v0.67.5 (main) (#20363) (aaacbf4)
  • deps: update module github.com/prometheus/prometheus to v0.309.1 (main) (#20388) (bf79bcf)
  • deps: update module github.com/prometheus/sigv4 to v0.4.0 (main) (#20386) (2f80526)
  • deps: update module github.com/redis/go-redis/v9 to v9.17.2 (main) (#20116) (434a929)
  • deps: update module github.com/schollz/progressbar/v3 to v3.19.0 (main) (#20365) (0b238bc)
  • deps: update module github.com/shirou/gopsutil/v4 to v4.25.12 (main) (#20347) (0740eb8)
  • deps: update module github.com/sirupsen/logrus to v1.9.4 (main) (#20447) (35c8df7)
  • deps: update module github.com/sony/gobreaker/v2 to v2.4.0 (main) (#20366) (090ffd5)
  • deps: update module github.com/tjhop/slog-gokit to v0.1.5 (main) (#19808) (615413e)
  • deps: update module github.com/twmb/franz-go to v1.20.6 (main) (#20348) (5ee4fee)
  • deps: update module github.com/twmb/franz-go/pkg/kadm to v1.17.1 (main) (#19790) (1dad0be)
  • deps: update module github.com/twmb/franz-go/pkg/kmsg to v1.12.0 (main) (#19791) (f28c247)
  • deps: update module github.com/workiva/go-datastructures to v1.1.7 (main) (#19766) (f5e0683)
  • deps: update module github.com/xdg-go/scram to v1.2.0 (main) (#20046) (9e52320)
  • deps: update module go.opentelemetry.io/collector/pdata to v1.49.0 (main) (#20371) (7d759f2)
  • deps: update module go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc to v0.64.0 (main) (#20372) (9da1b1b)
  • deps: update module go.opentelemetry.io/contrib/instrumentation/net/http/httptrace/otelhttptrace to v0.64.0 (main) (#20373) (719635a)
  • deps: update module go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp to v0.64.0 (main) (#20374) (f1b3e1b)
  • deps: update module go.opentelemetry.io/otel/sdk to v1.39.0 (main) (#20376) (95b82d6)
  • deps: update module golang.org/x/crypto to v0.44.0 (main) (#19776) (c85c67a)
  • deps: update module golang.org/x/net to v0.47.0 (main) (#19850) (5c422a6)
  • deps: update module golang.org/x/oauth2 to v0.34.0 (main) (#20160) (ebf7b93)
  • deps: update module golang.org/x/sync to v0.19.0 (main) (#20161) (817b9d8)
  • deps: update module golang.org/x/sys to v0.40.0 (main) (#20378) (9538b20)
  • deps: update module golang.org/x/text to v0.33.0 (main) (#20408) (9fd6733)
  • deps: update module golang.org/x/time to v0.14.0 (main) (#19782) (74f68fa)
  • deps: update module google.golang.org/api to v0.257.0 (main) (#20143) (5f1da75)
  • deps: update module google.golang.org/grpc to v1.77.0 (main) (#19945) (f3213bb)
  • deps: update module google.golang.org/protobuf to v1.36.11 (main) (#20349) (a80b52e)
  • deps: update module k8s.io/apimachinery to v0.35.0 (main) (#20381) (731e067)
  • distributor: avoid recalculating the segmentation key hash twice (#19961) (8b78f79)
  • distributor: panic when no healthy instances found (#19998) (1c5dfed)
  • distributor: track discarded entries and bytes when hitting stream limits using the ingest limits service (#20244) (9b0af7c)
  • docker: missing permissions to start docker (#19947) (39d2bea)
  • docker: set WORKDIR to root in loki Dockerfiles (#19941) (13f2b1a)
  • helm: bump helm deps, publish loki-helm-test w/ release (#19939) (7e4e34e)
  • helm: Add startup probe read (#19708) (bce87fb)
  • helm: Apply fix from #14126 to example (#20252) (716563a)
  • helm: correct GEL provisioner tenant creation instructions (#20271) (9639e2e)
  • helm: Correct GEL version (#19657) (cd8b195)
  • helm: do not mark loki.storage.bucketNames.chunks as required, if an s3 url is provided (#19873) (e9951bb)
  • helm: do not mark loki.storage.bucketNames.chunks as required, if minio is used. (#19871) (eddd4f8)
  • helm: do not mark loki.storage.bucketNames.ruler as required, if rulerConfig.storage.type is local (#19882) (f2f564a)
  • helm: Don't fail for missing bucket name, if local disk is used. (#19675) (ad0a29e)
  • helm: Don't fail for missing bucket name, if minio is enabled. (#19745) (cd0c578)
  • helm: Enable volumeAttributesClassName attributes for volumeClaimTemplates (#19719) (06da42a)
  • helm: Fix ingester-b volumeAttributesClassName templating (#20188) (d696f18)
  • helm: Fix rendering of dnsConfig for backend, read, write, single-binary and table-manager (#20013) (1cdb3c7)
  • helm: Respect global registry in sidecar image (#18246) (#19347) (79eae2c)
  • helm: Update Chart version in README.md (#19669) (94096b7)
  • helm: update version (#19670) (b90ae22)
  • ingest-limits: reduce FetchMaxBytes to 10MB (#19883) (82cfafd)
  • ingest-limits: revoke partitions if lost (#20030) (1ac5d1f)
  • kafka: deadlock on shutdown (#20384) (272a278)
  • logql: parsed labels should not override structured metadata (#19991) (61f9367)
  • lokitool: Update ruler path and enable alternative TLS env variables (#19572) (d1ce5cb)
  • nomad: Nomad simple example (#19629) (17aec11)
  • operator: change leader-election parameters (#19707) (86068cf)
  • operator: Do not deploy NetworkPolicies automatically on OCP 4.20 (#19680) (8df33ff)
  • operator: Return quickstart script to working condition and improve rootless usage (#19960) (397da27)
  • parser: do not cache key conflicts results in intern set (#19984) (0a9b024)
  • querier: Support multi-tenant queries in Patterns API (#19809) (f609e27)
  • querier: Restrict start/end timestamp to requested range for scheduler (#20086) (448cc74)
  • querier: Set Content-Type header for JSON responses in serializeHTTPHandler (#19878) (019d6b4)
  • querylimits: accept request limits over not initialized limits (#19891) (905eac8)
  • retry: do not retry if any of multierrors is a client error (#19887) (9825137)
  • ruler: validate remote write config (#19920) (e916944)
  • server: return status bad request code for interval limit error (#19895) (f21f5d5)
  • storage: Do not override S3 region if already specified in configuration chain (#20127) (0046bfb)
  • storage: Fix regression in S3 client configuration (#20110) (d3f9532), closes #19908