Skip to content

Releases: grafana/mimir

3.1.1

12 Jun 20:40
Immutable release. Only release title and notes can be modified.
mimir-3.1.1
a3d6c90

Choose a tag to compare

This release contains 10 PRs from 5 authors. Thank you!

Changelog

3.1.1

Grafana Mimir

All changes in this release: mimir-3.1.0...mimir-3.1.1

3.1.0

02 Jun 17:40
Immutable release. Only release title and notes can be modified.
mimir-3.1.0
b3a9d93

Choose a tag to compare

This release contains 1440 PRs from 97 authors, including new contributors Alex Weaver, Ali Asghar, Anas, Andy Hay, Bernd Hois, Charbel Mitri, Chris, CR, Dominik Eisenberg, Elsa Adjei, Federico Torres, francoposa, Gerard van Engelen, HuanMeng, imishchuk-tsgs, Jara Suárez de Puga García, Juliette O, Justin Grothe, Kai Udo, Karl Skewes, Karol Chrapek, Kim Nylander, Kyle Fazzari, Lars Lehtonen, Laurent Dufresne, lif, Manas Srivastava, Manuel Alonso, Mariell Hoversholm, Nico Pazos, Nikolai Tikhonov, Olzhas, Ömer Çengel, Pavel Panfilov, psauvage, Q, Rodrigo Kellermann, Sander Ruitenbeek, Satyam Raj, sherinabr, Shouhei, Soya Kubodera, srpvpn, Thimo Soet. Thank you!

Grafana Mimir version 3.1.0 release notes

Grafana Labs is excited to announce version 3.1 of Grafana Mimir.

The highlights that follow include the top features, enhancements, and bug fixes in this release. For the complete list of changes, refer to the CHANGELOG.

Features and enhancements

Grafana Mimir version 3.1 includes the following key features and enhancements.

More Kafka options for Ingest storage

Ingest storage now supports additional ways to authenticate with Kafka through the new -ingest-storage.kafka.sasl-mechanism flag, including SCRAM, OAUTHBEARER, and AWS MSK IAM authentication. In addition, new -ingest-storage.kafka.tls* flags allow connecting to Kafka clusters over TLS, including mTLS. Refer to Kafka configuration for details.

You can also configure multiple Kafka seed brokers via comma-separated values in -ingest-storage.kafka.address and enable rack-aware consumption with -ingest-storage.kafka.client-rack.

Separate ingestion limits by tenant metadata

Distributors can now track limits separately based on tenant metadata. This allows operators to track limits separately for subsets of write requests belonging to the same tenant, for example to prioritize some sources of metrics over others.

Clients may pass tenant metadata in the X-Scope-OrgID header using the format tenantID:key1=value1:key2=value2, and operators may define per-metadata overrides in the runtime configuration.

Mimir Query Engine (MQE) improvements

MQE continues to receive significant optimizations in this release:

  • Experimental extended range selector modifiers smoothed and anchored, enabled with -query-frontend.enabled-promql-extended-range-selectors.
  • Optimization passes for common subexpression elimination, subset selector elimination, projection pushdown, and multi-aggregation without buffering.
  • Improved per-query memory consumption limit enforcement in histogram and aggregation operations.
  • Experimental support for splitting and caching intermediate results for functions over range vectors in instant queries.
  • Experimental support for the info() PromQL function.

Zone-aware memberlist routing

A new experimental zone-aware routing feature for memberlist reduces cross-AZ data transfer by routing gossip messages within the local availability zone when possible. Configure it with -memberlist.zone-aware-routing.* flags.

Additional improvements

Grafana Mimir 3.1 also includes:

  • Store-gateways now verify CRC32 checksums for 1 out of every 128 chunks read from object storage and the chunks cache to detect corruption.
  • GCS uploads are now optionally retryable, with configurable max retries per storage backend.
  • Disk interaction has been removed when loading ruler rules. Rule evaluation failures now include a reason label (operator or user) in prometheus_rule_evaluation_failures_total for better error classification.
  • Query blocking via blocked_queries is now stable and no longer experimental, with support for blocking queries exceeding a time range duration (time_range_longer_than) or with steps smaller than a threshold (step_size_shorter_than).
  • The per-tenant postings-for-matchers cache is now stable.
  • Out-of-order ingestion support is now stable, configured via -ingester.out-of-order-time-window.
  • The -alertmanager.utf8-strict-mode-enabled flag is now stable.
  • The query-scheduler now drains the queue before exiting during shutdown.
  • Distributors support zone-aware rate limiting via -distributor.ring.instance-availability-zone, dividing the global ingestion rate by zones instead of total distributors.
  • Default ingest storage configuration now enables concurrency settings for improved throughput.
  • Optional per-tenant max limits for label name and label value requests via max_label_names_limit and max_label_values_limit.
  • Runtime configuration can now be loaded from HTTP URLs in addition to local files via -runtime-config.file. This may reduce configuration propagation times.

