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
Note
See the deprecations section for important information about the Loki Helm charts.
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.
Note
Note that when appropriate, documentation updates have been backported to previous releases.
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:
nameOverridenow 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:
Promtail is deprecated, as the code has been merged into Grafana Alloy. You can find migration documentation and a utility to convert your Promtail configuration to Alloy configuration in the Alloy documentation. Note that this deprecation does NOT include the lambda-promtail client.
Deprecated storage options including the deprecation of the BoltDB store.
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



