← Back to all sparks
C

Cortex

ANALYTICS
Velocity0.0

Horizontally scalable, multi-tenant Prometheus metrics store

Cortex is betting on Parquet block storage and graduating years of experimental features.

metricsprometheusparquetmulti-tenancystoragehardening
◆Current state
Cortex publishes its release notes as release candidates, and the two majors visible here tell a consistent story. 1.20 introduced Parquet-based block storage, Prometheus Remote Write 2.0, a resource-based limiter for ingesters and store-gateways, and regex tenant resolution, all experimental. 1.21 then made Parquet a Store Gateway query mode, graduated the Ruler API, Alertmanager API and sharding, tenant federation, FIFO/Redis cache and memcached service discovery out of experimental, and enabled the bucket index by default. The 1.21.1 candidate is almost entirely security hardening.
◆Where it's heading
Two arcs run in parallel. The storage arc is moving Cortex off pure TSDB blocks toward Parquet, first as a converter and format, then as a queryable Store Gateway mode — the same columnar direction the rest of the observability market has taken for long-retention data. The maturity arc is a deliberate clearing of the experimental backlog, with six subsystems graduating in one release and their flags renamed to drop the experimental prefix. Layered on both is a distinct hardening push: the latest candidate bounds gossip connections, caps decompressed request bodies, adds HMAC stream authentication and validates tenant IDs against the authenticated caller.
◆Prediction
Expect Parquet to keep progressing from experimental toward default, following the path the bucket index just completed. The security work in 1.21.1 reads like a systematic pass over untrusted input paths rather than a response to a single report, so more of the same in the ingestion and gossip layers is likely.

◆Recent moves

  1. 5mo ago

    1.21.1 candidate hardens gossip, ingestion and status pages

    A candidate made almost entirely of security fixes: stored XSS in Alertmanager and Store Gateway status pages, decompressed gzip output capped on the OTLP path, native histogram size limits against memory amplification, credentials masked on /config, and new flags bounding inbound gossip connections. Also adds HMAC-SHA256 stream authentication and rejects PushStream requests whose tenant ID does not match the caller.

    View source ↗
  2. 6mo ago

    1.21.0-rc.1 fixes memberlist, tenant federation and a memory leak

    A cleanup candidate: a HA tracker panic on deleted memberlist keys, a tenant federation regex failure when matching zero or one tenant, and a memory leak in ReuseWriteRequestV2 from unreleased symbol pointers. Most of these land on the features 1.21.0 was in the process of graduating.

    View source ↗
  3. 7mo ago

    Parquet becomes a Store Gateway mode as six features graduate

    ⚡ SPARK

    The release where 1.20's experiments become supported product: Parquet moves from a format and converter to a Store Gateway query mode, and six subsystems shed their experimental flags at once. Together with the bucket index becoming default, this is Cortex declaring a large part of its recent surface production-ready.

    View source ↗
  4. 11mo ago

    1.20.0-rc.1 fixes metric name validation and a compactor race

    Two bug fixes ahead of the 1.20 release: wrong validation logic being applied to metric names, and a compactor race that could leave partitions uncompacted. A short stabilisation candidate rather than new content.

    View source ↗
  5. 0y ago

    Cortex 1.20 introduces Parquet storage and Remote Write 2.0

    ⚡ SPARK

    The release that opens the current arc: experimental Parquet block storage with a converter service and querier support, Prometheus Remote Write 2.0, gRPC stream push between distributor and ingester, and a resource-based limiter. Everything 1.21 graduates or promotes traces back to this batch.

    View source ↗