Important changes

Grafana Mimir 3.1 introduces several updates that change default behavior and configuration. Review these changes before upgrading:

  • Experimental support for disabling ring heartbeats and heartbeat timeouts has been removed.
  • The -target=flusher mode has been removed; use the /ingester/flush HTTP endpoint instead.
  • Uploaded TSDB blocks must now use v2 of the index file format. Store-gateways no longer generate index-headers from v1 index format blocks.
  • Per-step stats are no longer supported when MQE is enabled. The -query-frontend.cache-samples-processed-stats flag is deprecated and has no effect.
  • The -querier.response-streaming-enabled flag has been removed; active series responses are now always streamed.
  • cortex_ingest_storage_writer_buffered_produce_bytes has been renamed to cortex_ingest_storage_writer_buffered_produce_bytes_distribution.
  • Metric cortex_ingester_owned_target_info_series has been removed.
  • The cost_attribution_labels configuration option has been removed; use cost_attribution_labels_structured instead.
  • The minimum_step_size filter in blocked_queries has been renamed to step_size_shorter_than. Blocked queries configuration is now validated at load time.
  • -querier.prefer-availability-zone has been renamed to -querier.prefer-availability-zones and now accepts a comma-separated list.
  • The per-query memory consumption limit now considers buffered messages and spans all time-split sub-queries when MQE is enabled.
  • The following flags have been removed:
    • -distributor.metric-relabeling-enabled
    • -compactor.no-blocks-file-cleanup-enabled
    • -compactor.in-memory-tenant-meta-cache-size
    • -blocks-storage.bucket-store.index-header.eager-loading-startup-enabled
    • *.memcached.dns-ignore-startup-failures

Experimental features

Grafana Mimir 3.1 includes some features that are experimental. Use these features with caution and report any issues that you encounter:

  • New usage-tracker component to enforce series limits before data is ingested.
  • Zone-aware memberlist routing to reduce cross-AZ data transfer.
  • Query planning in query-frontends with distributed execution across queriers.
  • MQE extended range selector modifiers (smoothed, anchored).
  • MQE info() function.
  • MQE optimization passes: projection pushdown, multi-aggregation, subset selector elimination, common subexpression elimination for range vector expressions.
  • Per-zone store-gateway shard size (-store-gateway.tenant-shard-size-per-zone).
  • Running ingesters with no tokens in the ring when ingest storage is enabled (-ingester.ring.num-tokens=0).
  • Per-sample HA deduplication (-distributor.ha-tracker.per-sample-dedupe).
  • Per-tenant early head compaction for ingesters based on owned series count.
  • Store-gateway excluded zones (-store-gateway.sharding-ring.excluded-zones).
  • Controlling OTLP metric name suffix addition and translation strategy via request headers, gated by -api.otlp-translation-headers-enabled.
  • Memberlist propagation delay tracker (-memberlist.propagation-delay-tracker.enabled).
  • Reporting the number of samples read per query in MQE.

Bug fixes

For a detailed list of bug fixes, refer to the CHANGELOG.

Helm chart improvements

The Grafana Mimir Helm chart is released independently. Refer to the Grafana Mimir Helm chart documentation.

Changelog

3.1.0

