## cortexproject/cortex — v1.21.1…v1.22.0-rc.0

_234+ commits._

### Features
- **Parquet add no convert marker (#7625)** (a0d4fcc)
- **Add CODEOWNERS to auto-assign PR reviews to a maintainer (#7797)** (bac9693)
- **Add store-gateway max series bytes to protect from oomkill (#7271)** (c782310)
- **Add dynamic release image retrieval for integration tests (#7737)** (8e750ff)
- **Add Oracle Cloud Infrastructure (OCI) Object Storage backend (#7718)** (85a4553)
- **Add proposals for client-identity rate limiting (write and query paths) (#7681)** (6722b94)
- **Add cortex_ingester_tsdb_head_max_timestamp metric (#7694)** (1ac5c4e)
- **Add Siddarth Gundu to Triagers list (#7668)** (d10be2f)
- **feat(ingester): Add cortex_ingester_head_metric_names gauge per user (#7514)** (f152040)
- **feat(parquetconverter): Add max-num-columns config for automatic parquet sharding (#7624)** (248e8f9)
- **Support sharded Parquet file querying and conversion (#7610)** (d74da2e)
- **Add native histogram support to all remaining production histograms (#7636)** (7765273)
- **Add flag for parquet queries concurrency in parquet bucket store (#7613)** (f645e1e)
- **Add KubeCon 2026 talk details to README (#7630)** (28099c1)
- **Add ring metric to count number of duplicate tokens (#7626)** (0a4e31a)
- **feat(distributor): add goroutine worker pool for query fan-out to ingesters (#7623)** (ab8aa36)
- **Parquet: add row range constraints cache (#7478)** (ad0a071)
- **Add Query Resource Based Eviction (#7488)** (4aed3a0)
- **feat(ingester): Add head-only queried series metrics (#7500)** (e67fdbc)
- **Add metric to track pre-validation native histogram bucket count per user (#7569)** (aa717c3)
- **add WrappedHistogram with size limit before unmarshal (#7570)** (d4e51d5)
- **Add Yuxuan Chen to Triagers list (#7563)** (b64d2a7)
- **Add continue on error when user discovery fail in regex resolver (#7534)** (d0d09de)
- **Security: add flags for TCP connection limits and timeouts (#7518)** (65ab0da)
- **feat(ingester): Add active series tracker for pattern-based monitoring (#7476)** (8ec34d8)

### Fixes
- **Fix StringSliceCSV treating explicit empty string as a one-element list (#7714)** (71e7338)
- **Fix flaky integration TestSingleBinaryWithMemberlistScaling (#7802)** (d50fcab)
- **Fix empty YAML validation for explicit zero values (#7700)** (f4c1543)
- **Fix DNS watcher SRV path wiping all endpoints when every target lookup fails (#7745)** (1441b09)
- **fix(integration): skip `or` in cross-version query fuzz comparisons (#7805)** (74c22fb)
- **Querier: fix panic on invalid UTF-8 in active request tracker (#7743)** (594cebf)
- **Fix flaky pkg/compactor tests (#7796)** (a7e4c78)
- **fix: prevent panic in validateAlertmanagerConfig on nil interface values (#7751)** (e450d52)
- **fix: eliminate spurious "bucket operation fail after retries" logs during partial block cleanup (#7749)** (a8c6358)
- **fix flakiness in shard cache TTL tests (#7667)** (aeeeba6)
- **Fix DNS watcher from clearing known endpoints on lookup failure (#7698)** (6626557)
- **Fix DynamoDB KV CAS not retrying on transactional conditional check failures (#7706)** (4e9dffb)
- **fix(azure): default endpoint_suffix to blob.core.windows.net (#7687)** (e06209c)
- **Fix Parquet queryable error handling (#7638)** (c15df9b)
- **Fix ingester panic on float histogram with zero count (#7645)** (c5c2de0)
- **fix(querier): wait for store-gateway ACTIVE in querier ring view in TestQuerierWithBlocksStorageOnMissingBlocksFromStorage (#7615)** (7b3a8d0)
- **fix idx out of range in request tracker (#7640)** (4cc4166)
- **perf(ring): cache ShuffleShardWithLookback subrings (#7628)** (b162b32)
- **fix(alertmanager): fix ApplyConfig/Stop data race and shutdown-vs-lazy-create window (#7618)** (2291329)
- **fix(compactor): make DeleteLocalSyncFiles tests deterministic (pin ring tokens, drive compaction manually) (#7619)** (49f29cb)
- **fix(integration): compare query fuzz errors by class, not exact string (#7550)** (83f56fc)
- **fix handling of trailing commas in SecretStringSliceCSV.Set() (#7587)** (de86ffc)
- **Fix flaky TestBlocksCleaner by awaiting HeartBeat goroutine completion (#7386)** (c8f5ccd)
- **fix(ci): retry docker pulls in integration Preload Images step (#7600)** (598cd53)
- **fix(querier): wait for store-gateway ACTIVE in querier ring view in store-gateway limits integration tests (#7614)** (c89fbfb)
- **fix(querier): evict per-tenant metadata fetchers for inactive tenants (#7573)** (0732fe3)
- **[BUGFIX] Ingester: fix inflight query counter leak on resource rejection (#7539)** (40b1ecb)
- **fix(compactor): fix flaky TestCompactor_DeleteLocalSyncFiles on arm64 (#7567)** (40a27ad)
- **perf(ingester): lazy regex evaluation on head postings cache miss (#7553)** (a4e2f2f)
- **[BUGFIX] Ring: fix DoBatch cleanup callback blocked forever on callback panic (#7559)** (9fb947d)
- **fix(ingester): close TSDB on compaction failure to prevent resource leak (#7557) (#7560)** (374f29b)
- **fix(integration): log fuzz seed so failures can be reproduced (#7552)** (bff54c5)
- **fix panic in stream push when context deadline expires during request marshalling (#7541)** (e912988)
- **fix(queryrange): Handle native histogram responses in minTime() sort ordering for split_by_interval merge (#7555)** (0c146ef)
- **Fix resolve token conflict logic under race condition (#7554)** (cc88aa0)
- **fix(integration): stabilise TestParquetFuzz topk/bottomk tie flake (#7544)** (e0e8fc7)
- **fix(integration): repair TestExpandedPostingsCacheFuzz latent bugs (#7549)** (2a98faf)
- **add AI tool usage notice to bug and feature request templates (#7523)** (29b6167)
- **security: fix stored XSS in alertmanager and storegateway status pages (#7512)** (af9c40c)
- **perf(ingester): Convert postings cache from FIFO to LRU eviction (#7510)** (a13e3d9)
- **fix(e2e): Fix flaky Test_VerifyComponentsAreSuccessfullyStarted_WithRuntimeConfigLoad (#7502)** (24e8624)
- **fix(compactor): Clean up stale bucket index metrics on ownership change (#7487)** (5099e71)
- **fix flaky regex resolver e2e tests (#7506)** (0ecd21b)
- **fix(ring): Fix flaky TestTokenFileOnDisk_WithoutAutoJoinOnStartup (#7504)** (61a4347)
- **fix: increase WaitActiveInstanceTimeout in TestCompactor_RingLifecyclerShouldAutoForgetUnhealthyInstances (#7503)** (55e300e)
- **fix(integration): Fix flaky TestParquetFuzz (#7499)** (4abf274)
- **fix(alertmanager): Fix flaky TestMultitenantAlertmanager_InitialSyncFailureWithSharding (#7498)** (6907663)
- **fix(util): Fix flaky TestWorkerPool_TestMetric race condition (#7497)** (3d38903)
- **fix(scheduler): Fix flaky TestQueueConcurrency deadlock (#7496)** (c40bb7c)

### Backend
- **Prepare release 1.22.0-rc.0 (#7838)** (9acae44)
- **Reduce chunk batch iterator BatchSize from 12 to 8 (#7823)** (4061a3d)
- **Track Prometheus and Thanos dependency ignores in dependabot.yml (#7784)** (485a32d)
- **Refresh the Thanos and promql-engine pins and document why they are pinned to main (#7788)** (959ab62)
- **Remove the deprecated -ruler.evaluation-delay-duration limit (#7792)** (7859b48)
- **use non-pointer HistogramBucket slice to reduce heap allocations in response encoding (#7809)** (9dfa894)
- **Graduate native histogram ingestion and close the v1-guarantees gaps (#7789)** (226ac85)
- **update build image tag (upgrade go 1.27.0) and apply v2.13.1 linter (#7814)** (2c0a976)
- **Build faillint from the main module instead of `go install` (#7816)** (7bc8b24)
- **upgrade Go version to 1.27.0 and golangci-lint to v2.13.1 (#7807)** (0b48dfa)
- **Properly handle error from ReadPartitionedGroupInfo in UpdatePartitionedGroupInfo (#7766)** (2254768)
- **bugfix per tenant cache ttl fallback (#7775)** (de3ed5a)
- **Remove eight deprecated no-op CLI flags (#7790)** (6229510)
- **query-frontend: Log X-Grafana-User header in query stats (#7799)** (cdd31c4)
- **Use Homebrew to install cortextool in the getting-started guides (#7783)** (b06043e)
- **Formally deprecate -blocks-storage.tsdb.max-exemplars (#7793)** (5a187db)
- **Deduplicate metadata in Prometheus Remote Write 2.0 requests (#7760)** (a330338)
- **Alertmanager: reject file-based http_headers in tenant configs (#7767)** (0363900)
- **Alertmanager: reject global mattermost_webhook_url_file (#7768)** (55be4ef)
- **expose SelectorBatchSize config for Thanos engine (#7763)** (31b3cff)
- **Implement auto-forget in Parquet converter lifecycle (#7752)** (5320fcc)
- **Upgrade thanos and promql-engine to latest main (#7740)** (94aa45f)
- **Matching rule related errors between internal and external ruler path (#7741)** (af95a25)
- **map gRPC codes.Cancled to 499, not 500 in querier (#7738)** (a164c70)
- **Upgrade website build tooling: Hugo 0.101.0 -> 0.164.0, Docsy v0.4.0 -> v0.15.0 (#7736)** (e51a460)
- **Distributor: return HTTP 499 instead of 500 on client push cancellation (#7717)** (7504a6b)
- **Update build-image in workflows for go 1.26.5 (#7726)** (aa7d235)
- **Track data selection time range in query stats independent of query priority and rejection (#7724)** (55a0971)
- **Upgrade Thanos v0.42.0 (#7691)** (ae02900)
- **Update Go base image to version 1.26.5 (#7716)** (5607698)
- **Merge remote-tracking branch 'origin/release-1.21' into worktree-merge-release-1.21.1-to-master** (d671fa0)
- **optimize parquet block index updates by skipping re-reads (#7669)** (d8815ef)
- **Include TSDB head max time in out of bounds and too old sample errors (#7695)** (a4974ea)
- **Make missing cache-address validation error generic across cache types (#7675)** (3e3c3e1)
- **Resolve Parquet shard count via bucket index to optimize storage calls (#7648)** (ded2c6b)
- **Detach ingester series from gRPC buffers to reduce heap (#7670)** (8525921)
- **Blog post for cortex audit (#7677)** (9f4b6f3)
- **adding ingestion delay metric (#7443)** (57f5a90)
- **upgrade prometheus 3.9.1 (#7535)** (52a8537)
- **upgrade prometheus alertmanager 0.33.0 (#7647)** (9792d45)
- **Move configs-db integration tests to ./integration (#7653)** (5517ffb)
- **Rename `time_taken` to `time_taken_ms` (#7649)** (a28b77f)
- **Compile integration tests before running them (#7644)** (2d1d100)
- **Use distroless base image for runtime container images (#7637)** (42c26e7)
- **improve slow query logging with additional context and statistics (#7601)** (43852f1)
- **Update release schedule from 6 weeks to 6 months (#7631)** (1751820)
- **enhance sensitive field checks to include SecretStringSliceCSV (#7586)** (b09efdc)
- **Register xfunctions in global parser for rule file loading (#7621)** (e174d15)
- **Stop async executor on shutdown in distributor (#7602)** (74185ef)
- **[BUGFIX] Ingester: avoid send-on-closed-channel panic in ActiveQueriedSeriesService (#7533)** (97b14b1)
- **include resolved tenant fingerprint in result cache keys to prevent stale data after tenant changes (#7562)** (e5eadb1)
- **Reuse grpc buffer in querier's store-gateway stream (#7519)** (976bc35)
- **[BUGFIX] Ingester: release TSDB appender on early-return paths in Push (#7528)** (76947fd)
- **Bump postcss, autoprefixer and postcss-cli in /website (#7449)** (85df243)
- **update modernize to v0.22.0 (#7527)** (403c505)
- **Upgrade alertmanager v0.32.1 (#7462)** (1774081)
- **Improve per-tenant alert generator URL template (#7458)** (c242bfa)
- **security: limit decompressed gzip output in ParseProtoReader and OTLP ingestion path (#7515)** (8379d7d)
- **upgrade thanos engine to 454f16264be9 (#7505)** (2fa65c0)
- **update regex resolve cache only if known user changed (#7489)** (9160af8)

### Docs
- **docs: fix typos in guides (#6912)** (5999d63)
- **docs: add monitoring, troubleshooting, and upgrading operations guides (#7660)** (d6f25e8)
- **docs: add rate limiting guide (#7659)** (b94e67a)
- **docs: add Active series and Memory series glossary entries (#7643)** (6987026)
- **docs: add Active series and Memory series glossary entries (#7641)** (e49cda1)
- **docs: document supported architectures (#7532)** (510097c)

### Chore
- **chore(deps): Bump go.opentelemetry.io/otel/bridge/opentracing (#7795)** (c64b2dc)
- **chore(deps-dev): Bump postcss from 8.5.10 to 8.5.23 in /website (#7734)** (c4164af)
- **chore(deps): Bump google.golang.org/grpc from 1.81.1 to 1.82.1 (#7719)** (a1beb80)
- **chore(deps): Bump the go-dependencies group across 1 directory with 5 updates (#7658)** (c55214c)
- **chore(deps): Bump the go-dependencies group across 1 directory with 6 updates (#7656)** (a61c38b)
- **chore(deps): Bump the actions-dependencies group across 1 directory with 12 updates (#7650)** (fde2f7f)
- **chore(deps): Bump github.com/go-chi/chi/v5 from 5.2.2 to 5.2.4 (#7635)** (7fb5f75)
- **chore(deps): Bump the go-dependencies group across 1 directory with 29 updates (#7633)** (caba61c)
- **refactor: remove obsolete migration of state files to per-tenant directories (#7513)** (8b3f7bc)
- **chore(deps): upgrade weaveworks-common to latest master (#7516)** (587e4b4)

_Recap by [Repo Wrapped](https://repowrapped.com/gh/cortexproject/cortex?utm_source=github-action)._