3.4.0 (2025-02-12)
⚠ BREAKING CHANGES
- Remove
wget
from Promtail docker image (#15101)
Features
- Add a metric ingestion time SM sanitization (#15222) (e9d0c3e)
- add kafka development environment (#15603) (226e9f1)
- add lines skipped metric to pattern ingesters (#14997) (dea5d78)
- Add objstore support for Swift using thanos.io/objstore (#11672) (44523e0)
- add opt-in support for ProxyFroomEnvironment in logcli (#11742) (#14950) (c56b95d)
- Add otlp attribute deployment.environment.name to list of default labels (#14747) (2d407bd)
- add per-tenant time sharding for long out-of-order ingestion (#14711) (0d6d68d)
- add phase to log lines in kafka_consumer.go (#15176) (0a12cab)
- Add Rule Name and Type to Query Tags (#15055) (b272573)
- Add TLS config to the analytics client (#15227) (2c5eabd)
- added support for overrides exporter (#15630) (db72164)
- api: Support Parquet as a query response format. (#15408) (d0c11a6)
- Block scheduler scaffolding (#15198) (a10140d)
- block-scheduler: adds service and basic planner support for scheduler (#15200) (ad322c0)
- block-scheduler: introduce job lease and requeue expired jobs (#15560) (558080c)
- block-scheduler: job tracking & offset commits (#15338) (f2bff77)
- block-scheduler: status page shows completed jobs (#15580) (10194f7)
- blockbuilder component (#14621) (cbdd36a)
- blockbuilder: consolidate on record counting planner (#15247) (532bdbc)
- blockbuilder: grpc transport (#15218) (339ba1a)
- blockbuilder: priority queue for job dispatching (#15245) (0981273)
- blooms: Add task timining and sizing metrics (#15032) (79cccfd)
- blooms: Apply task timeout in bloom builder (#14988) (f92dde0)
- blooms: disk-backed queue for the bloom-planner (#14874) (b646861)
- blooms: Prefetch bloom blocks as soon as they are built (#15050) (b406015)
- build the Docker Driver for arm64 (#9247) (e950251)
- Detect fields based on per-tenant configuration and put them into structured metadata at ingest time (#15188) (7033091)
- expose topologySpreadConstraints for admin-api pods (#14995) (1b93086)
- expose topologySpreadConstraints for distributed deployment (#14853) (d075107)
- helm: Compute ConfigMap/Secret checksum only over .data content (#15177) (990f71c)
- helm: Do not explicitly template
managed-by
, as it should be set at install time by the installation manager. (#14763) (10b7478) - Introduce shardable probabilistic topk for instant queries. (#14243) (7b53f20)
- lambda-promtail: add relabeling support for log entries (#15600) (c41a8b4)
- lambda-promtail: Add terraform variable for s3 bucket notification filter prefix (#15381) (3dd8d7d)
- line_format bypass template execution if possible (#15411) (2150fbc)
- logcli: Include common labels (#15611) (639ac74)
- loki/docker compose: enable feature toggle (#14858) (8f243ee)
- operator: Add support for managed GCP WorkloadIdentity (#14752) (7635a5c)
- present DF bytes values in queryable format (#15272) (f5d62bd)
- remove target lag and keep just maximum lag (#15120) (12386a2)
- sanitize structured metadata during ingestion in the distributor (#15141) (be4f17e)
- scheduler: implement and register block builder rpc service (#15248) (c519ab6)
- Skip writeback for chunks fetched by queriers older than a duration (#15605) (3b8d993)
- Support config timeout for AlibabaCloud OSS requests (#14856) (ac2e21f)
- thanos: add new metric to track status codes (#14937) (a629212)
- thanos: add support for aliyun oss and baidu bos (#14891) (fb6789d)
- thanos: add support for named stores (#14638) (8958eb9)
- thanos: disable retries when congestion control is enabled (#14867) (947a66f)
- thanos: make use of the new function IterWithAttributes (#14793) (cfc3819)
- TSDB: allow tsdb index creation in memory only (#14732) (831c0d5)
- update blockbuilder to use scheduler for fetching jobs (#15224) (0d67831)
- Use context propagation to call the same ingester in GetChunksID as Query (#15186) (70d9587)
Bug Fixes
- Add flags for path & configure kafka for non-memberlist kv store (#14850) (f2da621)
- aggregated_metrics: Fix the IsError method causing retries (#15296) (7a7b3b1)
- allow comparison against zero bytes (#15217) (17f1972)
- azureblob: Return error if Azure returns no service principal token (#13195) (e98a86b)
- block-builder: return from Process call early if max offset is reached (#15073) (13ea254)
- block-scheduler: init record planner correctly (#15390) (117869f)
- block-scheduler: one job per partition (local branch copy) (#15579) (b2f46de)
- blockbuilder: copy entries returned by record decoder (#15549) (52d745f)
- blockbuilder: min job size (#15617) (c43aa56)
- blockbuilder: use index path prefix in objectclient for tsdb creation (#15614) (55f2dd8)
- blooms: Copy chunks from ForSeries (#14863) (bfc2890)
- blooms: Do not restart builders when planner disconnects (#14783) (7669385)
- blooms: Enable metas cache on backend when running in ssd mode (#15275) (4cce207)
- blooms: Fix check for skipping most recent data when filtering blooms (#15300) (78d3c44)
- blooms: Fix strategy logger and add task test (#14857) (ab2721d)
- blooms: Fix tenants slice on loadTenantTables (#14900) (a8f7851)
- blooms: Match series to newest block only (#15481) (5846ea2)
- blooms: Skip multi-tenant TSDBs during bloom planning (#14770) (76d35cc)
- bytes unit detection in detected fields (#15525) (8e260fe)
- ci: Fix test compile error (#15404) (db2b6db)
- ci: Remove submodule once and for all (#15495) (80e8e60)
- ci: Revert "fixed
Publish Rendered Helm Chart Diff
workflow" (#15506) (6c49cc0) - ci: transform TestChunkSize into a benchmark (#15361) (fed43db)
- ci: Update Python version for Helm CI (#15420) (bdbb009)
- correct S3 bucket owner label key to prevent retrieval errors (#14913) (85aaf63)
- correct typo in architecture name (amr64 -> arm64) (#15707) (068f81d)
- Correctly propagate index stats to metrics.go log line (#14941) (ff111dc)
- data race / nil channel read in pattern aggregation push (#15410) (5d8220c)
- data race in bloombuild tests (#15360) (aa7b849)
- data race in chunk client hedging tests (#15466) (fad06ee)
- data race in distributor tests (#15423) (b8168a8)
- data race in ingester test (#15465) (04f621e)
- deps: Downgrade hyperloglog to 0.2.0 (#15424) (#15426) (3b0d815)
- deps: update aws-sdk-go-v2 monorepo (#14820) (a355840)
- deps: update module cloud.google.com/go/bigtable to v1.34.0 (#15581) (9f28f69)
- deps: update module cloud.google.com/go/pubsub to v1.45.2 (#15237) (8579565)
- deps: update module cloud.google.com/go/pubsub to v1.45.3 (#15294) (672fb08)
- deps: update module cloud.google.com/go/storage to v1.47.0 (#14940) (8e6647f)
- deps: update module cloud.google.com/go/storage to v1.48.0 (#15329) (e6efbf2)
- deps: update module cloud.google.com/go/storage to v1.49.0 (#15529) (90db5ad)
- deps: update module cloud.google.com/go/storage to v1.50.0 (#15690) (efd3ec3)
- deps: update module github.com/alecthomas/chroma to v2 (#15010) (0a199bd)
- deps: update module github.com/alecthomas/chroma/v2 to v2.15.0 (#15596) (a2d3057)
- deps: update module github.com/alicebob/miniredis/v2 to v2.34.0 (#15501) (61b4ddf)
- deps: update module github.com/aliyun/aliyun-oss-go-sdk to v3 (#14976) (64081c0)
- deps: update module github.com/aws/aws-sdk-go-v2 to v1.32.6 (#15199) (84e1204)
- deps: update module github.com/aws/aws-sdk-go-v2 to v1.32.8 (#15680) (42c43ec)
- deps: update module github.com/aws/aws-sdk-go-v2/config to v1.28.10 (#15694) (9278479)
- deps: update module github.com/aws/aws-sdk-go-v2/config to v1.28.3 (#14885) (ac4018e)
- deps: update module github.com/aws/aws-sdk-go-v2/config to v1.28.4 (#14952) (7f86211)
- deps: update module github.com/aws/aws-sdk-go-v2/config to v1.28.5 (#14998) (93ed409)
- deps: update module github.com/aws/aws-sdk-go-v2/config to v1.28.6 (#15202) (bc5687e)
- deps: update module github.com/aws/aws-sdk-go-v2/config to v1.28.7 (#15508) (8faaa95)
- deps: update module github.com/aws/aws-sdk-go-v2/config to v1.28.9 (#15663) (c5c9a2e)
- deps: update module github.com/aws/aws-sdk-go-v2/service/s3 to v1.67.1 (#14999) (55d9cbe)
- deps: update module github.com/aws/aws-sdk-go-v2/service/s3 to v1.68.0 (#15060) (0c24a70)
- deps: update module github.com/aws/aws-sdk-go-v2/service/s3 to v1.69.0 (#15110) (949bfb9)
- deps: update module github.com/aws/aws-sdk-go-v2/service/s3 to v1.70.0 (#15205) (ae8b29f)
- deps: update module github.com/aws/aws-sdk-go-v2/service/s3 to v1.71.0 (#15238) (3f5ee9f)
- deps: update module github.com/aws/aws-sdk-go-v2/service/s3 to v1.71.1 (#15509) (4874e2b)
- deps: update module github.com/aws/aws-sdk-go-v2/service/s3 to v1.72.0 (#15587) (6c3c25f)
- deps: update module github.com/aws/aws-sdk-go-v2/service/s3 to v1.72.1 (#15664) (e4543ed)
- deps: update module github.com/aws/aws-sdk-go-v2/service/s3 to v1.72.2 (#15685) (0e329e1)
- deps: update module github.com/axiomhq/hyperloglog to v0.2.1 (#15322) (e382cfe)
- deps: update module github.com/axiomhq/hyperloglog to v0.2.2 (#15524) (5f98214)
- deps: update module github.com/axiomhq/hyperloglog to v0.2.3 (#15641) (b6df82e)
- deps: update module github.com/azure/azure-storage-blob-go to v0.15.0 (#14746) (ad9bdcd)
- deps: update module github.com/baidubce/bce-sdk-go to v0.9.200 (#14886) (c95fc9d)
- deps: update module github.com/baidubce/bce-sdk-go to v0.9.201 (#15069) (6287a2f)
- deps: update module github.com/baidubce/bce-sdk-go to v0.9.202 (#15187) (9922814)
- deps: update module github.com/baidubce/bce-sdk-go to v0.9.203 (#15219) (a6ba3c0)
- deps: update module github.com/baidubce/bce-sdk-go to v0.9.205 (#15251) (a78faa6)
- deps: update module github.com/baidubce/bce-sdk-go to v0.9.206 (#15324) (98e7da0)
- deps: update module github.com/baidubce/bce-sdk-go to v0.9.208 (#15441) (ada86e2)
- deps: update module github.com/baidubce/bce-sdk-go to v0.9.209 (#15510) (3334873)
- deps: update module github.com/baidubce/bce-sdk-go to v0.9.211 (#15573) (124602a)
- deps: update module github.com/baidubce/bce-sdk-go to v0.9.212 (#15633) (5885aa5)
- deps: update module github.com/baidubce/bce-sdk-go to v0.9.213 (#15686) (95dac7c)
- deps: update module github.com/bmatcuk/doublestar to v4 (#14977) (a2b66d3)
- deps: update module github.com/docker/docker to v27.3.1+incompatible (#14753) (b4a926c)
- deps: update module github.com/fatih/color to v1.18.0 (#14754) (8fc9b28)
- deps: update module github.com/fsnotify/fsnotify to v1.8.0 (#14755) (0704f5d)
- deps: update module github.com/go-redis/redis/v8 to v9 (#14978) (33a2148)
- deps: update module github.com/gocql/gocql to v1 (#15016) (2a51081)
- deps: update module github.com/golang/snappy to v0.0.4 (#15415) (035f871)
- deps: update module github.com/grafana/loki/v3 to v3.2.1 (#14826) (b8509fc)
- deps: update module github.com/grpc-ecosystem/go-grpc-middleware to v1.4.0 (#14832) (1390f90)
- deps: update module github.com/grpc-ecosystem/go-grpc-middleware to v2 (#15045) (e0ac0d0)
- deps: update module github.com/grpc-ecosystem/go-grpc-middleware/v2 to v2.2.0 (#15392) (6b7c3fc)
- deps: update module github.com/hashicorp/consul/api to v1.30.0 (#14833) (b726833)
- deps: update module github.com/hashicorp/consul/api to v1.31.0 (#15540) (8207a9b)
- deps: update module github.com/hashicorp/golang-lru to v2 (#14979) (3abb3b1)
- deps: update module github.com/heroku/x to v0.4.0 (#14897) (7e22f81)
- deps: update module github.com/heroku/x to v0.4.1 (#15370) (20f5414)
- deps: update module github.com/ibm/go-sdk-core/v5 to v5.18.2 (#15396) (314bda8)
- deps: update module github.com/ibm/go-sdk-core/v5 to v5.18.3 (#15416) (2de6e16)
- deps: update module github.com/ibm/go-sdk-core/v5 to v5.18.5 (#15673) (b7ec8e3)
- deps: update module github.com/ibm/ibm-cos-sdk-go to v1.12.0 (#15228) (5689e2e)
- deps: update module github.com/ibm/sarama to v1.44.0 (#15552) (1c783bf)
- deps: update module github.com/ibm/sarama to v1.45.0 (#15636) (9e13abd)
- deps: update module github.com/imdario/mergo to v1 (#15035) (be24862)
- deps: update module github.com/influxdata/telegraf to v1.33.0 (#15456) (0ad17eb)
- deps: update module github.com/influxdata/telegraf to v1.33.1 (#15688) (d57492c)
- deps: update module github.com/klauspost/compress to v1.17.11 (#15451) (6e8bd9d)
- deps: update module github.com/masterminds/sprig/v3 to v3.3.0 (#14899) (8874878)
- deps: update module github.com/minio/minio-go/v7 to v7.0.81 (#15114) (41d8f95)
- deps: update module github.com/minio/minio-go/v7 to v7.0.82 (#15417) (7b8d82e)
- deps: update module github.com/opentracing-contrib/go-grpc to v0.1.0 (#14905) (1f10b20)
- deps: update module github.com/opentracing-contrib/go-stdlib to v1.1.0 (#15221) (9f7892a)
- deps: update module github.com/pierrec/lz4 to v2.6.1+incompatible (#15502) (60f031a)
- deps: update module github.com/pierrec/lz4/v4 to v4.1.22 (#15400) (36bda72)
- deps: update module github.com/prometheus/common to v0.60.1 (#14962) (ae7fab6)
- deps: update module github.com/prometheus/common to v0.61.0 (#15336) (00d58e6)
- deps: update module github.com/prometheus/common to v0.61.0 (#15352) (860c25d)
- deps: update module github.com/schollz/progressbar/v3 to v3.17.1 (#14887) (ee1ab5c)
- deps: update module github.com/schollz/progressbar/v3 to v3.18.0 (#15691) (5f902b4)
- deps: update module github.com/shirou/gopsutil/v4 to v4.24.11 (#15194) (61c3efd)
- deps: update module github.com/shirou/gopsutil/v4 to v4.24.12 (#15569) (bc43878)
- deps: update module github.com/sony/gobreaker to v2 (#15036) (9decb65)
- deps: update module github.com/sony/gobreaker/v2 to v2.1.0 (#15556) (d188d06)
- deps: update module github.com/spf13/afero to v1.12.0 (#15696) (94cfb90)
- deps: update module github.com/stretchr/testify to v1.10.0 (#15090) (3f1666c)
- deps: update module github.com/stretchr/testify to v1.10.0 (#15091) (f65ab13)
- deps: update module github.com/stretchr/testify to v1.9.0 (#14964) (54d389f)
- deps: update module github.com/twmb/franz-go/pkg/kadm to v1.14.0 (#14911) (1b59525)
- deps: update module go.opentelemetry.io/collector/pdata to v1.19.0 (#14916) (db9b863)
- deps: update module go.opentelemetry.io/collector/pdata to v1.20.0 (#15002) (6392a57)
- deps: update module go.opentelemetry.io/collector/pdata to v1.21.0 (#15244) (44b70f0)
- deps: update module go.opentelemetry.io/collector/pdata to v1.22.0 (#15452) (661ae79)
- deps: update module go.opentelemetry.io/otel to v1.32.0 (#14965) (3e40f39)
- deps: update module go.opentelemetry.io/otel/trace to v1.33.0 (#15454) (82c2c56)
- deps: update module golang.org/x/crypto to v0.29.0 (#14917) (738aaa7)
- deps: update module golang.org/x/crypto to v0.31.0 [security] (#15378) (836dee8)
- deps: update module golang.org/x/crypto to v0.32.0 (#15610) (db1188f)
- deps: update module golang.org/x/net to v0.31.0 (#14918) (c68145a)
- deps: update module golang.org/x/net to v0.33.0 [security] (#15490) (7057028)
- deps: update module golang.org/x/net to v0.34.0 (#15612) (0b25012)
- deps: update module golang.org/x/oauth2 to v0.24.0 (#14919) (de17864)
- deps: update module golang.org/x/oauth2 to v0.25.0 (#15590) (ccee7f9)
- deps: update module golang.org/x/sync to v0.10.0 (#15253) (3150f07)
- deps: update module golang.org/x/sys to v0.28.0 (#15254) (f57ea87)
- deps: update module golang.org/x/sys to v0.29.0 (#15591) (efb9a81)
- deps: update module golang.org/x/text to v0.21.0 (#15266) (818446c)
- deps: update module golang.org/x/time to v0.8.0 (#14930) (4b46553)
- deps: update module golang.org/x/time to v0.9.0 (#15592) (5401e78)
- deps: update module google.golang.org/api to v0.206.0 (#14968) (355217f)
- deps: update module google.golang.org/api to v0.207.0 (#15044) (e074f5f)
- deps: update module google.golang.org/api to v0.208.0 (#15054) (174feff)
- deps: update module google.golang.org/api to v0.209.0 (#15065) (7d354e0)
- deps: update module google.golang.org/api to v0.211.0 (#15353) (6316204)
- deps: update module google.golang.org/api to v0.213.0 (#15455) (7db7fa0)
- deps: update module google.golang.org/api to v0.214.0 (#15519) (e34944d)
- deps: update module google.golang.org/grpc to v1.68.0 (#14969) (f142aaa)
- deps: update module google.golang.org/grpc to v1.68.1 (#15269) (b607fe0)
- deps: update module google.golang.org/protobuf to v1.35.2 (#14915) (04985d6)
- deps: update module google.golang.org/protobuf to v1.36.1 (#15539) (5bec7d2)
- deps: update module google.golang.org/protobuf to v1.36.2 (#15635) (74885a2)
- deps: update module gopkg.in/alecthomas/kingpin.v2 to v2.4.0 (#14970) (37d0bb8)
- deps: update module k8s.io/apimachinery to v0.31.2 (#14959) (33590be)
- deps: update module k8s.io/apimachinery to v0.31.3 (#15049) (e0c8a48)
- deps: update module k8s.io/apimachinery to v0.31.4 (#15356) (2e07c40)
- deps: update module k8s.io/apimachinery to v0.32.0 (#15398) (fada02c)
- deps: update module k8s.io/klog to v2 (#15046) (734caf5)
- Disable Helm test pod when test.enabled=false (#15346) (1fb4e2b)
- do not retain copy of chunk while indexing a new chunk in tsdb while processing delete requests (#15541) (ff19955)
- enable metric aggregation in
loki-local-config.yaml
(#15302) (c96b750) - Ensure partition-reader starts up correctly (#14845) (b2f3d2e)
- Ensure successive WAL replays don't overwrite each other (#14848) (ec95ed1)
- Fix goroutine leak in queryrange downstreamer (#15665) (5f476a3)
- Fix loki ruler generator url left parameter url encoding (#15601) (e347eb7)
- helm/loki: Add namespace to Loki templates for ruler and index-gateway (#14838) (733d99f)
- helm/loki: Allow prefixing of rollout-group value and ingester name (#15063) (f4accc1)
- helm: add
appProtocol: tcp
to headless backend grpc ports (#14507) (400f5af) - helm: Add conditional to include ruler config only when enabled (#15385) (3badbb3)
- helm: add default wal dir to ruler config (#14920) (1a6751f)
- helm: Fix statefulset templates to not show diffs in ArgoCD (#15192) (3c71c83)
- helm: Split ingester HPA when zoneAwareReplication is enabled (#14565) (80e46f7)
- helm: yaml templates incorrectly annotated (#15207) (acd4d11)
- Improve docs for min and max table offsets (#14890) (fd9d332)
- incorrect error check in autoCommitLoop (#15149) (4b5925a)
- kafka: Read from beginning if no committed offset (#14865) (1b6da11)
- Keep the service_name label after discovery in push.ParseLokiRequest before calculating retention and passing to the usage tracker (#14960) (71d4d6a)
- lambda-promtail: Remove s3 bucket ownership verification (#15383) (bf73014)
- legacy label endpoint route (#14933) (8ce321e)
- logcli: Check for errors before checking for
exists
when fetching data (#14780) (9e7d2f2) - memberlist: Respect interface names config for advertise address (#13940) (751324c)
- metric_aggregation: Fix duplicate metrics registration (#15142) (215f994)
- Mitigate ingester race between Query & GetChunkIDs (#15178) (bd46e4c)
- operator: Add log attribute for level to structured metadata (#14776) (036c131)
- operator: Fix maximum OpenShift version (#14764) (cc496c6)
- operator: Fix operator release pipeline warnings (#14817) (e707a3d)
- operator: Fix RBAC permission for poddisruptionbudgets (#15107) (f00d07a)
- operator: Publish images on docker hub upon release (#14786) (126ebed)
- operator: update kube-rbac-proxy to upstream registry (#14809) (568d22f)
- otlp: Write protobuf status on error (#15097) (63a2442)
- partition-ingester: Add stream creation error logging (#15640) (f63c16f)
- promtail: Fix API level node filtering of Kubernetes SD to only fetch pod metadata for pods of the current node (#14267) (d2b6fd8)
- querier: show correct setting in error message (#14842) (f5ae015)
- remove
enabled
field in loki-local-config.yaml (#15059) (7410f10) - remove unsafe pkg usage from util.mempool (#15428) (e6d82b9)
- Return error 422 (Unprocessable Content) when push request does not contain any streams (#13706) (17bf32b)
- Shut down delete client on local rule-evaluator (#15345) (42469cc)
- structured metadata not always passed down for processing deletes (#15526) (a3808b6)
- typo: Change "did received" to "did receive" in NOTES.txt (#15584) (9191eaf)
- use KafkaEndOffset instead of -1 (#15099) (2113526)
- Use separate variable to track the consume offset (#15095) (161a192)
Performance Improvements
- approx_topk: Reduce memory usage of HyperLogLog in approx_topk. (#15559) (bef2043)
- bloom: Compute chunkrefs for series right before sending task to builder (#14808) (66e6b1c)
- blooms: Replace JSON lib for encoding/decoding metas (#14767) (57f16a0)
- Improve
approx_topk
performance by reducing allocations. (#15450) (04994ca)