Grafana Mimir

  • [CHANGE] Query-frontend: Renamed minimum_step_size filter in blocked_queries configuration to step_size_shorter_than to follow the naming convention of time_range_longer_than. Users with minimum_step_size in their runtime configuration must rename the field. #15081
  • [CHANGE] Query-frontend: blocked_queries configuration is now validated at load time; a configuration error is returned if a rule has an empty pattern, or has regex: true with a pattern that is not a valid regular expression. #14978
  • [CHANGE] Ingester: Changed default value of -include-tenant-id-in-profile-labels from false to true. #13375
  • [CHANGE] Hash ring: removed experimental support for disabling heartbeats (setting -*.ring.heartbeat-period=0) and heartbeat timeouts (setting -*.ring.heartbeat-timeout=0). These configurations are now invalid. #13104
  • [CHANGE] Distributor: removed experimental flag -distributor.metric-relabeling-enabled. #13143
  • [CHANGE] Compactor: removed experimental flag -compactor.no-blocks-file-cleanup-enabled. Cleanup of remaining files when no blocks exist is now always enabled. #13108
  • [CHANGE] Ruler: Add "unknown" alert rule state to alerts and rules on the GET <prometheus-http-prefix>/api/v1/alerts end point. Alerts are in the "unknown" state when they haven't yet been evaluated since the ruler started. #13060
  • [CHANGE] All: remove experimental feature that allowed disabling ring heartbeats and timeouts. #13142
  • [CHA...
Read more

3.1.0-rc.1

28 May 11:40
mimir-3.1.0-rc.1
feed351

Choose a tag to compare

3.1.0-rc.1 Pre-release
Pre-release

This release contains 4 PRs from 3 authors. Thank you!

Changelog

3.1.0-rc.1

Grafana Mimir

All changes in this release: mimir-3.1.0-rc.0...mimir-3.1.0-rc.1

2.17.11

15 May 07:01
mimir-2.17.11
be3ca1a

Choose a tag to compare

This release contains 5 PRs from 3 authors, including new contributors Karl Skewes, Michel Hollands. Thank you!

Changelog

2.17.11

Grafana Mimir

  • [BUGFIX] Update golang.org/x/net to v0.51.0 to address CVE-2026-27141. #15068
  • [BUGFIX] Update golang.org/x/net to v0.53.0 to address CVE-2026-33814. #15281
  • [BUGFIX] Update go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp to v1.43.0 to address CVE-2026-39882. #15329
  • [BUGFIX] Update go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp to v0.19.0 to address CVE-2026-39882. #15329
  • [BUGFIX] Update go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp to v1.43.0 to address CVE-2026-39882. #15329
  • [BUGFIX] Update go.opentelemetry.io/otel/exporters/stdout/stdoutlog to v0.19.0 for compatibility with updated OTLP exporters. #15329

All changes in this release: mimir-2.17.10...mimir-2.17.11

3.1.0-rc.0

08 May 12:01
mimir-3.1.0-rc.0
5461ddf

Choose a tag to compare

3.1.0-rc.0 Pre-release
Pre-release

This release contains 1433 PRs from 97 authors, including new contributors Alex Weaver, Ali Asghar, Anas, Andy Hay, Bernd Hois, Charbel Mitri, Chris, CR, Dominik Eisenberg, Elsa Adjei, Federico Torres, francoposa, Gerard van Engelen, HuanMeng, imishchuk-tsgs, Jara Suárez de Puga García, Juliette O, Justin Grothe, Kai Udo, Karl Skewes, Karol Chrapek, Kim Nylander, Kyle Fazzari, Lars Lehtonen, Laurent Dufresne, lif, Manas Srivastava, Manuel Alonso, Mariell Hoversholm, Nico Pazos, Nikolai Tikhonov, Olzhas, Ömer Çengel, Pavel Panfilov, psauvage, Q, Rodrigo Kellermann, Sander Ruitenbeek, Satyam Raj, sherinabr, Shouhei, Soya Kubodera, srpvpn, Thimo Soet. Thank you!

Grafana Mimir version 3.1.0-rc.0 release notes

Grafana Labs is excited to announce version 3.1 of Grafana Mimir.

The highlights that follow include the top features, enhancements, and bug fixes in this release. For the complete list of changes, refer to the CHANGELOG.

Features and enhancements

Grafana Mimir version 3.1 includes the following key features and enhancements.

More Kafka options for Ingest storage

Ingest storage now supports additional ways to authenticate with Kafka through the new -ingest-storage.kafka.sasl-mechanism flag, including SCRAM, OAUTHBEARER, and AWS MSK IAM authentication. In addition, new -ingest-storage.kafka.tls* flags allow connecting to Kafka clusters over TLS, including mTLS.

You can also configure multiple Kafka seed brokers via comma-separated values in -ingest-storage.kafka.address and enable rack-aware consumption with -ingest-storage.kafka.client-rack.

Separate ingestion limits by tenant metadata

Distributors can now track limits separately based on tenant metadata. This allows operators to track limits separately for subsets of write requests belonging to the same tenant, for example to prioritize some sources of metrics over others.

Clients may pass tenant metadata in the X-Scope-OrgID header using the format tenantID:key1=value1:key2=value2, and operators may define per-metadata overrides in the runtime configuration.

Mimir Query Engine (MQE) improvements

MQE continues to receive significant optimizations in this release:

  • Support for experimental PromQL extended range selector modifiers smoothed and anchored, enabled with -query-frontend.enabled-promql-extended-range-selectors=true.
  • Optimization passes for common subexpression elimination, subset selector elimination, projection pushdown, and multi-aggregation without buffering.
  • Improved per-query memory consumption limit enforcement in a variety of scenarios.
  • Experimental support for splitting and caching intermediate results for functions over range vectors in instant queries.
  • Support for the experimental info() PromQL function.

Zone-aware memberlist routing

A new experimental zone-aware routing feature for memberlist reduces cross-AZ data transfer by routing gossip messages within the local availability zone when possible. Configure it with -memberlist.zone-aware-routing.* flags.

Additional improvements

Grafana Mimir 3.1 also includes:

  • Store-gateways now verify CRC32 checksums for 1 out of every 128 chunks read from object storage and the chunks cache to detect corruption.
  • GCS uploads are now optionally retryable, with configurable max retries per storage backend.
  • Disk interaction has been removed when loading ruler rules. Rule evaluation failures now include a reason label (operator or user) in prometheus_rule_evaluation_failures_total for better error classification.
  • Query blocking via blocked_queries is now stable and no longer experimental, with support for blocking queries exceeding a time range duration (time_range_longer_than) or with steps smaller than a threshold (step_size_shorter_than).
  • The per-tenant postings-for-matchers cache is now stable.
  • Out-of-order ingestion support is now stable, configured via -ingester.out-of-order-time-window.
  • The -alertmanager.utf8-strict-mode-enabled flag is now stable.
  • The query-scheduler now drains the queue before exiting during shutdown.
  • Distributors support zone-aware rate limiting via -distributor.ring.instance-availability-zone, dividing the global ingestion rate by zones instead of total distributors.
  • Default ingest storage configuration now enables concurrency settings for improved throughput.
  • Optional per-tenant max limits for label name and label value requests via max_label_names_limit and max_label_values_limit.
  • Runtime configuration can now be loaded from HTTP URLs in addition to local files via -runtime-config.file. This may reduce configuration propagation times.
  • Blocked queries configuration is now validated at load time.

Important changes

Grafana Mimir 3.1 introduces several updates that change default behavior and configuration. Review these changes before upgrading:

  • Experimental support for disabling ring heartbeats and heartbeat timeouts has been removed.
  • The -target=flusher mode has been removed; use the /ingester/flush HTTP endpoint instead.
  • Uploaded TSDB blocks must now use v2 of the index file format. Store-gateways no longer generate index-headers from v1 index format blocks.
  • Per-step stats are no longer supported when MQE is enabled. The -query-frontend.cache-samples-processed-stats flag is deprecated and has no effect.
  • The -querier.response-streaming-enabled flag has been removed; active series responses are now always streamed.
  • cortex_ingest_storage_writer_buffered_produce_bytes has been renamed to cortex_ingest_storage_writer_buffered_produce_bytes_distribution.
  • Metric cortex_ingester_owned_target_info_series has been removed.
  • The cost_attribution_labels configuration option has been removed; use cost_attribution_labels_structured instead.
  • -querier.prefer-availability-zone has been renamed to -querier.prefer-availability-zones and now accepts a comma-separated list.
  • The per-query memory consumption limit now considers more sources of memory consumption. As a result, queries that previously succeeded may now fail due to exceeding the memory consumption limit.
  • The following flags have been removed:
    • -distributor.metric-relabeling-enabled
    • -compactor.no-blocks-file-cleanup-enabled
    • -compactor.in-memory-tenant-meta-cache-size
    • -blocks-storage.bucket-store.index-header.eager-loading-startup-enabled
    • *.memcached.dns-ignore-startup-failures

Experimental features

Grafana Mimir 3.1 includes some features that are experimental. Use these features with caution and report any issues that you encounter:

  • New usage-tracker component to enforce series limits before data is ingested.
  • Zone-aware memberlist routing to reduce cross-AZ data transfer.
  • Query planning in query-frontends with distributed execution across queriers.
  • Support in MQE for experimental PromQL extended range selector modifiers (smoothed, anchored).
  • Support in MQE for the experimental info() PromQL function.
  • MQE optimization passes: multi-aggregation, subset selector elimination, common subexpression elimination for range vector expressions.
  • Per-zone store-gateway shard size (-store-gateway.tenant-shard-size-per-zone).
  • Running ingesters with no tokens in the ring when ingest storage is enabled (-ingester.ring.num-tokens=0).
  • Per-sample HA deduplication (-distributor.ha-tracker.per-sample-dedupe).
  • Per-tenant early head compaction for ingesters based on owned series count.
  • Store-gateway excluded zones (-store-gateway.sharding-ring.excluded-zones).
  • Controlling OTLP metric name suffix addition and translation strategy via request headers, gated by -api.otlp-translation-headers-enabled.
  • Memberlist propagation delay tracker (-memberlist.propagation-delay-tracker.enabled).
  • Reporting the number of samples read per query in MQE.

Bug fixes

For a detailed list of bug fixes, refer to the CHANGELOG.

Helm chart improvements

The Grafana Mimir Helm chart is released independently. Refer to the Grafana Mimir Helm chart documentation.

Changelog

3.1.0-rc.0

Grafana Mimir

  • [CHANGE] Query-frontend: Renamed minimum_step_size filter in blocked_queries configuration to step_size_shorter_than to follow the naming convention of time_range_longer_than. Users with minimum_step_size in their runtime configuration must rename the field. #15081
  • [CHANGE] Query-frontend: blocked_queries configuration is now validated at load time; a configuration error is returned if a rule has an empty pattern, or has regex: true with a pattern that is not a valid regular expression. #14978
  • [CHANGE] Ingester: Changed default value of -include-tenant-id-in-profile-labels from false to true. #13375
  • [CHANGE] Hash ring: removed experimental support for disabling heartbeats (setting -*.ring.heartbeat-period=0) and heartbeat timeouts (setting -*.ring.heartbeat-timeout=0). These configurations are now invalid. #13104
  • [CHANGE] Distributor: removed experimental flag -distributor.metric-relabeling-enabled. #13143
  • [CHANGE] Compactor: removed experimental flag -compactor.no-blocks-file-cleanup-enabled. Cleanup of remaining files when no blocks exist is now always enabled. #13108
  • [CHANGE] Ruler: Add "unknown" alert rule state to alerts and rules on the GET <prometheus-http-prefix>/api/v1/alerts end point. Alerts are in the "unknown" state when they haven't yet been evaluated since the ruler started. #13060
  • [CHANGE] All: remove experimental feature that allowed disabling ring heartbeats and timeouts. #13142
  • [CHANGE] Store-gateway: Removed experimental `-blocks-storage.bucket-store.index...
Read more

3.0.6

20 Apr 12:25
25026e7

Choose a tag to compare

What's Changed

  • chore(deps): update module github.com/go-jose/go-jose/v4 to v4.1.4 [security] (release-3.0) by @renovate-sh-app[bot] in #14917
  • [3.0] Upgrade to Go 1.25.9 by @tcard in #15043
  • Update deps to address vulnerabilities by @tcard in #15048

Full Changelog: mimir-3.0.5...mimir-3.0.6

2.17.10

20 Apr 11:45
417bc20

Choose a tag to compare

What's Changed

  • chore(deps): update module github.com/go-jose/go-jose/v4 to v4.1.4 [security] (release-2.17) by @renovate-sh-app[bot] in #14918
  • [release 2.17] Backport of ruler: Fix rule expressions with leading newlines failing to parse by @zenador in #15032
  • [2.17] Upgrade to Go 1.25.9 by @tcard in #15042
  • [2.17] Update deps to address vulnerabilities by @tcard in #15050

Full Changelog: mimir-2.17.9...mimir-2.17.10

2.17.9

02 Apr 22:44
mimir-2.17.9
7f5cb63

Choose a tag to compare

This release contains 2 PRs from 1 authors. Thank you!

Changelog

2.17.9

Grafana Mimir

All changes in this release: mimir-2.17.8...mimir-2.17.9

2.17.8

31 Mar 12:28
mimir-2.17.8
6577c38

Choose a tag to compare

This release contains 4 PRs from 3 authors. Thank you!

Changelog

2.17.8

Grafana Mimir

All changes in this release: mimir-2.17.7...mimir-2.17.8

3.0.5

31 Mar 02:14
7f53a94

Choose a tag to compare

This release contains 3 PRs from 3 authors. Thank you!

Changelog

3.0.5

Grafana Mimir

All changes in this release: mimir-3.0.4...mimir-3.0.5