<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Grafana Mimir release notes on Grafana Labs</title><link>https://grafana.com/docs/mimir/v3.1.x/release-notes/</link><description>Recent content in Grafana Mimir release notes on Grafana Labs</description><generator>Hugo -- gohugo.io</generator><language>en</language><atom:link href="/docs/mimir/v3.1.x/release-notes/index.xml" rel="self" type="application/rss+xml"/><item><title>Grafana Mimir version 2.0 release notes</title><link>https://grafana.com/docs/mimir/v3.1.x/release-notes/v2.0/</link><pubDate>Wed, 03 Jun 2026 09:01:40 +0200</pubDate><guid>https://grafana.com/docs/mimir/v3.1.x/release-notes/v2.0/</guid><content><![CDATA[&lt;h1 id=&#34;grafana-mimir-version-20-release-notes&#34;&gt;Grafana Mimir version 2.0 release notes&lt;/h1&gt;
&lt;p&gt;Grafana Labs is excited to announce the first release of Grafana Mimir, the most scalable, most performant open source time series database in the world. In customer tests, we’ve shown that a single cluster can support more than one billion active time series.&lt;/p&gt;
&lt;p&gt;Besides massive scale, Grafana Mimir offers a host of other benefits, including easy deployment, native multi-tenancy, high availability, durable long-term storage, and exceptional query performance on even the highest-cardinality queries.&lt;/p&gt;
&lt;p&gt;For more information about Grafana Mimir features and capabilities, watch the &lt;strong&gt;Introducing Grafana Mimir&lt;/strong&gt; video.





  
  
  


&lt;div&gt;
  &lt;iframe src=&#34;https://player.vimeo.com/video/742056367?transparent=0&#34; title=&#34;vimeo video&#34; webkitallowfullscreen=&#34;&#34; mozallowfullscreen=&#34;&#34; allowfullscreen=&#34;&#34;&gt;&lt;/iframe&gt;
  &lt;div &gt;
    
  &lt;/div&gt;
&lt;/div&gt;&lt;/p&gt;
&lt;br/&gt;
&lt;p&gt;We’re launching Grafana Mimir with a 2.0 version number to signal our respect for Cortex, the project from which Grafana Mimir was forked. The choice of 2.0 also represents our conviction that Grafana Mimir is real-world-tested, production-ready software. It has served as the backbone of our Grafana Cloud Metrics and Grafana Enterprise Metrics products since their inception.&lt;/p&gt;
&lt;p&gt;For more on the story of why we created Grafana Mimir, please see the following blog posts:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;/blog/2022/03/30/announcing-grafana-mimir/&#34;&gt;Announcing Grafana Mimir, the most scalable open source TSDB in the world&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/blog/2022/03/30/qa-with-our-ceo-about-grafana-mimir/&#34;&gt;Grafana Mimir Q&amp;amp;A with Grafana Labs CEO Raj Dutt&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Grafana Mimir builds on Cortex 1.10.0, adding features we developed to run Grafana Enterprise Metrics and Grafana Cloud Metrics at massive scale. As a result, these listed features and enhancements, migration considerations, and bug fixes highlight changes between Cortex 1.10.0 and Grafana Mimir 2.0.&lt;/p&gt;
&lt;p&gt;The complete list of changes is recorded in the &lt;a href=&#34;https://github.com/grafana/mimir/blob/main/CHANGELOG.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Changelog&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;features-and-enhancements&#34;&gt;Features and enhancements&lt;/h2&gt;
&lt;p&gt;These features and enhancements distinguish Grafana Mimir from Cortex 1.10.0:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Simplified deployment experience&lt;/strong&gt;: These changes improve the experience of setting up and maintaining Grafana Mimir:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;We revamped Cortex’s single process mode, renaming it &lt;a href=&#34;../../references/architecture/deployment-modes/#monolithic-mode&#34;&gt;monolithic mode&lt;/a&gt;. Monolithic mode now runs the required compactor component, and has better configuration defaults, so that it works with fewer changes out-of-the-box.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;We switched to &lt;code&gt;memberlist&lt;/code&gt; as the default store for Grafana Mimir’s &lt;a href=&#34;../../references/architecture/hash-ring/&#34;&gt;hash rings&lt;/a&gt;. With this, users no longer have to run Consul or etcd as external dependencies. We made performance optimizations to &lt;code&gt;memberlist&lt;/code&gt; to reduce its CPU utilization, which ensures that &lt;code&gt;memberlist&lt;/code&gt; runs smoothly on Grafana Mimir clusters with lots of active series.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;We’ve included our own internal best practice dashboards, mixins, and alerts for &lt;a href=&#34;../../manage/monitor-grafana-mimir/&#34;&gt;monitoring Grafana Mimir&lt;/a&gt;. While installing monitoring best practices such as these has typically required use of Jsonnet, we’ve eliminated this requirement. We include dashboards as JSON and alerting and recording rules as YAML which can be directly imported into your Grafana and Prometheus deployments. The alerts are accompanied by &lt;a href=&#34;../../manage/mimir-runbooks/&#34;&gt;runbooks&lt;/a&gt; distilled from our own internal operations.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Configuration parameter reduction and classification&lt;/strong&gt;: We removed 36% of the configuration parameters in Grafana Mimir. All remaining configuration parameters have been classified as basic, advanced, or experimental. This is meant to make Grafana Mimir’s configuration more approachable for new users. In a default installation, you can focus exclusively on basic configuration. As you become more familiar with Grafana Mimir and want to push your clusters further, you can choose to tune advanced parameters or use experimental parameters. Refer to &lt;a href=&#34;../../configure/configuration-parameters/#parameter-categories&#34;&gt;parameter categories&lt;/a&gt; to learn more.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;More-scalable metrics compaction&lt;/strong&gt;: Grafana Mimir&amp;rsquo;s new compactor uses a split-and-merge compaction algorithm. This new compactor parallelizes the compaction of overlapping blocks across multiple machines, and splits blocks in such a way as to overcome Prometheus’ &lt;a href=&#34;/blog/2019/10/31/lifting-the-index-size-limit-of-prometheus-with-postings-compression/&#34;&gt;64 GB index size limit&lt;/a&gt;. This solves a problem that we&amp;rsquo;ve seen with tenants with greater than 30M time series in Cortex - namely, that the count of uncompacted blocks grew indefinitely because the compactor couldn’t work fast enough. With its new compactor, a single Grafana Mimir cluster can support over one billion active time series. Refer to &lt;a href=&#34;../../references/architecture/components/compactor/&#34;&gt;compactor&lt;/a&gt; to learn more.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Query sharding for improved query speeds&lt;/strong&gt;: Grafana Mimir introduces query sharding to accelerate the execution of high-cardinality or CPU-intensive queries. Query sharding distributes the execution of a single query across multiple machines, to significantly reduce query execution time. We have seen speedups of 10 to 30x in our Grafana Cloud Metrics clusters. Refer to &lt;a href=&#34;../../references/architecture/query-sharding/&#34;&gt;query sharding&lt;/a&gt; to learn more.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Federated rule groups&lt;/strong&gt;: Grafana Mimir makes it possible to write alerting and recording rules that use metrics data from multiple tenants. For example, a user can now create a recording rule that adds metricA from tenantA to metricB from tenantB and writes the result to tenantC. This feature is experimental. For more information on how to use it, refer to &lt;a href=&#34;../../references/architecture/components/ruler/#federated-rule-groups&#34;&gt;federated rule groups&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Understand your metrics cardinality&lt;/strong&gt;: Grafana Mimir adds two API endpoints to help users identify high-cardinality metrics. The &lt;a href=&#34;../../references/http-api/#label-names-cardinality&#34;&gt;&lt;code&gt;label_names&lt;/code&gt; endpoint&lt;/a&gt; takes a metric name and returns all label names applied to that metric, as well as the count of values for each label name. When run without a metric name, it returns the highest-cardinality label names. The &lt;a href=&#34;../../references/http-api/#label-values-cardinality&#34;&gt;&lt;code&gt;label_values&lt;/code&gt; endpoint&lt;/a&gt; returns the highest-cardinality metrics, and can be used to get a count of how many series have a given label-value pair applied. The new &lt;a href=&#34;../../configure/configure-custom-trackers/&#34;&gt;custom tracker feature&lt;/a&gt; takes this one step further by allowing you to track the count of active series over time that match a specific label matcher.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;These features are no longer considered experimental; they are stable features:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Cross tenant query federation&lt;/strong&gt; is a feature that allows you to issue queries that aggregate series across multiple tenants, providing a way to get a global view of your data. Refer to &lt;code&gt;tenant-federation.enabled&lt;/code&gt; in the &lt;a href=&#34;../../configure/configuration-parameters/#configuration-parameters&#34;&gt;configuration parameters&lt;/a&gt; block to learn more.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Zone-aware replication&lt;/strong&gt; protects against data loss due to an outage in a specific zone by ensuring data is replicated across multiple zones. In addition to promoting this feature to stable, we’ve also released a &lt;a href=&#34;https://github.com/grafana/rollout-operator&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Kubernetes operator&lt;/a&gt; that makes it easier for those running Grafana Mimir on Kubernetes to manage multi-zone rollouts. Refer to &lt;a href=&#34;../../configure/configure-zone-aware-replication/&#34;&gt;Configuring zone-aware replication&lt;/a&gt; to learn more.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Azure Blob storage and OpenStack Swift support&lt;/strong&gt;: Two additional object storage options are available. Grafana Mimir now supports AWS S3, GCS, Azure Blob Storage, OpenStack Swift, as well as any S3-compatible object storage.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Horizontally scalable Alertmanager&lt;/strong&gt;: The &lt;a href=&#34;../../references/architecture/components/alertmanager/&#34;&gt;Alertmanager&lt;/a&gt; can distribute its workload among multiple Alertmanager replicas, increasing the maximum number of tenants a cluster can comfortably handle. The Alertmanager uses the tenant ID to determine which replica(s) own which tenant. The replication factor is configurable, so alerts are replicated across multiple replicas, reducing the likelihood of a dropped alert.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Query-scheduler component&lt;/strong&gt;: The query-scheduler component solves the scalability limitations of the query-frontend component. We strongly encourage users operating larger Grafana Mimir clusters to run this optional component. Refer to the &lt;a href=&#34;../../references/architecture/components/query-scheduler/&#34;&gt;query-scheduler&lt;/a&gt; to learn more about this component.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;migration-considerations&#34;&gt;Migration considerations&lt;/h2&gt;
&lt;p&gt;This information is relevant only to users migrating from Cortex to Grafana Mimir. Those who are not currently using Cortex today can follow our tutorial to &lt;a href=&#34;/tutorials/play-with-grafana-mimir/&#34;&gt;Get Mimir up and running in 10 minutes&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Grafana Mimir is 100% compatible with Cortex, and the migration from Cortex to Mimir can be done without any data loss or downtime.&lt;/p&gt;
&lt;p&gt;Grafana Mimir 2.0 is a major version upgrade, and therefore it introduces several breaking changes for those migrating from Cortex. To make this upgrade as easy as possible, we’ve added functionality to &lt;a href=&#34;../../manage/tools/mimirtool/&#34;&gt;&lt;code&gt;mimirtool&lt;/code&gt;&lt;/a&gt; to automate the required configuration changes. We’ve paired this tooling with detailed &lt;a href=&#34;../../set-up/migrate/&#34;&gt;migration guides&lt;/a&gt; that walk through all required changes.&lt;/p&gt;
&lt;p&gt;For a demonstration that illustrates how easy this migration can be, please see the following video:&lt;/p&gt;





  
  
  


&lt;div&gt;
  &lt;iframe src=&#34;https://player.vimeo.com/video/742056367?transparent=0&#34; title=&#34;vimeo video&#34; webkitallowfullscreen=&#34;&#34; mozallowfullscreen=&#34;&#34; allowfullscreen=&#34;&#34;&gt;&lt;/iframe&gt;
  &lt;div &gt;
    
  &lt;/div&gt;
&lt;/div&gt;
&lt;br/&gt;
&lt;h2 id=&#34;bug-fixes&#34;&gt;Bug fixes&lt;/h2&gt;
&lt;h3 id=&#34;200-bug-fixes&#34;&gt;2.0.0 bug fixes&lt;/h3&gt;
&lt;p&gt;Version 2.0.0 fixes these bugs:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://github.com/grafana/mimir/pull/424&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;PR 424&lt;/a&gt;: Fixed a bug where cached results for step-aligned queries were used to respond to unaligned queries, causing the user to receive incorrect results. The new configuration parameter &lt;code&gt;query-frontend.cache-unaligned-requests&lt;/code&gt; safely enables the caching of query results, even when the query step is not aligned.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://github.com/grafana/mimir/pull/224&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;PR 224&lt;/a&gt;: Fixed a race condition in the Alertmanager, which sometimes resulted in a tenant’s configuration being replaced with the blank fallback configuration.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://github.com/grafana/mimir/pull/551&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;PR 551&lt;/a&gt;: Fixed a bug in &lt;code&gt;memberlist&lt;/code&gt; that caused large messages to be corrupted. This bug fix, in addition to the memberlist performance optimizations, enabled us to switch to &lt;code&gt;memberlist&lt;/code&gt; as the default store for Grafana Mimir’s hash rings.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
]]></content><description>&lt;h1 id="grafana-mimir-version-20-release-notes">Grafana Mimir version 2.0 release notes&lt;/h1>
&lt;p>Grafana Labs is excited to announce the first release of Grafana Mimir, the most scalable, most performant open source time series database in the world. In customer tests, we’ve shown that a single cluster can support more than one billion active time series.&lt;/p></description></item><item><title>Grafana Mimir version 2.1 release notes</title><link>https://grafana.com/docs/mimir/v3.1.x/release-notes/v2.1/</link><pubDate>Wed, 03 Jun 2026 09:01:40 +0200</pubDate><guid>https://grafana.com/docs/mimir/v3.1.x/release-notes/v2.1/</guid><content><![CDATA[&lt;h1 id=&#34;grafana-mimir-version-21-release-notes&#34;&gt;Grafana Mimir version 2.1 release notes&lt;/h1&gt;
&lt;p&gt;Grafana Labs is excited to announce version 2.1 of Grafana Mimir, the most scalable, most performant open source time series database in the world.&lt;/p&gt;
&lt;p&gt;Below we highlight the top features, enhancements and bugfixes in this release, as well as relevant callouts for those upgrading from Grafana Mimir 2.0. The complete list of changes is recorded in the &lt;a href=&#34;https://github.com/grafana/mimir/blob/main/CHANGELOG.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Changelog&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;features-and-enhancements&#34;&gt;Features and enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Mimir on ARM&lt;/strong&gt;: We now publish Docker images for both &lt;code&gt;amd64&lt;/code&gt; and &lt;code&gt;arm64&lt;/code&gt;, making it easier for those on arm-based machines to develop and run Mimir. Multiplaform images are available from the &lt;a href=&#34;https://hub.docker.com/r/grafana/mimir&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Mimir docker registry&lt;/a&gt;. Note that our existing integration test suite only uses the &lt;code&gt;amd64&lt;/code&gt; images, which means we cannot make any functional or performance guarantees about the &lt;code&gt;arm64&lt;/code&gt; images.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Remote&lt;/code&gt; ruler mode for improved rule evaluation performance&lt;/strong&gt;: We&amp;rsquo;ve added a &lt;code&gt;remote&lt;/code&gt; mode for the Grafana Mimir ruler, in which the ruler delegates rule evaluation to the &lt;a href=&#34;../../references/architecture/components/query-frontend/&#34;&gt;query-frontend&lt;/a&gt; rather than evaluating rules directly within the ruler process itself. This allows recording and alerting rules to benefit from the query parallelization techniques implemented in the query-frontend (like query sharding). &lt;code&gt;Remote&lt;/code&gt; mode is considered experimental and is off by default. To enable, see &lt;a href=&#34;../../references/architecture/components/ruler/#remote&#34;&gt;remote ruler&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Per-tenant custom trackers for monitoring cardinality&lt;/strong&gt;: In Grafana Mimir 2.0, we introduced a &lt;a href=&#34;../../configure/configure-custom-trackers/&#34;&gt;custom tracker feature&lt;/a&gt; that allows you to track the count of active series over time that match a specific label matcher. In Grafana Mimir 2.1, we&amp;rsquo;ve made it possible to configure custom trackers via the &lt;a href=&#34;../../configure/about-runtime-configuration/&#34;&gt;runtime configuration file&lt;/a&gt;. This means you can now define different trackers for each tenant in your cluster and modify those trackers without an ingester restart.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Reduce cardinality of Grafana Mimir&amp;rsquo;s &lt;code&gt;/metrics&lt;/code&gt; endpoint&lt;/strong&gt;: While Grafana Mimir does a good job of exposing a relatively small number of series about its own state, this number can tick up when running Grafana Mimir clusters with high tenant counts or high active series counts. To reduce this number (and the accompanying cost of scraping and storing these time series), we made &lt;a href=&#34;https://github.com/grafana/mimir/issues/1750&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;several optimizations&lt;/a&gt; which decreased series count on the &lt;code&gt;/metrics&lt;/code&gt; endpoint by more than 10%.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;upgrade-considerations&#34;&gt;Upgrade considerations&lt;/h2&gt;
&lt;p&gt;We&amp;rsquo;ve updated the default values for 2 parameters in Grafana Mimir to give users better out-of-the-box performance:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;We&amp;rsquo;ve changed the default for &lt;code&gt;-blocks-storage.tsdb.isolation-enabled&lt;/code&gt; from &lt;code&gt;true&lt;/code&gt; to &lt;code&gt;false&lt;/code&gt;. We&amp;rsquo;ve marked this flag as deprecated and will remove it completely in 2 releases. &lt;a href=&#34;/blog/2020/05/05/how-isolation-improves-queries-in-prometheus-2.17/&#34;&gt;TSDB isolation&lt;/a&gt; is a feature inherited from Prometheus that didn&amp;rsquo;t provide any benefit given Grafana Mimir&amp;rsquo;s distributed architecture and in our &lt;a href=&#34;/blog/2022/04/08/how-we-scaled-our-new-prometheus-tsdb-grafana-mimir-to-1-billion-active-series/#prometheus-tsdb-enhancements&#34;&gt;1 billion series load test&lt;/a&gt; we found it actually hurt performance. Disabling it reduced our ingester 99th percentile latency by 90%.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;The store-gateway attributes cache is now enabled by default (achieved by updating the default for &lt;code&gt;-blocks-storage.bucket-store.chunks-cache.attributes-in-memory-max-items&lt;/code&gt; from &lt;code&gt;0&lt;/code&gt; to &lt;code&gt;50000&lt;/code&gt;). This in-memory cache makes it faster to look up object attributes for chunk data. We&amp;rsquo;ve been running this optional cache internally for a while and upon a recent configuration audit, realized it made sense to do the same for all users. The increase in store-gateway memory utilization from enabling this cache is negligible and easily justified given the performance gains.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;As part of the enhancement to make active series custom trackers configurable on a per-tenant basis, we&amp;rsquo;ve moved where they get configured. Users of this feature should migrate from defining &lt;code&gt;active_series_custom_trackers_config&lt;/code&gt; in the &lt;code&gt;ingester&lt;/code&gt; section of Grafana Mimir&amp;rsquo;s &lt;a href=&#34;../../configure/configuration-parameters/#configuration-parameters&#34;&gt;YAML configuration&lt;/a&gt; to defining it in the &lt;code&gt;limits&lt;/code&gt; section. Both options are supported for now to give users time to make the change, but configuring &lt;code&gt;active_series_custom_trackers_config&lt;/code&gt; via the &lt;code&gt;ingester&lt;/code&gt; section has been marked deprecated and will be removed in Mimir 2.3. Note: Configuring &lt;code&gt;active_series_custom_trackers_config&lt;/code&gt; in both the &lt;code&gt;limits&lt;/code&gt; and &lt;code&gt;ingester&lt;/code&gt; sections will cause Grafana Mimir to fail on startup.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;bug-fixes&#34;&gt;Bug fixes&lt;/h2&gt;
&lt;h3 id=&#34;210-bug-fixes&#34;&gt;2.1.0 bug fixes&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/grafana/mimir/pull/1704&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;PR 1704&lt;/a&gt;: Fixed a bug that previously caused Grafana Mimir to crash on startup when trying to run in monolithic mode with the results cache enabled due to duplicate metric names.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/grafana/mimir/pull/1835&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;PR 1835&lt;/a&gt;: Fixed a bug that caused Grafana Mimir to crash when an invalid Alertmanager configuration was set even though the Alertmanager component was disabled. After this fix, the Alertmanager configuration is only validated if the Alertmanager component is loaded.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/grafana/mimir/pull/1836&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;PR 1836&lt;/a&gt;: The ability to run Alertmanager with &lt;code&gt;local&lt;/code&gt; storage broke in Grafana Mimir 2.0 when we removed the ability to run the Alertmanager without sharding. With this bugfix, we&amp;rsquo;ve made it possible to again run Alertmanager with &lt;code&gt;local&lt;/code&gt; storage. However, for production use, we still recommend using external store since this is needed to persist Alertmanager state (e.g. silences) between replicas.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/grafana/mimir/pull/1715&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;PR 1715&lt;/a&gt;: Restored Grafana Mimir&amp;rsquo;s ability to use CNAME DNS records to reach memcached servers. The bug was inherited from an upstream change to Thanos; we contributed a fix to Thanos and subsequently updated our Thanos version.&lt;/li&gt;
&lt;/ul&gt;
]]></content><description>&lt;h1 id="grafana-mimir-version-21-release-notes">Grafana Mimir version 2.1 release notes&lt;/h1>
&lt;p>Grafana Labs is excited to announce version 2.1 of Grafana Mimir, the most scalable, most performant open source time series database in the world.&lt;/p></description></item><item><title>Grafana Mimir version 2.2 release notes</title><link>https://grafana.com/docs/mimir/v3.1.x/release-notes/v2.2/</link><pubDate>Wed, 03 Jun 2026 09:01:40 +0200</pubDate><guid>https://grafana.com/docs/mimir/v3.1.x/release-notes/v2.2/</guid><content><![CDATA[&lt;h1 id=&#34;grafana-mimir-version-22-release-notes&#34;&gt;Grafana Mimir version 2.2 release notes&lt;/h1&gt;
&lt;p&gt;Grafana Labs is excited to announce version 2.2 of Grafana Mimir, the most scalable, most performant open source time series database in the world.&lt;/p&gt;
&lt;p&gt;The highlights that follow include the top features, enhancements, and bugfixes in this release. If you are upgrading from Grafana Mimir 2.1, there is upgrade-related information as well.
For the complete list of changes, see the &lt;a href=&#34;https://github.com/grafana/mimir/blob/main/CHANGELOG.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Changelog&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;features-and-enhancements&#34;&gt;Features and enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Support for ingesting out-of-order samples&lt;/strong&gt;: Grafana Mimir includes new, experimental support for ingesting out-of-order samples.
This support is configurable, and it allows you to set how far out-of-order Mimir accepts samples on a per-tenant basis.
This feature still needs additional testing; we do not recommend using it in a production environment.
For more information, see &lt;a href=&#34;../../configure/configure-out-of-order-samples-ingestion/&#34;&gt;Configuring out-of-order samples ingestion&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Improved error messages&lt;/strong&gt;: The error messages that Mimir reports are more human readable, and the messages include error codes that are easily searchable.
For error descriptions, see the Grafana Mimir runbooks’ &lt;a href=&#34;../../manage/mimir-runbooks/#errors-catalog&#34;&gt;Errors catalog&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Configurable prefix for object storage&lt;/strong&gt;: Mimir can now store block data, rules, and alerts in one bucket, with each under its own user-defined prefix, rather than requiring one bucket for each.
You can configure the storage prefix by using &lt;code&gt;-&amp;lt;storage&amp;gt;.storage-prefix&lt;/code&gt; option for corresponding storage: &lt;code&gt;ruler-storage&lt;/code&gt;, &lt;code&gt;alertmanager-storage&lt;/code&gt; or &lt;code&gt;blocks-storage&lt;/code&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Store-gateway performance optimization&lt;/strong&gt;
The store-gateway can now pre-populate the file system cache when memory-mapping index-header files.
This avoids the store-gateway from appearing to be stuck while loading &lt;a href=&#34;../../references/architecture/binary-index-header/&#34;&gt;index-headers&lt;/a&gt;.
This feature is experimental and disabled by default; enable it using the flag &lt;code&gt;-blocks-storage.bucket-store.index-header.map-populate-enabled&lt;/code&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Faster ingester startup&lt;/strong&gt;: Ingesters now replay their WALs (write ahead logs) about 50% faster, and they also re-join the ring sooner under some conditions.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Helm Chart improvements&lt;/strong&gt;: The &lt;a href=&#34;https://github.com/grafana/mimir/tree/main/operations/helm/charts/mimir-distributed&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Mimir Helm chart&lt;/a&gt; is the best way to install Mimir on Kubernetes. As part of the Mimir 2.2 release, we&amp;rsquo;re also releasing version 3.0 of the Helm chart. Notable enhancements follow. For the full list of changes, see the &lt;a href=&#34;https://github.com/grafana/mimir/tree/main/operations/helm/charts/mimir-distributed/CHANGELOG.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Helm chart changelog&lt;/a&gt;.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The Helm chart now supports &lt;a href=&#34;https://www.redhat.com/en/technologies/cloud-computing/openshift&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;OpenShift&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;The Helm chart can now easily deploy &lt;a href=&#34;https://github.com/grafana/agent&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Grafana Agent&lt;/a&gt; in order to scrape metrics and logs from all Mimir pods, and ship them to a remote store, which makes it easier to monitor the health of your Mimir installation. For more information, see &lt;a href=&#34;../../manage/monitor-grafana-mimir/collecting-metrics-and-logs/&#34;&gt;Collecting metrics and logs from Grafana Mimir&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;The Helm chart now enables multi-tenancy by default. This makes it easy for you to add tenants as you grow your cluster. You can take advantage of Mimir&amp;rsquo;s per-tenant quality-of-service features, which improves stability and resilience at high scale. To learn more about how multi-tenancy in Mimir works, see &lt;a href=&#34;../../manage/secure/authentication-and-authorization/&#34;&gt;Grafana Mimir authorization and authentication&lt;/a&gt;. This change is backwards-compatible. To read about how we implemented this, see &lt;a href=&#34;https://github.com/grafana/mimir/pull/2117&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;#2117&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;We have significantly improved the configuration experience for the Helm chart, and here are a few of the most salient changes:
&lt;ul&gt;
&lt;li&gt;We&amp;rsquo;ve added an &lt;code&gt;extraEnvFrom&lt;/code&gt; capability to all Mimir services to enable you to inject secrets via environment variables.&lt;/li&gt;
&lt;li&gt;We&amp;rsquo;ve made it possible to globally set environment variables and inject secrets across all pods in the chart using &lt;code&gt;global.extraEnv&lt;/code&gt; and &lt;code&gt;global.extraEnvFrom&lt;/code&gt;. Note that the memcached and minio pods are not included.&lt;/li&gt;
&lt;li&gt;We&amp;rsquo;ve switched the default storage of the Mimir configuration from a &lt;code&gt;Secret&lt;/code&gt; to a &lt;code&gt;ConfigMap&lt;/code&gt;, which makes it easier to quickly see the differences between your Mimir configurations between upgrades. We especially like the &lt;a href=&#34;https://github.com/databus23/helm-diff&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Helm diff&lt;/a&gt; plugin for this purpose.&lt;/li&gt;
&lt;li&gt;We&amp;rsquo;ve added a &lt;code&gt;structuredConfig&lt;/code&gt; option, which allows you to overwrite specific key-value pairs in the &lt;code&gt;mimir.config&lt;/code&gt; template, which saves you from having to maintain the entire &lt;code&gt;mimir.config&lt;/code&gt; in your own &lt;code&gt;values.yaml&lt;/code&gt; file.&lt;/li&gt;
&lt;li&gt;We&amp;rsquo;ve added the ability to create global pod annotations. This unlocks the ability to trigger a restart of all services in response to a single event, such as the update of the secret containing Mimir&amp;rsquo;s storage credentials.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;We&amp;rsquo;ve set the chart to disable &lt;code&gt;-ingester.ring.unregister-on-shutdown&lt;/code&gt; and &lt;code&gt;-distributor.extend-writes&lt;/code&gt;, for a smoother upgrade experience. Rolling restarts of ingesters are now less likely to cause spikes in resource usage.&lt;/li&gt;
&lt;li&gt;We&amp;rsquo;ve improved the documentation for the Helm chart by adding a &lt;em&gt;Get started with Mimir using the Helm chart&lt;/em&gt; guide.&lt;/li&gt;
&lt;li&gt;We&amp;rsquo;ve added a smoke test for your Mimir cluster to help catch errors immediately after you install or upgrade Mimir via the Helm chart.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;upgrade-considerations&#34;&gt;Upgrade considerations&lt;/h2&gt;
&lt;p&gt;All deprecated API endpoints that are under &lt;code&gt;/api/v1/rules*&lt;/code&gt; and &lt;code&gt;/prometheus/rules*&lt;/code&gt; have now been removed from the ruler component in favor of identical endpoints that use the prefix &lt;code&gt;/prometheus/config/v1/rules*&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;In Grafana Mimir 2.2, we have updated default values and some parameters to give you a better out-of-the-box experience:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Message size limits for gRPC messages that are exchanged between internal Mimir components have increased to 100 MiB from 4 MiB.
This helps to avoid internal server errors when pushing or querying large data.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;The &lt;code&gt;-blocks-storage.bucket-store.ignore-blocks-within&lt;/code&gt; parameter changed from &lt;code&gt;0&lt;/code&gt; to &lt;code&gt;10h&lt;/code&gt;.
The default value of &lt;code&gt;-querier.query-store-after&lt;/code&gt; changed from &lt;code&gt;0&lt;/code&gt; to &lt;code&gt;12h&lt;/code&gt;.
For most-recent data, both changes improve query performance by querying only the ingesters, rather than object storage.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;The option &lt;code&gt;-querier.shuffle-sharding-ingesters-lookback-period&lt;/code&gt; has been deprecated.
If you previously changed this option from its default of &lt;code&gt;0s&lt;/code&gt;, set &lt;code&gt;-querier.shuffle-sharding-ingesters-enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; and specify the lookback period by setting the &lt;code&gt;-querier.query-ingesters-within&lt;/code&gt; option.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;The &lt;code&gt;-memberlist.abort-if-join-fails&lt;/code&gt; parameter now defaults to &lt;code&gt;false&lt;/code&gt;.
When Mimir is using memberlist as the backend store for its hash ring, and it fails to join the memberlist cluster, Mimir no longer aborts startup by default.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you have used a previous version of the &lt;a href=&#34;https://github.com/grafana/mimir/tree/main/operations/helm/charts/mimir-distributed&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Mimir Helm chart&lt;/a&gt;, you must address some of the chart&amp;rsquo;s breaking changes before upgrading to helm chart version 3.0. For a detailed information about how to do this, see the &lt;em&gt;Upgrade the Grafana Mimir Helm chart from version 2.1 to 3.0&lt;/em&gt; guide.&lt;/p&gt;
&lt;h2 id=&#34;bug-fixes&#34;&gt;Bug fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/grafana/mimir/pull/1883&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;PR 1883&lt;/a&gt;: Fixed a bug that caused the query-frontend and querier to crash when they received a user query with a special regular expression label matcher.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/grafana/mimir/pull/1933&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;PR 1933&lt;/a&gt;: Fixed a bug in the &lt;a href=&#34;../../references/http-api/#ingesters-ring-status&#34;&gt;ingester ring page&lt;/a&gt;, which showed incorrect status of entries in the ring.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/grafana/mimir/pull/2090&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;PR 2090&lt;/a&gt;: Ruler in &lt;a href=&#34;../../references/architecture/components/ruler/#remote&#34;&gt;remote rule evaluation mode&lt;/a&gt; now applies the timeout correctly. Previously the ruler could get stuck forever, which halted rule evaluation.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/grafana/mimir/pull/2036&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;PR 2036&lt;/a&gt;: Fixed panic at startup when Mimir is running in monolithic mode and query sharding is enabled.&lt;/li&gt;
&lt;/ul&gt;
]]></content><description>&lt;h1 id="grafana-mimir-version-22-release-notes">Grafana Mimir version 2.2 release notes&lt;/h1>
&lt;p>Grafana Labs is excited to announce version 2.2 of Grafana Mimir, the most scalable, most performant open source time series database in the world.&lt;/p></description></item><item><title>Grafana Mimir version 2.3 release notes</title><link>https://grafana.com/docs/mimir/v3.1.x/release-notes/v2.3/</link><pubDate>Wed, 03 Jun 2026 09:01:40 +0200</pubDate><guid>https://grafana.com/docs/mimir/v3.1.x/release-notes/v2.3/</guid><content><![CDATA[&lt;h1 id=&#34;grafana-mimir-version-23-release-notes&#34;&gt;Grafana Mimir version 2.3 release notes&lt;/h1&gt;
&lt;p&gt;Grafana Labs is excited to announce version 2.3 of Grafana Mimir, the most scalable, most performant open source time series database in the world.&lt;/p&gt;
&lt;p&gt;The highlights that follow include the top features, enhancements, and bugfixes in this release. For the complete list of changes, see the &lt;a href=&#34;https://github.com/grafana/mimir/blob/main/CHANGELOG.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;changelog&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: If you are upgrading from Grafana Mimir 2.2, review the &lt;a href=&#34;#important-changes&#34;&gt;list of important changes&lt;/a&gt; that follow.&lt;/p&gt;
&lt;h2 id=&#34;features-and-enhancements&#34;&gt;Features and enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Ingest metrics in OpenTelemetry format&lt;/strong&gt;:
This release of Grafana Mimir introduces experimental support for ingesting metrics from the &lt;a href=&#34;https://opentelemetry.io/docs/collector/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;OpenTelemetry Collector&amp;rsquo;s&lt;/a&gt; &lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector/blob/main/exporter/otlphttpexporter/README.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&lt;code&gt;otlphttp&lt;/code&gt; exporter&lt;/a&gt;. This adds a second ingestion option for users of the OTel Collector; Mimir was already compatible with the &lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/exporter/prometheusremotewriteexporter&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&lt;code&gt;prometheusremotewrite&lt;/code&gt; exporter&lt;/a&gt;. For more information, please see &lt;a href=&#34;../../configure/configure-otel-collector/&#34;&gt;Configure OTel Collector&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Tenant federation for metadata queries&lt;/strong&gt;:
Users with &lt;a href=&#34;../../manage/secure/authentication-and-authorization/#grafana-mimir-authentication-and-authorization&#34;&gt;tenant federation enabled&lt;/a&gt; could already issue instant queries, range queries, and exemplar queries to multiple tenants at once and receive a single aggregated result. With Grafana Mimir 2.3, we&amp;rsquo;ve added tenant federation support to the &lt;code&gt;/api/v1/metadata&lt;/code&gt; endpoint as well.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Simpler object storage configuration&lt;/strong&gt;:
Users can now configure block, alertmanager, and ruler storage all at once with the &lt;code&gt;common&lt;/code&gt; YAML config option key (or &lt;code&gt;-common.storage.*&lt;/code&gt; CLI flags). By centralizing your object storage configuration in one place, this enhancement makes configuration faster and less error prone. Users may still individually configure storage for each of these components if they desire. For more information, see the &lt;a href=&#34;../../configure/about-configurations/#common-configurations&#34;&gt;Common Configurations&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;.deb and .rpm packages for Mimir&lt;/strong&gt;:
Starting with version 2.3, we&amp;rsquo;re publishing .deb and .rpm files for Grafana Mimir, which will make installing and running it on Debian or RedHat-based linux systems much easier. Thank you to community contributor &lt;a href=&#34;https://github.com/wilfriedroset&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;wilfriedroset&lt;/a&gt; for your work to implement this!&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Import historic data&lt;/strong&gt;:
Users can now backfill time series data from their existing Prometheus or Cortex installation into Mimir using &lt;code&gt;mimirtool&lt;/code&gt;, making it possible to migrate to Grafana Mimir without losing your existing metrics data. This support is still considered experimental and does not yet work for data stored in Thanos. To learn more about this feature, please see &lt;a href=&#34;../../manage/tools/mimirtool/#backfill&#34;&gt;&lt;code&gt;mimirtool backfill&lt;/code&gt;&lt;/a&gt; and &lt;a href=&#34;../../configure/configure-tsdb-block-upload/&#34;&gt;Configure TSDB block upload&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Increased instant query performance&lt;/strong&gt;:
Grafana Mimir now supports splitting instant queries by time. This allows it to better parallelize execution of instant queries and therefore return results faster. At present, splitting is only supported for a subset of instant queries, which means not all instant queries will see a speedup. This feature is currently experimental and is disabled by default. It can be enabled with the &lt;code&gt;split_instant_queries_by_interval&lt;/code&gt; YAML config option in the &lt;code&gt;limits&lt;/code&gt; section (or the CLI flag &lt;code&gt;-query-frontend.split-instant-queries-by-interval&lt;/code&gt;).&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;helm-chart-improvements&#34;&gt;Helm chart improvements&lt;/h3&gt;
&lt;p&gt;The Mimir Helm chart is the best way to install Mimir on Kubernetes. As part of the Mimir 2.3 release, we’re also releasing version 3.1 of the Mimir Helm chart.&lt;/p&gt;
&lt;p&gt;Notable enhancements follow. For the full list of changes, see the &lt;a href=&#34;https://github.com/grafana/mimir/tree/main/operations/helm/charts/mimir-distributed/CHANGELOG.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Helm chart changelog&lt;/a&gt;.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We&amp;rsquo;ve upgraded the MinIO subchart dependency from a &lt;a href=&#34;https://helm.min.io/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;deprecated chart&lt;/a&gt; to the &lt;a href=&#34;https://charts.min.io/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;supported one&lt;/a&gt;. This creates a &lt;strong&gt;breaking change&lt;/strong&gt; in how the administrator password is set. However, as the built-in MinIO is not a recommended object store for production use cases, this change did not warrant a new major version of the Mimir Helm chart.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;../../references/architecture/query-sharding/&#34;&gt;Query sharding&lt;/a&gt; is now enabled by default which should give you better performance on high cardinality metrics queries.
&lt;ul&gt;
&lt;li&gt;To compensate for the increased number of queries generated by query sharding, the &lt;a href=&#34;../../references/architecture/components/query-scheduler/&#34;&gt;query scheduler&lt;/a&gt; component is now enabled by default.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;The backfill API endpoints for importing historic time series data are now exposed on the Nginx gateway.&lt;/li&gt;
&lt;li&gt;Nginx now sets the value of the &lt;code&gt;X-Scope-OrgID&lt;/code&gt; header equal to the value of Mimir&amp;rsquo;s &lt;code&gt;no_auth_tenant&lt;/code&gt; parameter by default. The previous release had set the value of &lt;code&gt;X-Scope-OrgID&lt;/code&gt; to &lt;code&gt;anonymous&lt;/code&gt; by default which &lt;a href=&#34;https://github.com/grafana/mimir/issues/2563&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;complicated the process of migrating to Mimir&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Memberlist now uses DNS service-discovery by default, which decreases startup time for large Mimir clusters.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;important-changes&#34;&gt;Important changes&lt;/h2&gt;
&lt;p&gt;In Grafana Mimir 2.3 we have removed the following previously deprecated configuration options:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The &lt;code&gt;extend_writes&lt;/code&gt; parameter in the distributor YAML configuration and &lt;code&gt;-distributor.extend-writes&lt;/code&gt; CLI flag have been removed.&lt;/li&gt;
&lt;li&gt;The &lt;code&gt;active_series_custom_trackers&lt;/code&gt; parameter has been removed from the YAML configuration. It had already been moved to the runtime configuration. See &lt;a href=&#34;https://github.com/grafana/mimir/pull/1188&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;#1188&lt;/a&gt; for details.&lt;/li&gt;
&lt;li&gt;The &lt;code&gt;blocks-storage.tsdb.isolation-enabled&lt;/code&gt; parameter in the YAML configuration and &lt;code&gt;-blocks-storage.tsdb.isolation-enabled&lt;/code&gt; CLI flag have been removed.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;With Grafana Mimir 2.3 we have also updated the default value for the CLI flag &lt;code&gt;-distributor.ha-tracker.max-clusters&lt;/code&gt; to &lt;code&gt;100&lt;/code&gt; to provide Denial-of-Service protection. Previously &lt;code&gt;-distributor.ha-tracker.max-clusters&lt;/code&gt; was unlimited by default which could allow a tenant with HA Dedupe enabled to overload the HA tracker with &lt;code&gt;__cluster__&lt;/code&gt; label values that could cause the HA Dedupe database to fail.&lt;/p&gt;
&lt;p&gt;Also, as &lt;a href=&#34;#helm-chart-improvements&#34;&gt;noted above&lt;/a&gt;, the administrator password for Helm chart deployments using the built-in MinIO is now set differently.&lt;/p&gt;
&lt;h2 id=&#34;bug-fixes&#34;&gt;Bug fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/grafana/mimir/pull/2447&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;PR 2447&lt;/a&gt;: Fix incorrect mapping of http status codes &lt;code&gt;429&lt;/code&gt; to &lt;code&gt;500&lt;/code&gt; when the request queue is full in the query-frontend. This corrects behavior in the query-frontend where a &lt;em&gt;retryable&lt;/em&gt; &lt;code&gt;429 &amp;quot;Too Many Outstanding Requests&amp;quot;&lt;/code&gt; error from a querier was incorrectly returned as an &lt;em&gt;unretryable&lt;/em&gt; &lt;code&gt;500&lt;/code&gt; system error.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/grafana/mimir/pull/2505&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;PR 2505&lt;/a&gt;: The Memberlist key-value (KV) store now tries to &amp;ldquo;fast-join&amp;rdquo; the cluster to avoid serving an empty KV store. This fix addresses the confusing &amp;ldquo;empty ring&amp;rdquo; error response and the error log message &amp;ldquo;ring doesn&amp;rsquo;t exist in KV store yet&amp;rdquo; emitted by services when there are other members present in the ring when a service starts. Those using other key-value store options (e.g., consul, etcd) are not impacted by this bug.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/grafana/mimir/pull/2289&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;PR 2289&lt;/a&gt;: The &amp;ldquo;List Prometheus rules&amp;rdquo; API endpoint of the Mimir Ruler component is no longer blocked while rules are being synced. This means users can now list rules while syncing larger rule sets.&lt;/li&gt;
&lt;/ul&gt;
]]></content><description>&lt;h1 id="grafana-mimir-version-23-release-notes">Grafana Mimir version 2.3 release notes&lt;/h1>
&lt;p>Grafana Labs is excited to announce version 2.3 of Grafana Mimir, the most scalable, most performant open source time series database in the world.&lt;/p></description></item><item><title>Grafana Mimir version 2.4 release notes</title><link>https://grafana.com/docs/mimir/v3.1.x/release-notes/v2.4/</link><pubDate>Wed, 03 Jun 2026 09:01:40 +0200</pubDate><guid>https://grafana.com/docs/mimir/v3.1.x/release-notes/v2.4/</guid><content><![CDATA[&lt;h1 id=&#34;grafana-mimir-version-24-release-notes&#34;&gt;Grafana Mimir version 2.4 release notes&lt;/h1&gt;
&lt;p&gt;Grafana Labs is excited to announce version 2.4 of Grafana Mimir.&lt;/p&gt;
&lt;p&gt;The highlights that follow include the top features, enhancements, and bugfixes in this release. For the complete list of changes, see the &lt;a href=&#34;https://github.com/grafana/mimir/blob/main/CHANGELOG.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;changelog&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: If you are upgrading from Grafana Mimir 2.3, review the &lt;a href=&#34;#important-changes&#34;&gt;list of important changes&lt;/a&gt; that follow.&lt;/p&gt;
&lt;h2 id=&#34;features-and-enhancements&#34;&gt;Features and enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Query-scheduler ring-based service discovery&lt;/strong&gt;:
The &lt;a href=&#34;../../references/architecture/components/query-scheduler/&#34;&gt;query-scheduler&lt;/a&gt; is an optional, stateless component that retains a queue of queries to execute, and distributes the workload to available queriers. The use the query-scheduler, query-frontends and queriers are required to discover the addresses of the query-scheduler instances.&lt;/p&gt;
&lt;p&gt;In addition to DNS-based service discovery, Mimir 2.4 introduces the ring-based service discovery for the query-scheduler. When enabled, the query-schedulers join their own hash ring (similar to other Mimir components), and the query-frontends and queriers discover query-scheduler instances via the ring.&lt;/p&gt;
&lt;p&gt;Ring-based service discovery makes it easier to set up the query-scheduler in environments where you can&amp;rsquo;t easily define a DNS entry that resolves to the running query-scheduler instances. For more information, refer to &lt;a href=&#34;../../references/architecture/components/query-scheduler/#configuration&#34;&gt;query-scheduler configuration&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;New API endpoint exposes per-tenant limits&lt;/strong&gt;:
Mimir 2.4 introduces a new API endpoint, which is available on all Mimir components that load the runtime configuration. The endpoint exposes the limits of the authenticated tenant. You can use this new API endpoint when developing custom integrations with Mimir that require looking up the actual limits that are applied on a given tenant. For more information, refer to &lt;a href=&#34;../../references/http-api/#get-tenant-limits&#34;&gt;Get tenant limits&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;New TLS configuration options&lt;/strong&gt;:
Mimir 2.4 introduces new options to configure the accepted TLS cipher suites, and the minimum versions for the HTTP and gRPC clients that are used between Mimir components, or by Mimir to communicate to external services such as Consul or etcd.&lt;/p&gt;
&lt;p&gt;You can use these new configuration options to override the default TLS settings and meet your security policy requirements. For more information, refer to &lt;a href=&#34;../../manage/secure/securing-communications-with-tls/&#34;&gt;Securing Grafana Mimir communications with TLS&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Maximum range query length limit&lt;/strong&gt;:
Mimir 2.4 introduces the new configuration option &lt;code&gt;-query-frontend.max-total-query-length&lt;/code&gt; to limit the maximum range query length, which is computed as the query&amp;rsquo;s &lt;code&gt;end&lt;/code&gt; minus &lt;code&gt;start&lt;/code&gt; timestamp. This limit is enforced in the query-frontend and defaults to &lt;code&gt;-store.max-query-length&lt;/code&gt; if unset.&lt;/p&gt;
&lt;p&gt;The new configuration option allows you to set different limits between the received query maximum length (&lt;code&gt;-query-frontend.max-total-query-length&lt;/code&gt;) and the maximum length of partial queries after splitting and sharding (&lt;code&gt;-store.max-query-length&lt;/code&gt;).&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The following experimental features have been promoted to stable:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;../../references/architecture/components/ruler/#remote&#34;&gt;Ruler&amp;rsquo;s remote evaluation mode&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;../../configure/configure-hash-rings/#cluster-label-verification&#34;&gt;Memberlist cluster label verification&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;helm-chart-improvements&#34;&gt;Helm chart improvements&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;mimir-distributed&lt;/code&gt; Helm chart is the best way to install Mimir on Kubernetes. As part of the Mimir 2.4 release, we’re also releasing version 3.2 of the &lt;code&gt;mimir-distributed&lt;/code&gt; Helm chart.&lt;/p&gt;
&lt;p&gt;Notable enhancements follow. For the full list of changes, see the &lt;a href=&#34;https://github.com/grafana/mimir/tree/main/operations/helm/charts/mimir-distributed/CHANGELOG.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Helm chart changelog&lt;/a&gt;.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Added support for &lt;a href=&#34;https://kubernetes.io/docs/concepts/scheduling-eviction/topology-spread-constraints/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;topologySpreadContraints&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Replaced the default anti-affinity rules with topologySpreadContraints for all components which puts less restrictions on where Kubernetes can run pods.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Important&lt;/strong&gt;: if you are not using the sizing plans (small.yaml, large.yaml, capped-small.yaml, capped-large.yaml) in production, you must reintroduce pod affinity rules for the ingester and store-gateway. This also fixes a missing label selector for the ingester.
Merge the following with your custom values file:

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;YAML&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-yaml&#34;&gt;ingester:
  affinity:
    podAntiAffinity:
      requiredDuringSchedulingIgnoredDuringExecution:
        - labelSelector:
            matchExpressions:
              - key: target
                operator: In
                values:
                  - ingester
          topologyKey: &amp;#34;kubernetes.io/hostname&amp;#34;
        - labelSelector:
            matchExpressions:
              - key: app.kubernetes.io/component
                operator: In
                values:
                  - ingester
          topologyKey: &amp;#34;kubernetes.io/hostname&amp;#34;
store_gateway:
  affinity:
    podAntiAffinity:
      requiredDuringSchedulingIgnoredDuringExecution:
        - labelSelector:
            matchExpressions:
              - key: target
                operator: In
                values:
                  - store-gateway
          topologyKey: &amp;#34;kubernetes.io/hostname&amp;#34;
        - labelSelector:
            matchExpressions:
              - key: app.kubernetes.io/component
                operator: In
                values:
                  - store-gateway
          topologyKey: &amp;#34;kubernetes.io/hostname&amp;#34;&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;Updated the anti affinity rules in the sizing plans (small.yaml, large.yaml, capped-small.yaml, capped-large.yaml). The sizing plans now enforce that no two pods of the ingester, store-gateway, or alertmanager StatefulSets are scheduled on the same Node. Pods from different StatefulSets can share a Node.&lt;/li&gt;
&lt;li&gt;Support for Openshift Route resource for nginx has been added.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;important-changes&#34;&gt;Important changes&lt;/h2&gt;
&lt;p&gt;In Grafana Mimir 2.4, the default values of the following configuration options have changed:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;-distributor.remote-timeout&lt;/code&gt; has changed from &lt;code&gt;20s&lt;/code&gt; to &lt;code&gt;2s&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-distributor.forwarding.request-timeout&lt;/code&gt; has changed from &lt;code&gt;10s&lt;/code&gt; to &lt;code&gt;2s&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-blocks-storage.tsdb.head-compaction-concurrency&lt;/code&gt; has changed from &lt;code&gt;5&lt;/code&gt; to &lt;code&gt;1&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;The hash-ring heartbeat period for distributors, ingesters, rulers, and compactors has increased from &lt;code&gt;5s&lt;/code&gt; to &lt;code&gt;15s&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In Grafana Mimir 2.4, the following deprecated configuration options have been removed:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The YAML configuration option &lt;code&gt;limits.active_series_custom_trackers_config&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;The CLI flag &lt;code&gt;-ingester.ring.join-after&lt;/code&gt; and its respective YAML configuration option &lt;code&gt;ingester.ring.join_after&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;The CLI flag &lt;code&gt;-querier.shuffle-sharding-ingesters-lookback-period&lt;/code&gt; and its respective YAML configuration option &lt;code&gt;querier.shuffle_sharding_ingesters_lookback_period&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;With Grafana Mimir 2.4, the &lt;a href=&#34;../../configure/about-anonymous-usage-statistics-reporting/&#34;&gt;anonymous usage statistics tracking&lt;/a&gt; is enabled by default.
Mimir maintainers use this anonymous information to learn more about how the open source community runs Mimir and what the Mimir team should focus on when working on the next features and documentation improvements.
If possible, we ask you to keep the usage reporting feature enabled.
In case you want to opt-out from anonymous usage statistics reporting, refer to &lt;a href=&#34;../../configure/about-anonymous-usage-statistics-reporting/#disable-the-anonymous-usage-statistics-reporting&#34;&gt;Disable the anonymous usage statistics reporting&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;bug-fixes&#34;&gt;Bug fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/grafana/mimir/pull/2979&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;PR 2979&lt;/a&gt;: Fix remote write HTTP response status code returned by Mimir when failing to write only to one ingester (the quorum is still honored when running Mimir with the default replication factor of 3) and some series are not ingested because of validation errors or some limits being reached.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/grafana/mimir/pull/3005&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;PR 3005&lt;/a&gt;: Fix the querier to re-balance its workers connections when a query-frontend or query-scheduler instance is terminated.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/grafana/mimir/pull/2963&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;PR 2963&lt;/a&gt;: Fix the remote read endpoint to correctly support the &lt;code&gt;Accept-Encoding: snappy&lt;/code&gt; HTTP request header.&lt;/li&gt;
&lt;/ul&gt;
]]></content><description>&lt;h1 id="grafana-mimir-version-24-release-notes">Grafana Mimir version 2.4 release notes&lt;/h1>
&lt;p>Grafana Labs is excited to announce version 2.4 of Grafana Mimir.&lt;/p>
&lt;p>The highlights that follow include the top features, enhancements, and bugfixes in this release. For the complete list of changes, see the &lt;a href="https://github.com/grafana/mimir/blob/main/CHANGELOG.md" target="_blank" rel="noopener noreferrer">changelog&lt;/a>.&lt;/p></description></item><item><title>Grafana Mimir version 2.5 release notes</title><link>https://grafana.com/docs/mimir/v3.1.x/release-notes/v2.5/</link><pubDate>Wed, 03 Jun 2026 09:01:40 +0200</pubDate><guid>https://grafana.com/docs/mimir/v3.1.x/release-notes/v2.5/</guid><content><![CDATA[&lt;h1 id=&#34;grafana-mimir-version-25-release-notes&#34;&gt;Grafana Mimir version 2.5 release notes&lt;/h1&gt;
&lt;p&gt;Grafana Labs is excited to announce version 2.5 of Grafana Mimir.&lt;/p&gt;
&lt;p&gt;The highlights that follow include the top features, enhancements, and bugfixes in this release. For the complete list of changes, see the &lt;a href=&#34;https://github.com/grafana/mimir/blob/main/CHANGELOG.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;changelog&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;features-and-enhancements&#34;&gt;Features and enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Alertmanager Discord support&lt;/strong&gt;
Alertmanager can now be configured to send alerts in Discord channels.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Configurable TLS minimum version and cipher suites&lt;/strong&gt;
We added the flags &lt;code&gt;-server.tls-min-version&lt;/code&gt; and &lt;code&gt;-server.tls-cipher-suites&lt;/code&gt; that can be used to define the minimum TLS version and the supported cipher suites in all HTTP and gRPC servers in Mimir.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Lower memory usage in store-gateway, ingester and alertmanager&lt;/strong&gt;
We made various changes related to how index lookups are performed and how the active series custom trackers are implemented, which results in better performance and lower overall memory usage in the store-gateway and ingester.
We also optimized the alertmanager, which results in a 50% reduction in memory usage in use cases with larger numbers of tenants.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Improved Mimir dashboards&lt;/strong&gt;
We added two new dashboards named &lt;code&gt;Mimir / Overview resources&lt;/code&gt; and &lt;code&gt;Mimir / Overview networking&lt;/code&gt;. Furthermore, we have made various improvements to the following existing dashboards:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Mimir / Overview&lt;/code&gt;: Add &amp;ldquo;remote read&amp;rdquo;, &amp;ldquo;metadata&amp;rdquo;, and &amp;ldquo;exemplar&amp;rdquo; queries.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Mimir / Writes&lt;/code&gt;: Add optional row about the distributor&amp;rsquo;s new forwarding feature.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Mimir / Tenants&lt;/code&gt;: Add insights into the read path.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;helm-chart-improvements&#34;&gt;Helm chart improvements&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Zone aware replication&lt;/strong&gt;
Helm now supports deploying the ingesters and store-gateways as different availability zones. The replication is also zone-aware, therefore multiple instances of one zone can fail without any service interruption and roll outs can be performed faster because many instances of each zone can be restarted together, as opposed to them all restarting in sequence.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;This is a breaking change&lt;/strong&gt;, &lt;a href=&#34;https://github.com/grafana/mimir/blob/main/operations/helm/charts/mimir-distributed/CHANGELOG.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;for details on how to upgrade please review the Helm changelog&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Running without root privileges&lt;/strong&gt;
All Mimir, GEM and Agent processes now don&amp;rsquo;t require root privileges to run anymore.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Unified reverse proxy (&lt;code&gt;gateway&lt;/code&gt;) configuration for Mimir and GEM&lt;/strong&gt;
This change allows for an easier upgrade path from Mimir to GEM, without any downtime. The unified configuration also makes it possible to autoscale the GEM gateway pods and it supports OpenShift Route. The change also deprecates the &lt;code&gt;nginx&lt;/code&gt; section in the configuration. The section will be removed in release &lt;code&gt;7.0.0&lt;/code&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Updated MinIO&lt;/strong&gt;
The MinIO sub-chart was updated from &lt;code&gt;4.x&lt;/code&gt; to &lt;code&gt;5.0.0&lt;/code&gt;, note that this update &lt;strong&gt;inherits a breaking change&lt;/strong&gt; because the MinIO gateway mode was removed.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Updated sizing plans&lt;/strong&gt;
We updated our sizing plans to make them reflect better how we recommend running Mimir and GEM in production. Note that this includes a &lt;strong&gt;breaking change&lt;/strong&gt; for users of the &amp;ldquo;small&amp;rdquo; plan, more details can be found in the &lt;a href=&#34;https://github.com/grafana/mimir/blob/main/operations/helm/charts/mimir-distributed/CHANGELOG.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Helm changelog&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Various quality of life improvements&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Rollout strategies without downtime&lt;/li&gt;
&lt;li&gt;Read path and compactor configuration refresh, providing better default settings&lt;/li&gt;
&lt;li&gt;OTLP ingestion support in the Nginx configuration&lt;/li&gt;
&lt;li&gt;A default configuration for alertmanager, so the user interface and the sending of alerts from the ruler works out of the box&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;bug-fixes&#34;&gt;Bug fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Flusher: Added &lt;code&gt;Overrides&lt;/code&gt; as a dependency to prevent panics when starting with &lt;code&gt;-target=flusher&lt;/code&gt;. &lt;a href=&#34;https://github.com/grafana/mimir/pull/3151&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;PR 3151&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Query-frontend: properly close gRPC streams to the query-scheduler to stop memory and goroutines leak. &lt;a href=&#34;https://github.com/grafana/mimir/pull/3302&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;PR 3302&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Ruler: persist evaluation delay configured in the rulegroup. &lt;a href=&#34;https://github.com/grafana/mimir/pull/3392&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;PR 3392&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Fix panics in OTLP ingest path when parse errors occur. &lt;a href=&#34;https://github.com/grafana/mimir/pull/3538&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;PR 3538&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
]]></content><description>&lt;h1 id="grafana-mimir-version-25-release-notes">Grafana Mimir version 2.5 release notes&lt;/h1>
&lt;p>Grafana Labs is excited to announce version 2.5 of Grafana Mimir.&lt;/p>
&lt;p>The highlights that follow include the top features, enhancements, and bugfixes in this release. For the complete list of changes, see the &lt;a href="https://github.com/grafana/mimir/blob/main/CHANGELOG.md" target="_blank" rel="noopener noreferrer">changelog&lt;/a>.&lt;/p></description></item><item><title>Grafana Mimir version 2.6 release notes</title><link>https://grafana.com/docs/mimir/v3.1.x/release-notes/v2.6/</link><pubDate>Wed, 03 Jun 2026 09:01:40 +0200</pubDate><guid>https://grafana.com/docs/mimir/v3.1.x/release-notes/v2.6/</guid><content><![CDATA[&lt;h1 id=&#34;grafana-mimir-version-26-release-notes&#34;&gt;Grafana Mimir version 2.6 release notes&lt;/h1&gt;
&lt;p&gt;Grafana Labs is excited to announce version 2.6 of Grafana Mimir.&lt;/p&gt;
&lt;p&gt;The highlights that follow include the top features, enhancements, and bugfixes in this release. For the complete list of changes, see the &lt;a href=&#34;https://github.com/grafana/mimir/blob/main/CHANGELOG.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;changelog&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;features-and-enhancements&#34;&gt;Features and enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Lower memory usage in store-gateway by streaming series results&lt;/strong&gt;
The store-gateway can now stream results back to the querier instead of buffering them. This is expected to greatly reduce peak memory consumption while keeping latency the same. This is still an &lt;strong&gt;experimental feature&lt;/strong&gt; but Grafana Labs is already running it in production and there&amp;rsquo;s no known issue. This feature can be enabled setting the &lt;code&gt;-blocks-storage.bucket-store.batch-series-size&lt;/code&gt; configuration option (if you want to try it out, we recommend you setting to 5000).&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Improved stability in store-gateway by removing mmap usage&lt;/strong&gt;
The store-gateway can now use an alternate code path to read index-headers that does not use memory mapped files. This is expected to improve stability of the store-gateway. This is still an &lt;strong&gt;experimental feature&lt;/strong&gt; but Grafana Labs is already running it in production and there&amp;rsquo;s no known issue. This feature can be enabled setting &lt;code&gt;-blocks-storage.bucket-store.index-header.stream-reader-enabled=true&lt;/code&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;alertmanager-improvements&#34;&gt;Alertmanager improvements&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Webex support&lt;/strong&gt; Alertmanager can now use Webex to send alerts.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;tenantID template function&lt;/strong&gt; A new template function &lt;code&gt;tenantID&lt;/code&gt;, returning the ID of the tenant owning the alert, has been added.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;grafanaExploreURL template function&lt;/strong&gt; A new template function &lt;code&gt;grafanaExploreURL&lt;/code&gt;, returning the URL to the Grafana explore page with range query, has been added.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;helm-chart-improvements&#34;&gt;Helm chart improvements&lt;/h3&gt;
&lt;p&gt;The Grafana Mimir and Grafana Enterprise Metrics Helm chart is now released independently. See the &lt;a href=&#34;/docs/helm-charts/mimir-distributed/latest/&#34;&gt;corresponding documentation&lt;/a&gt; for more information.&lt;/p&gt;
&lt;h2 id=&#34;important-changes&#34;&gt;Important changes&lt;/h2&gt;
&lt;p&gt;In Grafana Mimir 2.6 we have removed the following previously deprecated or experimental configuration options:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The CLI flag &lt;code&gt;-blocks-storage.bucket-store.max-concurrent-reject-over-limit&lt;/code&gt; and its respective YAML configuration option &lt;code&gt;blocks_storage.bucket_store.max_concurrent_reject_over_limit&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;The CLI flag &lt;code&gt;-query-frontend.align-querier-with-step&lt;/code&gt; and its respective YAML configuration option &lt;code&gt;frontend.align_querier_with_step&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The following configuration options are deprecated and will be removed in Grafana Mimir 2.8:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The CLI flag &lt;code&gt;-store.max-query-length&lt;/code&gt; and its respective YAML configuration option &lt;code&gt;limits.max_query_length&lt;/code&gt; have been replaced with &lt;code&gt;-querier.max-partial-query-length&lt;/code&gt; and &lt;code&gt;limits.max_partial_query_length&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The following experimental options and features are now stable:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The CLI flag &lt;code&gt;-query-frontend.max-total-query-length&lt;/code&gt; and its respective YAML configuration option &lt;code&gt;limits.max_total_query_length&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;The CLI flags &lt;code&gt;-distributor.request-rate-limit&lt;/code&gt; and &lt;code&gt;-distributor.request-burst-limit&lt;/code&gt; and their respective YAML configuration options &lt;code&gt;limits.request_rate_limit&lt;/code&gt; and &lt;code&gt;limits.request_rate_burst&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;The CLI flag &lt;code&gt;-ingester.max-global-exemplars-per-user&lt;/code&gt; and its respective YAML configuration option &lt;code&gt;limits.max_global_exemplars_per_user&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;The CLI flag &lt;code&gt;-ingester.tsdb-config-update-period&lt;/code&gt; its respective YAML configuration option &lt;code&gt;ingester.tsdb_config_update_period&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;The API endpoint &lt;code&gt;/api/v1/query_exemplars&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;bug-fixes&#34;&gt;Bug fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Alertmanager: Fix template spurious deletion with relative data dir. &lt;a href=&#34;https://github.com/grafana/mimir/pull/3604&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;PR 3604&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Security: Update prometheus/exporter-toolkit for CVE-2022-46146. &lt;a href=&#34;https://github.com/grafana/mimir/pull/3675&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;PR 3675&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Security: Update golang.org/x/net for CVE-2022-41717. &lt;a href=&#34;https://github.com/grafana/mimir/pull/3755&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;PR 3755&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Debian package: Fix post-install, environment file path and user creation. &lt;a href=&#34;https://github.com/grafana/mimir/pull/3720&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;PR 3720&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Memberlist: Fix panic during Mimir startup when Mimir receives gossip message before it&amp;rsquo;s ready. &lt;a href=&#34;https://github.com/grafana/mimir/pull/3746&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;PR 3746&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Update &lt;code&gt;github.com/thanos-io/objstore&lt;/code&gt; to address issue with Multipart PUT on s3-compatible Object Storage. &lt;a href=&#34;https://github.com/grafana/mimir/pull/3802&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;PR 3802&lt;/a&gt; &lt;a href=&#34;https://github.com/grafana/mimir/pull/3821&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;PR 3821&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Querier: Canceled requests are no longer reported as &amp;ldquo;consistency check&amp;rdquo; failures. &lt;a href=&#34;https://github.com/grafana/mimir/pull/3837&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;PR 3837&lt;/a&gt; &lt;a href=&#34;https://github.com/grafana/mimir/pull/3927&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;PR 3927&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Distributor: Don&amp;rsquo;t panic when &lt;code&gt;metric_relabel_configs&lt;/code&gt; in overrides contains null element. &lt;a href=&#34;https://github.com/grafana/mimir/pull/3868&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;PR 3868&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Ingester, Compactor: Fix panic that can occur when compaction fails. &lt;a href=&#34;https://github.com/grafana/mimir/pull/3955&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;PR 3955&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;261&#34;&gt;2.6.1&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Security: updated the Go version to 1.20.3 to fix CVE-2023-24538. &lt;a href=&#34;https://github.com/grafana/mimir/pull/4798&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;PR 4798&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;262&#34;&gt;2.6.2&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Security: updated Go to version 1.20.4 to fix CVE-2023-24539, CVE-2023-24540, CVE-2023-29400. &lt;a href=&#34;https://github.com/grafana/mimir/pull/4903&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;PR 4903&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
]]></content><description>&lt;h1 id="grafana-mimir-version-26-release-notes">Grafana Mimir version 2.6 release notes&lt;/h1>
&lt;p>Grafana Labs is excited to announce version 2.6 of Grafana Mimir.&lt;/p>
&lt;p>The highlights that follow include the top features, enhancements, and bugfixes in this release. For the complete list of changes, see the &lt;a href="https://github.com/grafana/mimir/blob/main/CHANGELOG.md" target="_blank" rel="noopener noreferrer">changelog&lt;/a>.&lt;/p></description></item><item><title>Grafana Mimir version 2.7 release notes</title><link>https://grafana.com/docs/mimir/v3.1.x/release-notes/v2.7/</link><pubDate>Wed, 03 Jun 2026 09:01:40 +0200</pubDate><guid>https://grafana.com/docs/mimir/v3.1.x/release-notes/v2.7/</guid><content><![CDATA[&lt;h1 id=&#34;grafana-mimir-version-27-release-notes&#34;&gt;Grafana Mimir version 2.7 release notes&lt;/h1&gt;
&lt;p&gt;Grafana Labs is excited to announce version 2.7 of Grafana Mimir.&lt;/p&gt;
&lt;p&gt;The highlights that follow include the top features, enhancements, and bugfixes in this release. For the complete list of changes, see the &lt;a href=&#34;https://github.com/grafana/mimir/blob/main/CHANGELOG.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;changelog&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;features-and-enhancements&#34;&gt;Features and enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Store-gateway streaming enabled by default&lt;/strong&gt; The new default value of &lt;code&gt;5000&lt;/code&gt; for &lt;code&gt;-blocks-storage.bucket-store.batch-series-size&lt;/code&gt; enables store-gateway streaming in the default configuration. This means that series are loaded from object storage in batches rather than buffering them all in memory before returning to the querier. Enabling streaming can reduce memory utilization peaks in the store-gateway.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Store-gateway index header reader no longer uses mmap by default&lt;/strong&gt; Along with streaming enabled in the store-gateway, this change contributes to more efficient memory usage. See the &lt;strong&gt;Important changes&lt;/strong&gt; section for more details.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Support for &lt;code&gt;keep_firing_for&lt;/code&gt; option to ruler configuration&lt;/strong&gt; This new option determines the amount of time an alert should keep firing while the ruler expression doesn&amp;rsquo;t return results.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;More efficient chunks fetching and caching&lt;/strong&gt; Enable with the new experimental feature flag &lt;code&gt;-blocks-storage.bucket-store.chunks-cache.fine-grained-chunks-caching-enabled=true&lt;/code&gt;. This should reduce CPU, memory utilization, and receive bandwidth of a store-gateway.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Experimental query sharding improvements&lt;/strong&gt;:
A new configuration parameter, &lt;code&gt;-query-frontend.query-sharding-target-series-per-shard&lt;/code&gt;, allows query sharding to take into account cardinality of similar requests executed previously when computing the maximum number of shards to use. If you want to try it out, we recommend starting with a value of &lt;code&gt;2500&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Experimental support for native histogram ingestion&lt;/strong&gt;:
Native histograms can now be ingested. The new per-tenant limit &lt;code&gt;-ingester.native-histograms-ingestion-enabled&lt;/code&gt; controls whether native histograms are stored or ignored. The support for querying native histograms is not complete yet and it&amp;rsquo;s expected to be available in the next release.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;alertmanager-improvements&#34;&gt;Alertmanager improvements&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;New metrics&lt;/strong&gt; The following upstream metrics are now exposed:
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;cortex_alertmanager_dispatcher_aggregation_groups&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;cortex_alertmanager_dispatcher_alert_processing_duration_seconds&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;helm-chart-improvements&#34;&gt;Helm chart improvements&lt;/h3&gt;
&lt;p&gt;The Grafana Mimir and Grafana Enterprise Metrics Helm chart is now released independently. See the &lt;a href=&#34;/docs/helm-charts/mimir-distributed/latest/&#34;&gt;Grafana Mimir Helm chart documentation&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;important-changes&#34;&gt;Important changes&lt;/h2&gt;
&lt;p&gt;In Grafana Mimir 2.7, the default vaules of the following configuration options have changed:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;-blocks-storage.bucket-store.batch-series-size&lt;/code&gt; is now enabled by default with a value of &lt;code&gt;5000&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-ruler.evaluation-delay-duration&lt;/code&gt; has changed from &lt;code&gt;0&lt;/code&gt; to &lt;code&gt;1m&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In Grafana Mimir 2.7, the following configuration options are now deprecated:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;-blocks-storage.bucket-store.chunks-cache.subrange-size&lt;/code&gt; since there&amp;rsquo;s no benefit to changing the default of &lt;code&gt;16000&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-blocks-storage.bucket-store.consistency-delay&lt;/code&gt; has been deprecated and will be removed in Mimir 2.9.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-compactor.consistency-delay&lt;/code&gt; has been deprecated and will be removed in Mimir 2.9.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-ingester.ring.readiness-check-ring-health&lt;/code&gt; has been deprecated and will be removed in Mimir 2.9.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In Grafana Mimir 2.7, the following options, metrics, and labels have been removed:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Experimental support for ephemeral storage introduced in Mimir 2.6.0 has been removed.
&lt;ul&gt;
&lt;li&gt;Following options are no longer available:
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;-blocks-storage.ephemeral-tsdb.*&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-distributor.ephemeral-series-enabled&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-distributor.ephemeral-series-matchers&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-ingester.max-ephemeral-series-per-user&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-ingester.instance-limits.max-ephemeral-series&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;The following metrics have been removed:
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;cortex_ingester_ephemeral_series&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;cortex_ingester_ephemeral_series_created_total&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;cortex_ingester_ephemeral_series_removed_total&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;cortex_ingester_ingested_ephemeral_samples_total&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;cortex_ingester_ingested_ephemeral_samples_failures_total&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;cortex_ingester_memory_ephemeral_users&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;cortex_ingester_queries_ephemeral_total&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;cortex_ingester_queried_ephemeral_samples&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;cortex_ingester_queried_ephemeral_series&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Additionally, querying using the &lt;code&gt;{__mimir_storage__=&amp;quot;ephemeral&amp;quot;}&lt;/code&gt; selector no longer works. All label values with the &lt;code&gt;ephemeral-&lt;/code&gt; prefix within the &lt;code&gt;reason&lt;/code&gt; label of the &lt;code&gt;cortex_discarded_samples_total&lt;/code&gt; metric are no longer available.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;The store-gateway default index header reader no longer uses mmap and the mmap-based index header reader has been removed. The following flags have been changed:
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;-blocks-storage.bucket-store.index-header.map-populate-enabled&lt;/code&gt; has been removed&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-blocks-storage.bucket-store.index-header.stream-reader-enabled&lt;/code&gt; has been removed&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-blocks-storage.bucket-store.index-header.stream-reader-max-idle-file-handles&lt;/code&gt; has been renamed to &lt;code&gt;-blocks-storage.bucket-store.index-header.max-idle-file-handles&lt;/code&gt;, and the corresponding configuration file option has been renamed from &lt;code&gt;stream_reader_max_idle_file_handles&lt;/code&gt; to &lt;code&gt;max_idle_file_handles&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;bug-fixes&#34;&gt;Bug fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Store-gateway: return Canceled rather than Aborted or Internal error when the calling querier cancels a label names or values request, and return Internal if processing the request fails for another reason. &lt;a href=&#34;https://github.com/grafana/mimir/pull/4061&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;PR 4061&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Querier: track canceled requests with status code 499 in the metrics instead of 503 or 422. &lt;a href=&#34;https://github.com/grafana/mimir/pull/4099&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;PR 4099&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Ingester: compact out-of-order data during /ingester/flush or when TSDB is idle. &lt;a href=&#34;https://github.com/grafana/mimir/pull/4180&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;PR 4180&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Ingester: conversion of global limits max-series-per-user, max-series-per-metric, max-metadata-per-user and max-metadata-per-metric into corresponding local limits now takes into account the number of ingesters in each zone. &lt;a href=&#34;https://github.com/grafana/mimir/pull/4238&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;PR 4238&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Ingester: track cortex_ingester_memory_series metric consistently with cortex_ingester_memory_series_created_total and cortex_ingester_memory_series_removed_total. &lt;a href=&#34;https://github.com/grafana/mimir/pull/4312&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;PR 4312&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Querier: fixed a bug which was incorrectly matching series with regular expression label matchers with begin/end anchors in the middle of the regular expression. &lt;a href=&#34;https://github.com/grafana/mimir/pull/4340&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;PR 4340&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Security: updated the Go version to 1.20.3 to fix CVE-2023-24538. &lt;a href=&#34;https://github.com/grafana/mimir/pull/4795&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;PR 4795&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Security: updated the Go version to 1.20.4 to fix CVE-2023-24539, CVE-2023-24540, CVE-2023-29400. &lt;a href=&#34;https://github.com/grafana/mimir/pull/4905&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;PR 4905&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
]]></content><description>&lt;h1 id="grafana-mimir-version-27-release-notes">Grafana Mimir version 2.7 release notes&lt;/h1>
&lt;p>Grafana Labs is excited to announce version 2.7 of Grafana Mimir.&lt;/p>
&lt;p>The highlights that follow include the top features, enhancements, and bugfixes in this release. For the complete list of changes, see the &lt;a href="https://github.com/grafana/mimir/blob/main/CHANGELOG.md" target="_blank" rel="noopener noreferrer">changelog&lt;/a>.&lt;/p></description></item><item><title>Grafana Mimir version 2.8 release notes</title><link>https://grafana.com/docs/mimir/v3.1.x/release-notes/v2.8/</link><pubDate>Wed, 03 Jun 2026 09:01:40 +0200</pubDate><guid>https://grafana.com/docs/mimir/v3.1.x/release-notes/v2.8/</guid><content><![CDATA[&lt;h1 id=&#34;grafana-mimir-version-28-release-notes&#34;&gt;Grafana Mimir version 2.8 release notes&lt;/h1&gt;
&lt;p&gt;Grafana Labs is excited to announce version 2.8 of Grafana Mimir.&lt;/p&gt;
&lt;p&gt;The highlights that follow include the top features, enhancements, and bugfixes in this release. For the complete list of changes, see the &lt;a href=&#34;https://github.com/grafana/mimir/blob/main/CHANGELOG.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;changelog&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;features-and-enhancements&#34;&gt;Features and enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Experimental support for using Redis as cache&lt;/strong&gt; Mimir now can use Redis for caching results, chunks, index and metadata.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Experimental support for fetching secret from Vault for TLS configuration&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Experimental support for querying native histograms&lt;/strong&gt;. This support is not finalized as the related Prometheus API is also experimental, thus the exact behavior might change in future releases.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Query-frontend and ruler now use protobuf internal query result payload format by default&lt;/strong&gt; This reduces the CPU and memory utilisation of the querier, query-frontend and ruler, as well as reducing network bandwidth consumed between these components.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Query-frontend cached results now contain timestamp&lt;/strong&gt; This allows Mimir to check if cached results are still valid based on current TTL configured for tenant. Results cached by previous Mimir version are used until they expire from cache, which can take up to 7 days. If you need to use per-tenant TTL sooner, please flush results cache manually.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Optimized regular expression label matchers&lt;/strong&gt; This reduces CPU utilisation in ingesters and store-gateways when running queries containing regular expression label matchers.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Store-gateway now use streaming for LabelNames RPC&lt;/strong&gt; This improves memory utilization in store-gateway when calling LabelNames RPC.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;helm-chart-improvements&#34;&gt;Helm chart improvements&lt;/h3&gt;
&lt;p&gt;The Grafana Mimir and Grafana Enterprise Metrics Helm chart is now released independently. See the &lt;a href=&#34;/docs/helm-charts/mimir-distributed/latest/&#34;&gt;Grafana Mimir Helm chart documentation&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;important-changes&#34;&gt;Important changes&lt;/h2&gt;
&lt;p&gt;In Grafana Mimir 2.8 we have removed the following previously deprecated or experimental metrics:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;cortex_bucket_store_series_get_all_duration_seconds&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;cortex_bucket_store_series_merge_duration_seconds&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;cortex_ingester_tsdb_wal_replay_duration_seconds&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The following configuration options are deprecated and will be removed in Grafana Mimir 2.10:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The CLI flag &lt;code&gt;-blocks-storage.tsdb.max-tsdb-opening-concurrency-on-startup&lt;/code&gt; and its respective YAML configuration option &lt;code&gt;tsdb.max_tsdb_opening_concurrency_on_startup&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The following configuration options that were deprecated in 2.6 are removed:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The CLI flag &lt;code&gt;-store.max-query-length&lt;/code&gt; and its respective YAML configuration option &lt;code&gt;limits.max_query_length&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The following configuration options that were deprecated in 2.5 are removed:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The CLI flag &lt;code&gt;-azure.msi-resource&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The following experimental options and features are now stable:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The protobuf internal query result payload format, which is now enabled by default&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;We changed default value of block storage retention period. The default value for &lt;code&gt;-blocks-storage.tsdb.retention-period&lt;/code&gt; was &lt;code&gt;24h&lt;/code&gt; and now is &lt;code&gt;13h&lt;/code&gt;&lt;/p&gt;
&lt;h2 id=&#34;bug-fixes&#34;&gt;Bug fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Querier: Streaming remote read will now continue to return multiple chunks per frame after the first frame. &lt;a href=&#34;https://github.com/grafana/mimir/pull/4423&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;PR 4423&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Query-frontend: don&amp;rsquo;t retry queries which error inside PromQL. &lt;a href=&#34;https://github.com/grafana/mimir/pull/4643&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;PR 4643&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Store-gateway &amp;amp; query-frontend: report more consistent statistics for fetched index bytes. &lt;a href=&#34;https://github.com/grafana/mimir/pull/4671&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;PR 4671&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
]]></content><description>&lt;h1 id="grafana-mimir-version-28-release-notes">Grafana Mimir version 2.8 release notes&lt;/h1>
&lt;p>Grafana Labs is excited to announce version 2.8 of Grafana Mimir.&lt;/p>
&lt;p>The highlights that follow include the top features, enhancements, and bugfixes in this release. For the complete list of changes, see the &lt;a href="https://github.com/grafana/mimir/blob/main/CHANGELOG.md" target="_blank" rel="noopener noreferrer">changelog&lt;/a>.&lt;/p></description></item><item><title>Grafana Mimir version 2.9 release notes</title><link>https://grafana.com/docs/mimir/v3.1.x/release-notes/v2.9/</link><pubDate>Wed, 03 Jun 2026 09:01:40 +0200</pubDate><guid>https://grafana.com/docs/mimir/v3.1.x/release-notes/v2.9/</guid><content><![CDATA[&lt;h1 id=&#34;grafana-mimir-version-29-release-notes&#34;&gt;Grafana Mimir version 2.9 release notes&lt;/h1&gt;
&lt;p&gt;Grafana Labs is excited to announce version 2.9 of Grafana Mimir.&lt;/p&gt;
&lt;p&gt;The highlights that follow include the top features, enhancements, and bugfixes in this release. For the complete list of changes, see the &lt;a href=&#34;https://github.com/grafana/mimir/blob/main/CHANGELOG.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;changelog&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;features-and-enhancements&#34;&gt;Features and enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Reduced store-gateway memory utilization on fetching series from long-term storage&lt;/strong&gt; For queries that include broad label matchers (e.g. &lt;code&gt;datacenter=&amp;quot;dc1&amp;quot;&lt;/code&gt;), Mimir 2.9 will fetch a reduced volume of index data, which leads to a significant reduction in memory allocations in the store-gateway.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Reduced CPU utilisation for some shuffle sharding scenarios&lt;/strong&gt; Mimir queriers will now use significantly less CPU in cases where shuffle sharding is enabled for tenants with a shard size that&amp;rsquo;s large but lower than the total number of ingesters.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Reduced object storage API calls in compactors and rulers&lt;/strong&gt; Mimir 2.9 comes with optimizations that will reduce the amount of times compactors and rulers need to access rules stored in object storage.
&lt;ul&gt;
&lt;li&gt;This release adds experimental support for a ruler storage cache. This cache should reduce the number of &amp;ldquo;list objects&amp;rdquo; API calls issued to the object storage when there are 2&#43; ruler replicas running in a Mimir cluster. The cache can be configured by setting the &lt;code&gt;-ruler-storage.cache.*&lt;/code&gt; CLI flags or their respective YAML config options.&lt;/li&gt;
&lt;li&gt;We also introduced a new feature to trigger a synchronization of tenant&amp;rsquo;s rule groups as soon as changes to the rule configuration are made via API. This synchronization is in addition of the periodic syncing done every &lt;code&gt;-ruler.poll-interval&lt;/code&gt;, which has then been relaxed from every &lt;code&gt;1m&lt;/code&gt; to every &lt;code&gt;10m&lt;/code&gt;. The new behaviour is enabled globally by default but can be disabled with &lt;code&gt;-ruler.sync-rules-on-changes-enabled=false&lt;/code&gt; or tuned at a per-tenant level.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Experimental support for streaming chunks from ingester to querier&lt;/strong&gt; This is expected to greatly reduce querier memory consumption when evaluating queries that select a large number of series, because chunks streamed from the querier can now be read into memory as needed.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;helm-chart-improvements&#34;&gt;Helm chart improvements&lt;/h3&gt;
&lt;p&gt;The Grafana Mimir and Grafana Enterprise Metrics Helm chart is now released independently. See the &lt;a href=&#34;/docs/helm-charts/mimir-distributed/latest/&#34;&gt;Grafana Mimir Helm chart documentation&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;important-changes&#34;&gt;Important changes&lt;/h2&gt;
&lt;p&gt;In Grafana Mimir 2.9 we have removed the following previously deprecated or experimental metrics:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;cortex_bucket_store_chunk_pool_requested_bytes_total&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;cortex_bucket_store_chunk_pool_returned_bytes_total&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The following configuration options are deprecated and will be removed in Grafana Mimir 2.11:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The CLI flag &lt;code&gt;-querier.query-ingesters-within&lt;/code&gt;. This configuration is moved to per-tenant overrides.&lt;/li&gt;
&lt;li&gt;The CLI flag &lt;code&gt;-blocks-storage.bucket-store.bucket-index.enabled&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;The CLI flags &lt;code&gt;-blocks-storage.bucket-store.chunk-pool-min-bucket-size-bytes&lt;/code&gt;, &lt;code&gt;-blocks-storage.bucket-store.chunk-pool-max-bucket-size-bytes&lt;/code&gt; and &lt;code&gt;-blocks-storage.bucket-store.max-chunk-pool-bytes&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;The CLI flags &lt;code&gt;-querier.iterators&lt;/code&gt; and &lt;code&gt;-query.batch-iterators&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The following configuration options that were deprecated in 2.7 are removed:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The CLI flag &lt;code&gt;-blocks-storage.bucket-store.chunks-cache.subrange-size&lt;/code&gt;. A fixed value of 16000 is now always used.&lt;/li&gt;
&lt;li&gt;The CLI flag &lt;code&gt;-blocks-storage.bucket-store.consistency-delay&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;The CLI flag &lt;code&gt;-compactor.consistency-delay&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;The CLI flag &lt;code&gt;-ingester.ring.readiness-check-ring-health&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The following experimental options and features are now stable:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The CLI flag &lt;code&gt;-query-frontend.query-sharding-max-regexp-size-bytes&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;The CLI flag &lt;code&gt;-query-scheduler.max-used-instances&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;The CLI flags &lt;code&gt;-(alertmanager|blocks|ruler)-storage.storage-prefix&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;The CLI flag &lt;code&gt;-compactor.first-level-compaction-wait-period&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;The CLI flags &lt;code&gt;-usage-stats.enabled&lt;/code&gt; and &lt;code&gt;-usage-stats.installation-mode&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;The CLI flag &lt;code&gt;-query-frontend.query-sharding-target-series-per-shard&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The following configuration option defaults were changed:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The default value for the CLI flag &lt;code&gt;-query-frontend.query-sharding-max-regexp-size-bytes&lt;/code&gt; was changed from &lt;code&gt;0&lt;/code&gt; to &lt;code&gt;4096&lt;/code&gt;. As a result, queries with regex matchers exceeding this limit will not be sharded by default.&lt;/li&gt;
&lt;li&gt;The default value for the CLI flag &lt;code&gt;-compactor.partial-block-deletion-delay&lt;/code&gt; was changed from &lt;code&gt;0s&lt;/code&gt; to &lt;code&gt;1d&lt;/code&gt;. As a result, partial blocks resulting from a failed block upload or deletion will be cleaned up automatically.&lt;/li&gt;
&lt;li&gt;The default value for the CLI flag &lt;code&gt;-ruler.poll-interval&lt;/code&gt; was changed from &lt;code&gt;1m&lt;/code&gt; to &lt;code&gt;10m&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;bug-fixes&#34;&gt;Bug fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Store-gateway: Detect collisions in the postings cache. &lt;a href=&#34;https://github.com/grafana/mimir/pull/4770&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;PR 4770&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Store-gateway: Fix panic caused by cached LabelValues responses with more than 655360 values. &lt;a href=&#34;https://github.com/grafana/mimir/pull/5021&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;PR 5021&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;294&#34;&gt;2.9.4&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Security: updated the Alpine base image version to 3.18.5 to address &lt;a href=&#34;https://nvd.nist.gov/vuln/detail/CVE-2023-5363&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;CVE-2023-5363&lt;/a&gt;. &lt;a href=&#34;https://github.com/grafana/mimir/pull/6895&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;PR 6895&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
]]></content><description>&lt;h1 id="grafana-mimir-version-29-release-notes">Grafana Mimir version 2.9 release notes&lt;/h1>
&lt;p>Grafana Labs is excited to announce version 2.9 of Grafana Mimir.&lt;/p>
&lt;p>The highlights that follow include the top features, enhancements, and bugfixes in this release. For the complete list of changes, see the &lt;a href="https://github.com/grafana/mimir/blob/main/CHANGELOG.md" target="_blank" rel="noopener noreferrer">changelog&lt;/a>.&lt;/p></description></item><item><title>Grafana Mimir version 2.10 release notes</title><link>https://grafana.com/docs/mimir/v3.1.x/release-notes/v2.10/</link><pubDate>Wed, 03 Jun 2026 09:01:40 +0200</pubDate><guid>https://grafana.com/docs/mimir/v3.1.x/release-notes/v2.10/</guid><content><![CDATA[&lt;h1 id=&#34;grafana-mimir-version-210-release-notes&#34;&gt;Grafana Mimir version 2.10 release notes&lt;/h1&gt;
&lt;p&gt;Grafana Labs is excited to announce version 2.10 of Grafana Mimir.&lt;/p&gt;
&lt;p&gt;The highlights that follow include the top features, enhancements, and bugfixes in this release. For the complete list of changes, see the &lt;a href=&#34;https://github.com/grafana/mimir/blob/main/CHANGELOG.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;changelog&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;features-and-enhancements&#34;&gt;Features and enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Added support for rule filtering&lt;/strong&gt; by passing &lt;code&gt;file&lt;/code&gt;, &lt;code&gt;ruler_group&lt;/code&gt; and &lt;code&gt;rule_name&lt;/code&gt; parameters to the ruler endpoint &lt;code&gt;/api/v1/rules&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Added support to only count series that are considered &lt;em&gt;active&lt;/em&gt;&lt;/strong&gt; through the Cardinality API endpoint &lt;code&gt;/api/v1/cardinality/label_values&lt;/code&gt; by passing the &lt;code&gt;count_method&lt;/code&gt; parameter. You can set it to &lt;code&gt;active&lt;/code&gt; to count only series that are considered &lt;em&gt;active&lt;/em&gt; according to the &lt;code&gt;-ingester.active-series-metrics-idle-timeout&lt;/code&gt; flag setting rather than counting all in-memory series.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Reduced the overall memory consumption&lt;/strong&gt; by changing the internal data structure for labels. Expect ingesters to use around 15% less memory with this change, depending on the pattern of labels used, number of tenants, etc.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Reduced the memory usage of the Active Series Tracker&lt;/strong&gt; in the ingester.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Added a buffered logging implementation&lt;/strong&gt; that can be enabled through the &lt;code&gt;-log.buffered&lt;/code&gt; CLI flag. This should reduce contention and resource usage under heavy usage patterns.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Improved the performance of the OTLP ingestion&lt;/strong&gt; and more detailed information was added to the traces in order to make troubleshooting problems easier.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Improved the performance of series matching in the store-gateway&lt;/strong&gt; by always including the &lt;code&gt;__name__&lt;/code&gt; posting group causing a reduction in the number of object storage API calls.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Improved the performance of &lt;em&gt;label values with matchers&lt;/em&gt;&lt;/strong&gt; calls when number of matched series is small. If you&amp;rsquo;re using Grafana to query Grafana Mimir, you&amp;rsquo;ll need to be sure your &lt;a href=&#34;/docs/grafana/latest/datasources/prometheus/configure-prometheus-data-source/#performance&#34;&gt;Prometheus data source configuration&lt;/a&gt; has the Prometheus type set to &lt;code&gt;Mimir&lt;/code&gt; and the &lt;code&gt;Version&lt;/code&gt; set correctly in order to benefit from this improvement.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Support to cache cardinality, label names and label values&lt;/strong&gt; query responses in query frontend. The cache will be used when &lt;code&gt;-query-frontend.cache-results&lt;/code&gt; is enabled, and &lt;code&gt;-query-frontend.results-cache-ttl-for-cardinality-query&lt;/code&gt; or &lt;code&gt;-query-frontend.results-cache-ttl-for-labels-query&lt;/code&gt; is set to a value greater than 0.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Reduced wasted effort spent computing results that won&amp;rsquo;t be used&lt;/strong&gt; by having queriers cancel the requests sent to the ingesters in a zone upon receiving first error from that zone.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Reduced object storage use&lt;/strong&gt; by enhancing the compactor to remove the bucket index, markers, and debug files when it detects zero remaining blocks in the bucket index. This cleanup process can be enabled by setting the &lt;code&gt;-compactor.no-blocks-file-cleanup-enabled&lt;/code&gt; option to &lt;code&gt;true&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Added new debug HTTP endpoints&lt;/strong&gt; &lt;code&gt;/ingester/tenants&lt;/code&gt; and &lt;code&gt;/ingester/tsdb/{tenant}&lt;/code&gt; to the ingester that provide debug information about tenants and their TSDBs.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Added new metrics for tracking native histograms in active series&lt;/strong&gt;: &lt;code&gt;cortex_ingester_active_native_histogram_series&lt;/code&gt;, &lt;code&gt;cortex_ingester_active_native_histogram_series_custom_tracker&lt;/code&gt;, &lt;code&gt;cortex_ingester_active_native_histogram_buckets&lt;/code&gt;, &lt;code&gt;cortex_ingester_active_native_histogram_buckets_custom_tracker&lt;/code&gt;. The first 2 are the subsets of the existing and unmodified &lt;code&gt;cortex_ingester_active_series&lt;/code&gt; and &lt;code&gt;cortex_ingester_active_series_custom_tracker&lt;/code&gt; respectively, only tracking native histogram series, and the last 2 are the equivalent for tracking the number of buckets in native histogram series.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Additionally, the following previously experimental features are now considered stable:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Support for a ruler storage cache&lt;/strong&gt;. This cache should reduce the number of &amp;ldquo;list objects&amp;rdquo; API calls issued to the object storage when there are 2&#43; ruler replicas running in a Mimir cluster. The cache can be configured by setting the &lt;code&gt;-ruler-storage.cache.*&lt;/code&gt; CLI flags or their respective YAML config options.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Query sharding cardinality estimation.&lt;/strong&gt; This feature allows query sharding to take into account cardinality of similar requests executed previously when computing the maximum number of shards to use. You can enable it through the advanced CLI configuration flag &lt;code&gt;-query-frontend.query-sharding-target-series-per-shard&lt;/code&gt;; we recommend starting with a value of &lt;code&gt;2500&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Query expression size limit&lt;/strong&gt;. You can limit the size in bytes of the queries allowed to be processed through the CLI configuration flag &lt;code&gt;-query-frontend.max-query-expression-size-bytes&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Peer discovery / tenant sharding for overrides exporters&lt;/strong&gt;. You can enable it through the CLI configuration flag &lt;code&gt;-overrides-exporter.ring.enabled&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Overrides exporter enabled metrics selection&lt;/strong&gt;. You can select which metrics the overrides exporter should export through the CLI configuration flag &lt;code&gt;-overrides-exporter.enabled-metrics&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Per-tenant results cache TTL&lt;/strong&gt;. The time-to-live duration for cached query results can be configured using the &lt;code&gt;results_cache_ttl&lt;/code&gt; and &lt;code&gt;results_cache_ttl_for_out_of_order_time_window&lt;/code&gt; parameters.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;experimental-features&#34;&gt;Experimental features&lt;/h2&gt;
&lt;p&gt;Grafana Mimir 2.10 includes new features that are considered as experimental and disabled by default. Please use them with caution and report any issues you encounter:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Support for ingesting exponential histograms in OpenTelemetry format&lt;/strong&gt;. The exponential histograms that are over the native histogram scale limit of 8 are downscaled to allow their ingestion.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Store-gateway index-header loading improvements&lt;/strong&gt;, which include the ability to persist the sparse index-header to disk instead of reconstructing it on every restart (&lt;code&gt;-blocks-storage.bucket-store.index-header-sparse-persistence-enabled&lt;/code&gt;) as well as the ability to persist the list of block IDs that were lazy-loaded while running to eagerly load them upon startup to prevent starting up with no loaded blocks (&lt;code&gt;-blocks-storage.bucket-store.index-header.eager-loading-startup-enabled&lt;/code&gt;) and an option to limit the number of concurrent index-header loads when lazy-loading (&lt;code&gt;-blocks-storage.bucket-store.index-header-lazy-loading-concurrency&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Option to allow queriers to reduce pressure on ingesters&lt;/strong&gt; by initially querying only the minimum set of ingesters required to reach quorum. (&lt;code&gt;-querier.minimize-ingester-requests&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Early TSDB Head compaction in the ingesters&lt;/strong&gt; to reduce in-memory series when a certain threshold is reached. Useful to deal with high series churning rate. (&lt;code&gt;-blocks-storage.tsdb.early-head-compaction-min-in-memory-series&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Spread-minimizing token generation algorithm&lt;/strong&gt; for the ingesters. This new method drastically reduces the difference in series pushed to different ingesters. Please note that &lt;a href=&#34;https://github.com/grafana/mimir/issues/4736#issuecomment-1602976040&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;a migration process&lt;/a&gt; is required to switch from previous random generation algorithm, which will be detailed once the feature is declared stable.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Support for chunks streaming from store-gateways to queriers&lt;/strong&gt; that should reduce the memory usage in the queriers. Can be enabled through the &lt;code&gt;-querier.prefer-streaming-chunks-from-store-gateways&lt;/code&gt; option.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Support for circuit-breaking the distributor write requests to the ingesters&lt;/strong&gt;. This can be enabled through the &lt;code&gt;-ingester.client.circuit-breaker.*&lt;/code&gt; configuration options and should serve to let ingesters recover when under high pressure.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Support to limit read requests based on CPU/memory utilization&lt;/strong&gt;. This should alleviate pressure on the ingesters after receiving heavy queries and reduce the likelihood of disrupting the write path. (&lt;code&gt;-ingester.read-path-cpu-utilization-limit&lt;/code&gt;, &lt;code&gt;-ingester.read-path-memory-utilization-limit&lt;/code&gt;, &lt;code&gt;-ingester.log-utilization-based-limiter-cpu-samples&lt;/code&gt;).&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;helm-chart-improvements&#34;&gt;Helm chart improvements&lt;/h3&gt;
&lt;p&gt;The Grafana Mimir and Grafana Enterprise Metrics Helm chart is now released independently. See the &lt;a href=&#34;/docs/helm-charts/mimir-distributed/latest/&#34;&gt;Grafana Mimir Helm chart documentation&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;important-changes&#34;&gt;Important changes&lt;/h2&gt;
&lt;p&gt;In Grafana Mimir 2.10 we have changed the following behaviors:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Query requests are initiated only to ingesters in the &lt;code&gt;ACTIVE&lt;/code&gt; state in the ring. This is not expected to introduce any degradation in terms of query results correctness or high-availability.&lt;/li&gt;
&lt;li&gt;Per-instance limit errors are not logged anymore, to reduce resource usage when ingesters are under pressure. We encourage you to use metrics and alerting to monitor them instead. The following metrics have been added to count the number of requests rejected for hitting per-instance limits:
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;cortex_distributor_instance_rejected_requests_total&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;cortex_ingester_instance_rejected_requests_total&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;The CLI flag &lt;code&gt;-validation.create-grace-period&lt;/code&gt; is now enforced in the ingester. If you&amp;rsquo;ve configured &lt;code&gt;-validation.create-grace-period&lt;/code&gt;, make sure the configuration is applied to ingesters too.&lt;/li&gt;
&lt;li&gt;The CLI flag &lt;code&gt;-validation.create-grace-period&lt;/code&gt; is now enforced for exemplars. The &lt;code&gt;cortex_discarded_exemplars_total{reason=&amp;quot;exemplar_too_far_in_future&amp;quot;,user=&amp;quot;...&amp;quot;}&lt;/code&gt; series is incremented when exemplars are dropped because their timestamp is greater than &amp;ldquo;now &#43; grace_period&amp;rdquo;.&lt;/li&gt;
&lt;li&gt;The CLI flag &lt;code&gt;-validation.create-grace-period&lt;/code&gt; is now enforced in the query-frontend even when the configured value is 0. When the value is 0, the query end time range is truncated to the current real-world time.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The following metrics were removed:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;cortex_ingester_shipper_dir_syncs_total&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;cortex_ingester_shipper_dir_sync_failures_total&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The following configuration options are deprecated and will be removed in Grafana Mimir 2.12:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The CLI flag &lt;code&gt;-blocks-storage.bucket-store.index-header-lazy-loading-enabled&lt;/code&gt; is deprecated, use the new configuration &lt;code&gt;-blocks-storage.bucket-store.index-header.lazy-loading-enabled&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;The CLI flag &lt;code&gt;-blocks-storage.bucket-store.index-header-lazy-loading-idle-timeout&lt;/code&gt; is deprecated, use the new configuration &lt;code&gt;-blocks-storage.bucket-store.index-header.lazy-loading-idle-timeout&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;The CLI flag &lt;code&gt;-blocks-storage.bucket-store.index-header-lazy-loading-concurrency&lt;/code&gt; is deprecated, use the new configuration &lt;code&gt;-blocks-storage.bucket-store.index-header.lazy-loading-concurrency&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The following configuration options that were deprecated in Grafana Mimir 2.8 are removed:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The CLI flag &lt;code&gt;blocks-storage.tsdb.max-tsdb-opening-concurrency-on-startup&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The following experimental configuration options were renamed or removed:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The CLI flag &lt;code&gt;-querier.prefer-streaming-chunks&lt;/code&gt; was renamed to &lt;code&gt;-querier.prefer-streaming-chunks-from-ingesters&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;The CLI flag &lt;code&gt;-blocks-storage.bucket-store.chunks-cache.fine-grained-chunks-caching-enabled&lt;/code&gt; was removed.&lt;/li&gt;
&lt;li&gt;The CLI flag &lt;code&gt;-blocks-storage.bucket-store.fine-grained-chunks-caching-ranges-per-series&lt;/code&gt; was removed.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The following experimental options are now stable:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The CLI flag &lt;code&gt;-shutdown-delay&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;The CLI flag &lt;code&gt;-ingester.ring.excluded-zones&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The following configuration option defaults were changed:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The default value for the CLI flag &lt;code&gt;-querier.streaming-chunks-per-ingester-buffer-size&lt;/code&gt; was changed from &lt;code&gt;512&lt;/code&gt; to &lt;code&gt;256&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;The default value for gRPC clients connect timeout was set to &lt;code&gt;5s&lt;/code&gt; (default inherited from gRPC client was &lt;code&gt;20s&lt;/code&gt;) with a default max backoff delay of &lt;code&gt;5s&lt;/code&gt; (default inherited from gRPC client was &lt;code&gt;120s&lt;/code&gt;).&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;bug-fixes&#34;&gt;Bug fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Ruler: fixed graceful shutdown for rule evaluations.&lt;/li&gt;
&lt;li&gt;Ingester: fixed ingesters getting stuck when previous state is &lt;code&gt;LEAVING&lt;/code&gt; and the number of tokens has changed upon restarting.&lt;/li&gt;
&lt;li&gt;Querier: fixed &lt;code&gt;timestamp()&lt;/code&gt; function fail with &lt;code&gt;execution: attempted to read series at index 0 from stream, but the stream has already been exhausted&lt;/code&gt; if the experimental feature to stream chunks from ingesters to queriers is enabled.&lt;/li&gt;
&lt;li&gt;Memberlist: brought back &lt;code&gt;memberlist_client_kv_store_count&lt;/code&gt; metric that used to exist in Cortex, but got lost during &lt;a href=&#34;https://github.com/grafana/dskit/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;grafana/dskit&lt;/a&gt; updates before Mimir 2.0.&lt;/li&gt;
&lt;li&gt;Store-gateway: fixed an issue where stopping a store-gateway could cause all store-gateways to unload all blocks.&lt;/li&gt;
&lt;li&gt;Ingester: prevented setting &amp;ldquo;last update time&amp;rdquo; of TSDB into the future when opening TSDB. This could prevent detecting of idle TSDB for a long time, if sample in distant future was ingested.&lt;/li&gt;
&lt;li&gt;General: changed ballast to allocate smaller blocks to avoid problem when entire ballast was kept in memory working set.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2105&#34;&gt;2.10.5&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Security: updated the Alpine base image version to 3.18.5 to address &lt;a href=&#34;https://nvd.nist.gov/vuln/detail/CVE-2023-5363&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;CVE-2023-5363&lt;/a&gt;. &lt;a href=&#34;https://github.com/grafana/mimir/pull/6897&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;PR 6897&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Bugfix: Ingester: fixed possible series matcher corruption leading to wrong series being included in query results. &lt;a href=&#34;https://github.com/grafana/mimir/pull/6886&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;PR 6886&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2104&#34;&gt;2.10.4&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;[BUGFIX] Update otelhttp library to v0.44.0 as a mitigation for CVE-2023-45142. &lt;a href=&#34;https://github.com/grafana/mimir/pull/6634&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;PR 6634&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2103&#34;&gt;2.10.3&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;[BUGFIX] Update grpc-go library to 1.57.2-dev that includes a fix for a bug introduced in 1.57.1. &lt;a href=&#34;https://github.com/grafana/mimir/pull/6419&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;PR 6419&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2102&#34;&gt;2.10.2&lt;/h3&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;This release contains a known performance regression fixed in 2.10.3&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;ul&gt;
&lt;li&gt;[BUGFIX] Update grpc-go library to 1.57.1 and &lt;code&gt;golang.org/x/net&lt;/code&gt; to &lt;code&gt;0.17&lt;/code&gt;, which include fix for CVE-2023-44487. &lt;a href=&#34;https://github.com/grafana/mimir/pull/6349&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;PR 6349&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2101&#34;&gt;2.10.1&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Security: Update Go version to 1.21.3. &lt;a href=&#34;https://github.com/grafana/mimir/pull/6244&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;PR 6244&lt;/a&gt; &lt;a href=&#34;https://github.com/grafana/mimir/pull/6325&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;PR 6325&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Bugfix: Query-frontend: Don&amp;rsquo;t retry read requests rejected by the ingester due to utilization based read path limiting. &lt;a href=&#34;https://github.com/grafana/mimir/pull/6032&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;PR 6032&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Bugfix: Ingester: fix panic in WAL replay of certain native histograms. &lt;a href=&#34;https://github.com/grafana/mimir/pull/6086&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;PR 6086&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
]]></content><description>&lt;h1 id="grafana-mimir-version-210-release-notes">Grafana Mimir version 2.10 release notes&lt;/h1>
&lt;p>Grafana Labs is excited to announce version 2.10 of Grafana Mimir.&lt;/p>
&lt;p>The highlights that follow include the top features, enhancements, and bugfixes in this release. For the complete list of changes, see the &lt;a href="https://github.com/grafana/mimir/blob/main/CHANGELOG.md" target="_blank" rel="noopener noreferrer">changelog&lt;/a>.&lt;/p></description></item><item><title>Grafana Mimir version 2.11 release notes</title><link>https://grafana.com/docs/mimir/v3.1.x/release-notes/v2.11/</link><pubDate>Wed, 03 Jun 2026 09:01:40 +0200</pubDate><guid>https://grafana.com/docs/mimir/v3.1.x/release-notes/v2.11/</guid><content><![CDATA[&lt;h1 id=&#34;grafana-mimir-version-211-release-notes&#34;&gt;Grafana Mimir version 2.11 release notes&lt;/h1&gt;
&lt;p&gt;Grafana Labs is excited to announce version 2.11 of Grafana Mimir.&lt;/p&gt;
&lt;p&gt;The highlights that follow include the top features, enhancements, and bugfixes in this release. For the complete list of changes, see the &lt;a href=&#34;https://github.com/grafana/mimir/blob/main/CHANGELOG.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;changelog&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;features-and-enhancements&#34;&gt;Features and enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Sampled logging of errors in the ingester.&lt;/strong&gt; A high-traffic Mimir cluster can occasionally become bogged down logging high volumes of repeated errors. You can now reduce the amount of errors outputted to logs by setting a sample rate via the &lt;code&gt;-ingester.error-sample-rate&lt;/code&gt; CLI flag.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Add total request size instance limit for ingesters.&lt;/strong&gt; This limit protects the ingesters against requests that together may cause an OOM. Enable this feature by setting the &lt;code&gt;-ingester.instance-limits.max-inflight-push-requests-bytes&lt;/code&gt; CLI flag in combination with the &lt;code&gt;-ingester.limit-inflight-requests-using-grpc-method-limiter&lt;/code&gt; CLI flag.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Reduce the resolution of incoming native histograms samples&lt;/strong&gt; if the incoming sample has too many buckets compared to &lt;code&gt;-validation.max-native-histogram-buckets&lt;/code&gt;. This is enabled by default but can be turned off by setting the &lt;code&gt;-validation.reduce-native-histogram-over-max-buckets&lt;/code&gt; CLI flag to &lt;code&gt;false&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Improved query-scheduler performance under load.&lt;/strong&gt; This is particularly apparent for clusters with large numbers of queriers.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Ingester to querier chunks streaming&lt;/strong&gt; reduces the memory utilization of queriers and reduces the likelihood of OOMs.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Ingester query request minimization&lt;/strong&gt; reduces the number of query requests to ingesters, improving performance and resource utilization for both ingesters and queriers.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;The &lt;code&gt;markblocks&lt;/code&gt; tool&lt;/strong&gt; is released in compiled form together with the rest of Mimir. It is used to mark blocks for deletion or as &amp;ldquo;non-compactable&amp;rdquo;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;experimental-features&#34;&gt;Experimental features&lt;/h2&gt;
&lt;p&gt;Grafana Mimir 2.11 includes new features that are considered experimental and disabled by default. Please use them with caution and report any issue you encounter:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Block specified queries on a per-tenant basis.&lt;/strong&gt; This is configured via the &lt;code&gt;blocked_queries&lt;/code&gt; limit. See &lt;a href=&#34;https://github.com/grafana/mimir/blob/main/docs/sources/mimir/configure/configure-blocked-queries.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;the docs&lt;/a&gt; for more information.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Store metadata when ingesting metrics via OTLP.&lt;/strong&gt; This makes metric description and type available when ingesting metrics via OTLP. You can enable this feature by setting the CLI flag &lt;code&gt;-distributor.enable-otlp-metadata-storage&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Reject gRPC push requests that the ingester/distributor is unable to accept before reading them into memory.&lt;/strong&gt; You can enable this feature by using the &lt;code&gt;-ingester.limit-inflight-requests-using-grpc-method-limiter&lt;/code&gt; and/or the &lt;code&gt;-distributor.limit-inflight-requests-using-grpc-method-limiter&lt;/code&gt; CLI flags for the ingester and/or the distributor, respectively.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Customize the memcached client write and read buffer size.&lt;/strong&gt; The buffer allocated for each memcached connection can be configured via the following CLI flags:
&lt;ul&gt;
&lt;li&gt;For the blocks storage:
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;-blocks-storage.bucket-store.chunks-cache.memcached.read-buffer-size-bytes&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-blocks-storage.bucket-store.chunks-cache.memcached.write-buffer-size-bytes&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-blocks-storage.bucket-store.index-cache.memcached.read-buffer-size-bytes&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-blocks-storage.bucket-store.index-cache.memcached.write-buffer-size-bytes&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-blocks-storage.bucket-store.metadata-cache.memcached.read-buffer-size-bytes&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-blocks-storage.bucket-store.metadata-cache.memcached.write-buffer-size-bytes&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;For the query frontend:
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;-query-frontend.results-cache.memcached.read-buffer-size-bytes&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-query-frontend.results-cache.memcached.write-buffer-size-bytes&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;For the ruler storage:
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;-ruler-storage.cache.memcached.read-buffer-size-bytes&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-ruler-storage.cache.memcached.write-buffer-size-bytes&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Configure the number of long-living workers used to process gRPC requests.&lt;/strong&gt; This can decrease CPU usage by reducing the number of stack allocations. Configure this feature by using the &lt;code&gt;-server.grpc.num-workers&lt;/code&gt; CLI flag.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Enforce a limit in bytes on the &lt;code&gt;PostingsForMatchers&lt;/code&gt; cache used by ingesters.&lt;/strong&gt; This limit can be configured via the &lt;code&gt;-blocks-storage.tsdb.head-postings-for-matchers-cache-max-bytes&lt;/code&gt; and &lt;code&gt;-blocks-storage.tsdb.block-postings-for-matchers-cache-max-bytes&lt;/code&gt; CLI flags.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Pre-allocate the pool of workers in the distributor that are used to send push requests to ingesters.&lt;/strong&gt; This can decrease CPU usage by reducing the number of stack allocations. You can enable this feature by using the &lt;code&gt;-distributor.reusable-ingester-push-worker&lt;/code&gt; flag.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Include a &lt;code&gt;Retry-After&lt;/code&gt; header in recoverable error responses from the distributor.&lt;/strong&gt; This can protect your Mimir cluster from clients including Prometheus that default to retrying very quickly. Enable this feature by setting the &lt;code&gt;-distributor.retry-after-header.enabled&lt;/code&gt; CLI flag.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;helm-chart-improvements&#34;&gt;Helm chart improvements&lt;/h3&gt;
&lt;p&gt;The Grafana Mimir and Grafana Enterprise Metrics Helm chart is now released independently. See the &lt;a href=&#34;/docs/helm-charts/mimir-distributed/latest/&#34;&gt;Grafana Mimir Helm chart documentation&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;important-changes&#34;&gt;Important changes&lt;/h2&gt;
&lt;p&gt;In Grafana Mimir 2.11 the following behavior has changed:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The utilization-based read path limiter now operates on Go heap size instead of RSS from the Linux proc file system.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The following configuration options had been previously deprecated and are removed in Grafana Mimir 2.11:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The CLI flag &lt;code&gt;-querier.iterators&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;The CLI flag &lt;code&gt;-query.batch-iterators&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;The CLI flag &lt;code&gt;-blocks-storage.bucket-store.bucket-index.enabled&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;The CLI flag &lt;code&gt;-blocks-storage.bucket-store.chunk-pool-min-bucket-size-bytes&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;The CLI flag &lt;code&gt;-blocks-storage.bucket-store.chunk-pool-max-bucket-size-bytes&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;The CLI flag &lt;code&gt;-blocks-storage.bucket-store.max-chunk-pool-bytes&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The following configuration options are deprecated and will be removed in Grafana Mimir 2.13:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The CLI flag &lt;code&gt;-log.buffered&lt;/code&gt;; this is now the default behavior.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The following metrics are removed:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;cortex_query_frontend_workers_enqueued_requests_total&lt;/code&gt;; use &lt;code&gt;cortex_query_frontend_enqueue_duration_seconds_count&lt;/code&gt; instead.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The following configuration option defaults were changed:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The CLI flag &lt;code&gt;-blocks-storage.bucket-store.index-header.sparse-persistence-enabled&lt;/code&gt; now defaults to true.&lt;/li&gt;
&lt;li&gt;The default value for the CLI flag &lt;code&gt;-blocks-storage.bucket-store.index-header.lazy-loading-concurrency&lt;/code&gt; was changed from &lt;code&gt;0&lt;/code&gt; to &lt;code&gt;4&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;The default value for the CLI flag &lt;code&gt;-blocks-storage.tsdb.series-hash-cache-max-size-bytes&lt;/code&gt; was changed from &lt;code&gt;1GB&lt;/code&gt; to &lt;code&gt;350MB&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;The default value for the CLI flag &lt;code&gt;-blocks-storage.tsdb.early-head-compaction-min-estimated-series-reduction-percentage&lt;/code&gt; was changed from &lt;code&gt;10&lt;/code&gt; to &lt;code&gt;15&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;bug-fixes&#34;&gt;Bug fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Ingester: Respect context cancelation during query execution. &lt;a href=&#34;https://github.com/grafana/mimir/pull/6085&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;PR 6085&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Distributor: Return 529 when ingestion rate limit is hit and the &lt;code&gt;distributor.service_overload_status_code_on_rate_limit_enabled&lt;/code&gt; flag is active. &lt;a href=&#34;https://github.com/grafana/mimir/pull/6549&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;PR 6549&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Query-scheduler: Prevent accumulation of stale querier connections. &lt;a href=&#34;https://github.com/grafana/mimir/pull/6100&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;PR 6100&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Packaging: Fix preremove script preventing upgrades on RHEL based OS. &lt;a href=&#34;https://github.com/grafana/mimir/pull/6067&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;PR 6067&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Ingester: Fixed possible series matcher corruption leading to wrong series being included in query results. &lt;a href=&#34;https://github.com/grafana/mimir/pull/6884&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;PR 6884&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Mimirtool: Fixed missing .metricsUsed field in the output of analyze rule-file. &lt;a href=&#34;https://github.com/grafana/mimir/pull/6953&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;PR 6953&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
]]></content><description>&lt;h1 id="grafana-mimir-version-211-release-notes">Grafana Mimir version 2.11 release notes&lt;/h1>
&lt;p>Grafana Labs is excited to announce version 2.11 of Grafana Mimir.&lt;/p>
&lt;p>The highlights that follow include the top features, enhancements, and bugfixes in this release. For the complete list of changes, see the &lt;a href="https://github.com/grafana/mimir/blob/main/CHANGELOG.md" target="_blank" rel="noopener noreferrer">changelog&lt;/a>.&lt;/p></description></item><item><title>Grafana Mimir version 2.12 release notes</title><link>https://grafana.com/docs/mimir/v3.1.x/release-notes/v2.12/</link><pubDate>Wed, 03 Jun 2026 09:01:40 +0200</pubDate><guid>https://grafana.com/docs/mimir/v3.1.x/release-notes/v2.12/</guid><content><![CDATA[&lt;h1 id=&#34;grafana-mimir-version-212-release-notes&#34;&gt;Grafana Mimir version 2.12 release notes&lt;/h1&gt;
&lt;!-- vale Grafana.GoogleWill = NO --&gt;
&lt;!-- vale Grafana.Timeless = NO --&gt;
&lt;!-- Release notes are often future focused --&gt;
&lt;p&gt;Grafana Labs is excited to announce version 2.12 of Grafana Mimir.&lt;/p&gt;
&lt;p&gt;The highlights that follow include the top features, enhancements, and bug fixes in this release.
For the complete list of changes, refer to the &lt;a href=&#34;https://github.com/grafana/mimir/blob/main/CHANGELOG.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;CHANGELOG&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;features-and-enhancements&#34;&gt;Features and enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Added support to only count series that are considered &lt;em&gt;active&lt;/em&gt;&lt;/strong&gt; through the Cardinality API endpoint &lt;code&gt;/api/v1/cardinality/label_names&lt;/code&gt; by passing the &lt;code&gt;count_method&lt;/code&gt; parameter.
If set to &lt;code&gt;active&lt;/code&gt; it counts only series that are considered &lt;em&gt;active&lt;/em&gt; according to the &lt;code&gt;-ingester.active-series-metrics-idle-timeout&lt;/code&gt; flag setting rather than counting all in-memory series.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;The &amp;ldquo;Store-gateway: bucket tenant blocks&amp;rdquo; admin page contains a new column &amp;ldquo;No Compact&amp;rdquo;&lt;/strong&gt;.
If block no compaction marker is set, it specifies the reason and the date the marker is added.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;The estimated number of compaction jobs based on the current bucket-index&lt;/strong&gt; is now computed by the compactor.
The result is tracked by the new &lt;code&gt;cortex_bucket_index_compaction_jobs&lt;/code&gt; metric.
If this computation fails, the &lt;code&gt;cortex_bucket_index_compaction_jobs_errors_total&lt;/code&gt; metric is updated instead.
The estimated number of compaction jobs is also shown in &lt;strong&gt;Top tenants&lt;/strong&gt;, &lt;strong&gt;Tenants&lt;/strong&gt;, and &lt;strong&gt;Compactor&lt;/strong&gt; dashboards.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Added &lt;code&gt;mimir-distroless&lt;/code&gt; container image built upon a &lt;code&gt;distroless&lt;/code&gt; image&lt;/strong&gt; (&lt;code&gt;gcr.io/distroless/static-debian12&lt;/code&gt;).
This improvement minimizes attack surfaces and potential CVEs by trimming down the dependencies within the image.
After comprehensive testing, the Mimir maintainers plan to shift from the current image to the distroless version.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Additionally, the following previously experimental features are now considered stable:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;The number of pre-allocated workers used to forward push requests to the ingesters&lt;/strong&gt;, configurable via the &lt;code&gt;-distributor.reusable-ingester-push-workers&lt;/code&gt; CLI flag on distributors.
It now defaults to &lt;code&gt;2000&lt;/code&gt;.
Note that this is a performance optimization, and not a limiting feature.
If not enough workers available, new goroutines will be spawned.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;The number of gRPC server workers used to serve the requests&lt;/strong&gt;, configurable via the &lt;code&gt;-server.grpc.num-workers&lt;/code&gt; CLI flag.
It now defaults to &lt;code&gt;100&lt;/code&gt;.
Note that this is the number of pre-allocated long-lived workers, and not a limiting feature.
If not enough workers are available, new goroutines will be spawned.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;The maximum number of concurrent index header loads across all tenants&lt;/strong&gt;, configurable via the &lt;code&gt;-blocks-storage.bucket-store.index-header.lazy-loading-concurrency&lt;/code&gt; CLI flag on store-gateways.
It defaults to &lt;code&gt;4&lt;/code&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;The maximum time to wait for the query-frontend to become ready before rejecting requests&lt;/strong&gt;, configurable via the &lt;code&gt;-query-frontend.not-running-timeout&lt;/code&gt; CLI flag on query-frontends.
It now defaults to &lt;code&gt;2s&lt;/code&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;The CLI flag that allows queriers to reduce pressure on ingesters&lt;/strong&gt; by initially querying only the minimum set of ingesters required to reach quorum, &lt;code&gt;-querier.minimize-ingester-requests&lt;/code&gt;.
It is now enabled by default.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Spread-minimizing token-related CLI flags&lt;/strong&gt;: &lt;code&gt;-ingester.ring.token-generation-strategy&lt;/code&gt;, &lt;code&gt;-ingester.ring.spread-minimizing-zones&lt;/code&gt; and &lt;code&gt;-ingester.ring.spread-minimizing-join-ring-in-order&lt;/code&gt;.
You can read more about this feature &lt;a href=&#34;/blog/2024/03/07/how-we-improved-ingester-load-balancing-in-grafana-mimir-with-spread-minimizing-tokens/&#34;&gt;in our blog post&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;important-changes&#34;&gt;Important changes&lt;/h2&gt;
&lt;p&gt;In Grafana Mimir 2.12 the following behavior has changed:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Store-gateway now persists a sparse version of the index-header to disk on construction and loads sparse index-headers from disk instead of the whole index-header.
This improves the speed at which index headers are lazy-loaded from disk by up to 90%. The added disk usage is in the order of 1-2%.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Alertmanager deprecated the &lt;code&gt;v1&lt;/code&gt; API. All &lt;code&gt;v1&lt;/code&gt; API endpoints now respond with a JSON deprecation notice and a status code of &lt;code&gt;410&lt;/code&gt;.
All endpoints have a &lt;code&gt;v2&lt;/code&gt; equivalent.
The list of endpoints is:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&amp;lt;alertmanager-web.external-url&amp;gt;/api/v1/alerts&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&amp;lt;alertmanager-web.external-url&amp;gt;/api/v1/receivers&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&amp;lt;alertmanager-web.external-url&amp;gt;/api/v1/silence/{id}&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&amp;lt;alertmanager-web.external-url&amp;gt;/api/v1/silences&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&amp;lt;alertmanager-web.external-url&amp;gt;/api/v1/status&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Exemplar&amp;rsquo;s label &lt;code&gt;traceID&lt;/code&gt; has been changed to &lt;code&gt;trace_id&lt;/code&gt; to be consistent with the OpenTelemetry standard.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Errors returned by ingesters now contain only gRPC status codes.
Previously they contained both gRPC and HTTP status codes.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-warning&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Warning&lt;/p&gt;&lt;p&gt;To guarantee backwards compatibility when migrating from a version prior to &lt;code&gt;2.11&lt;/code&gt;, it&amp;rsquo;s necessary to first migrate to version &lt;code&gt;2.11&lt;/code&gt;, and then to version &lt;code&gt;2.12&lt;/code&gt;.
Otherwise, it might happen that during the migration, some ingester errors with HTTP status code &lt;code&gt;4xx&lt;/code&gt; won&amp;rsquo;t be recognized, and the corresponding request will be repeated.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Responses with gRPC status codes are now reported as &lt;code&gt;status_code&lt;/code&gt; labels in the &lt;code&gt;cortex_request_duration_seconds&lt;/code&gt; and &lt;code&gt;cortex_ingester_client_request_duration_seconds&lt;/code&gt; metrics.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Responses with HTTP 4xx status codes are now treated as errors and used in &lt;code&gt;status_code&lt;/code&gt; label of request duration metric.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The default value of the following CLI flags have been changed:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;-blocks-storage.tsdb.head-postings-for-matchers-cache-max-bytes&lt;/code&gt; from &lt;code&gt;10MB&lt;/code&gt; to &lt;code&gt;100MB&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-blocks-storage.tsdb.block-postings-for-matchers-cache-max-bytes&lt;/code&gt; from &lt;code&gt;10MB&lt;/code&gt; to &lt;code&gt;100MB&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-blocks-storage.bucket-store.tenant-sync-concurrency&lt;/code&gt; from &lt;code&gt;10&lt;/code&gt; to &lt;code&gt;1&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-query-frontend.max-cache-freshness&lt;/code&gt; from &lt;code&gt;1m&lt;/code&gt; to &lt;code&gt;10m&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-distributor.write-requests-buffer-pooling-enabled&lt;/code&gt; from &lt;code&gt;false&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-locks-storage.bucket-store.block-sync-concurrency&lt;/code&gt; from &lt;code&gt;20&lt;/code&gt; to &lt;code&gt;4&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-memberlist.stream-timeout&lt;/code&gt; from &lt;code&gt;10s&lt;/code&gt; to &lt;code&gt;2s&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-server.report-grpc-codes-in-instrumentation-label-enabled&lt;/code&gt; from &lt;code&gt;false&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The following deprecated configuration options are removed in Grafana Mimir 2.12:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The YAML setting &lt;code&gt;frontend.cache_unaligned_requests&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Experimental CLI flag &lt;code&gt;-querier.prefer-streaming-chunks-from-ingesters&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The following configuration options are deprecated and will be removed in Grafana Mimir 2.14:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;The CLI flag &lt;code&gt;-ingester.limit-inflight-requests-using-grpc-method-limiter&lt;/code&gt;.
It now defaults to &lt;code&gt;true&lt;/code&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;The CLI flag &lt;code&gt;-ingester.return-only-grpc-errors&lt;/code&gt;.
It now defaults to &lt;code&gt;true&lt;/code&gt;.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-warning&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Warning&lt;/p&gt;&lt;p&gt;To guarantee backwards compatibility when migrating from a version prior to &lt;code&gt;2.11&lt;/code&gt;, it&amp;rsquo;s necessary to first migrate to version &lt;code&gt;2.11&lt;/code&gt;, and then to version &lt;code&gt;2.12&lt;/code&gt;.
Otherwise, it might happen that during the migration, some ingester errors with HTTP status code &lt;code&gt;4xx&lt;/code&gt; won&amp;rsquo;t be recognized, and the corresponding request will be repeated.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;The CLI flag &lt;code&gt;-ingester.client.report-grpc-codes-in-instrumentation-label-enabled&lt;/code&gt;.
It now defaults to &lt;code&gt;true&lt;/code&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;The CLI flag &lt;code&gt;-distributor.limit-inflight-requests-using-grpc-method-limiter&lt;/code&gt;.
It now defaults to &lt;code&gt;true&lt;/code&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;The CLI flag &lt;code&gt;-distributor.enable-otlp-metadata-storage&lt;/code&gt;.
It now defaults to &lt;code&gt;true&lt;/code&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;The CLI flag &lt;code&gt;-querier.max-query-into-future&lt;/code&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The following metrics are removed or deprecated:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;cortex_bucket_store_blocks_loaded_by_duration&lt;/code&gt; has been removed.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;cortex_distributor_sample_delay_seconds&lt;/code&gt; has been deprecated and will be removed in Mimir 2.14.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;experimental-features&#34;&gt;Experimental features&lt;/h2&gt;
&lt;p&gt;Grafana Mimir 2.12 includes new features that are considered experimental and disabled by default.
Use them with caution and report any issues you encounter:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;The maximum number of tenant IDs that may be for a federated query&lt;/strong&gt; can be configured via the &lt;code&gt;-tenant-federation.max-tenants&lt;/code&gt; CLI flag on query-frontends.
By default, it&amp;rsquo;s &lt;code&gt;0&lt;/code&gt;, meaning that the limit is disabled.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Sharding of active series queries can be enabled&lt;/strong&gt; via the &lt;code&gt;-query-frontend.shard-active-series-queries&lt;/code&gt; CLI flag on query-frontends.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Timely head compaction&lt;/strong&gt; can be enabled via the &lt;code&gt;-blocks-storage.tsdb.timely-head-compaction-enabled&lt;/code&gt; on ingesters.
If enabled, the head compaction happens when the min block range can no longer be appended, without requiring 1.5x the chunk range worth of data in the head.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Streaming of responses from querier to query-frontend&lt;/strong&gt; can be enabled via the &lt;code&gt;-querier.response-streaming-enabled&lt;/code&gt; CLI flag on queriers.
This is currently supported only for responses from the &lt;code&gt;/api/v1/cardinality/active_series&lt;/code&gt; endpoint.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;The maximum response size for active series queries&lt;/strong&gt;, in bytes, can be set via the &lt;code&gt;-querier.active-series-results-max-size-bytes&lt;/code&gt; CLI flag on queriers.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Metric relabeling on a per-tenant basis can be forcefully disabled&lt;/strong&gt; via the &lt;code&gt;-distributor.metric-relabeling-enabled&lt;/code&gt; CLI flag on rulers.
Metrics relabeling is enabled by default.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Query Queue Load Balancing by Query Component&lt;/strong&gt;. Tenant query queues in the query-scheduler can now be split into subqueues by which query component is expected to be utilized to complete the query: ingesters, store-gateways, both, or uncategorized.
Dequeuing queries for a given tenant will rotate through the query component subqueues via simple round-robin.
In the event that the one of the query components (ingesters or store-gateways) experience a slowdown, queries only utilizing the other query component can continue to be serviced.
This feature is recommended to be enabled.
The following CLI flags must be set to true in order to be in effect:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;-query-frontend.additional-query-queue-dimensions-enabled&lt;/code&gt; on the query-frontend.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-query-scheduler.additional-query-queue-dimensions-enabled&lt;/code&gt; on the query-scheduler.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Owned series tracking in ingesters&lt;/strong&gt; can be enabled via the &lt;code&gt;-ingester.track-ingester-owned-series&lt;/code&gt; CLI flag.
When enabled, ingesters will track the number of in-memory series that still map to the ingester based on the ring state.
These counts are more reactive to ring and shard changes than in-memory series, and can be used when enforcing tenant series limits by enabling the &lt;code&gt;-ingester.use-ingester-owned-series-for-limits&lt;/code&gt; CLI flag.
This feature requires &lt;a href=&#34;/docs/mimir/latest/configure/configure-zone-aware-replication/&#34;&gt;zone-aware replication&lt;/a&gt; to be enabled, and the replication factor to be equal to the number of zones.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Support for UTF-8 in Alertmanager&lt;/strong&gt; can be enabled via the &lt;code&gt;-alertmanager.utf8-strict-mode-enabled&lt;/code&gt; CLI flag.
When enabled, Alertmanager can receive alerts with labels containing UTF-8 characters,
and match these alerts in routes, inhibition rules, and silences. This feature has backwards-incompatible changes.
Follow the instructions &lt;a href=&#34;/docs/mimir/v2.12.x/references/architecture/components/alertmanager/#enable-utf-8&#34;&gt;here&lt;/a&gt; to enable it.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;bug-fixes&#34;&gt;Bug fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Distributor: fixed an issue where &lt;code&gt;-distributor.metric-relabeling-enabled&lt;/code&gt; could cause distributors to panic.&lt;/li&gt;
&lt;li&gt;Distributor: fix an issue where &lt;code&gt;-distributor.metric-relabeling-enabled&lt;/code&gt; could cause distributors to write unsorted labels and corrupt blocks.&lt;/li&gt;
&lt;li&gt;Ingester: errors encountered while iterating through chunks or samples in response to a query request aren&amp;rsquo;t ignored anymore.&lt;/li&gt;
&lt;li&gt;Compactor: out-of-order blocks aren&amp;rsquo;t allowed to prevent timely compaction anymore.&lt;/li&gt;
&lt;li&gt;Querier: requests to store-gateway when a query gets canceled aren&amp;rsquo;t retried anymore.&lt;/li&gt;
&lt;li&gt;Querier: status code 499 is now returned instead of 500 when a request to remote read endpoint gets canceled.&lt;/li&gt;
&lt;li&gt;Querier: fixed an issue where &lt;code&gt;-querier.max-fetched-series-per-query&lt;/code&gt; wasn&amp;rsquo;t applied to &lt;code&gt;/series&lt;/code&gt; endpoint in case series loaded from ingesters.&lt;/li&gt;
&lt;li&gt;Querier: fixed an issue with the remote-read requests HTTP status code translations.
Previously, remote-read had conflicting behaviours: when returning samples all internal errors were translated to HTTP &lt;code&gt;400&lt;/code&gt;, while when returning chunks all internal errors were translated to HTTP &lt;code&gt;500&lt;/code&gt;.
With this fix, all validation errors will be translated into HTTP &lt;code&gt;400&lt;/code&gt; errors, while all other errors will be translated into HTTP &lt;code&gt;500&lt;/code&gt; errors.&lt;/li&gt;
&lt;li&gt;Query-frontend: the &lt;code&gt;cortex_query_frontend_queries_total&lt;/code&gt; metric incorrectly reported &lt;code&gt;op=&amp;quot;query&amp;quot;&lt;/code&gt; for any request which wasn&amp;rsquo;t a range query.
Now the &lt;code&gt;op&lt;/code&gt; label value can be one of the following:
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;query&lt;/code&gt;: instant query&lt;/li&gt;
&lt;li&gt;&lt;code&gt;query_range&lt;/code&gt;: range query&lt;/li&gt;
&lt;li&gt;&lt;code&gt;cardinality&lt;/code&gt;: cardinality query&lt;/li&gt;
&lt;li&gt;&lt;code&gt;label_names_and_values&lt;/code&gt;: label names / values query&lt;/li&gt;
&lt;li&gt;&lt;code&gt;active_series&lt;/code&gt;: active series query&lt;/li&gt;
&lt;li&gt;&lt;code&gt;other&lt;/code&gt;: any other request&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Ruler: fixed an issue where &amp;ldquo;failed to remotely evaluate query expression, will retry&amp;rdquo; messages were logged without context such as the trace ID and didn&amp;rsquo;t appear in trace events.&lt;/li&gt;
&lt;li&gt;Ruler: requests to remote querier when server&amp;rsquo;s response exceeds its configured max payload size aren&amp;rsquo;t retried anymore.&lt;/li&gt;
&lt;li&gt;Ruler: fixed a regression that caused client errors to be tracked in &lt;code&gt;cortex_ruler_write_requests_failed_total&lt;/code&gt; metric.&lt;/li&gt;
&lt;li&gt;Ruler: fixed an issue with recording rule result being corruption due to an usage of a bad native histogram pointer.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;helm-chart-improvements&#34;&gt;Helm chart improvements&lt;/h3&gt;
&lt;p&gt;The Grafana Mimir and Grafana Enterprise Metrics Helm charts are released independently.
Refer to the &lt;a href=&#34;/docs/helm-charts/mimir-distributed/latest/&#34;&gt;Grafana Mimir Helm chart documentation&lt;/a&gt;.&lt;/p&gt;
]]></content><description>&lt;h1 id="grafana-mimir-version-212-release-notes">Grafana Mimir version 2.12 release notes&lt;/h1>
&lt;!-- vale Grafana.GoogleWill = NO -->
&lt;!-- vale Grafana.Timeless = NO -->
&lt;!-- Release notes are often future focused -->
&lt;p>Grafana Labs is excited to announce version 2.12 of Grafana Mimir.&lt;/p></description></item><item><title>Grafana Mimir version 2.13 release notes</title><link>https://grafana.com/docs/mimir/v3.1.x/release-notes/v2.13/</link><pubDate>Wed, 03 Jun 2026 09:01:40 +0200</pubDate><guid>https://grafana.com/docs/mimir/v3.1.x/release-notes/v2.13/</guid><content><![CDATA[&lt;h1 id=&#34;grafana-mimir-version-213-release-notes&#34;&gt;Grafana Mimir version 2.13 release notes&lt;/h1&gt;
&lt;!-- vale Grafana.GoogleWill = NO --&gt;
&lt;!-- vale Grafana.Timeless = NO --&gt;
&lt;!-- Release notes are often future focused --&gt;
&lt;p&gt;Grafana Labs is excited to announce version 2.13 of Grafana Mimir.&lt;/p&gt;
&lt;p&gt;The highlights that follow include the top features, enhancements, and bug fixes in this release.
For the complete list of changes, refer to the &lt;a href=&#34;https://github.com/grafana/mimir/blob/main/CHANGELOG.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;CHANGELOG&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;features-and-enhancements&#34;&gt;Features and enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Improved CPU performance in processing queries with regular expressions&lt;/strong&gt; that contain many alternations (for example &lt;code&gt;foo|bar|baz|...&lt;/code&gt;).&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Improved OTLP ingestion performance&lt;/strong&gt; by using native translation, which reduces memory usage in the distributor by up to 30% and CPU usage by up to 8%.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Configurable S3 bucket lookup type improves interoperability with &lt;strong&gt;S3-compatible providers, such as Tencent and Alibaba&lt;/strong&gt;. Configure lookup type via &lt;code&gt;-&amp;lt;prefix&amp;gt;.s3.bucket-lookup-type&lt;/code&gt; or &lt;code&gt;-common.storage.s3-bucket-lookup-type&lt;/code&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Configuration of TLS for S3 buckets&lt;/strong&gt; is now possible via &lt;code&gt;-&amp;lt;prefix&amp;gt;.s3.http.*&lt;/code&gt; and &lt;code&gt;-common.storage.s3.http.*&lt;/code&gt; configuration options.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Mimirtool can now verify the validity of a Mimir runtime configuration&lt;/strong&gt; file with the &lt;code&gt;mimirtool runtime-config verify&lt;/code&gt; command.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Active series are now updated along with owned series.&lt;/strong&gt; This means the number of active series for a tenant is more accurate after scaling out ingesters. As a result, ingesters now more precisely enforce tenants&amp;rsquo; series limits. This feature is only enabled when &lt;code&gt;-ingester.track-ingester-owned-series&lt;/code&gt; or &lt;code&gt;-ingester.use-ingester-owned-series-for-limits&lt;/code&gt; are enabled.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Store-gateway can be configured to explicitly disable or enable tenants&lt;/strong&gt;. This is useful in cases where compaction slows down for a tenant to temporarily exclude another tenant while compaction catches up without affecting other tenants.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Remote read (&lt;code&gt;/prometheus/api/v1/read&lt;/code&gt;) is becoming a first-class endpoint in Mimir&lt;/strong&gt; with support in &lt;code&gt;query stats&lt;/code&gt; logs and query blocking in the query-frontend. More coming in future releases.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Additionally, the following previously experimental features are now considered stable:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Rules tenant federation via the &lt;code&gt;source_tenants&lt;/code&gt; field in rule groups.&lt;/li&gt;
&lt;li&gt;Enabling recording, and alerting rules evaluation on a per-tenant basis.&lt;/li&gt;
&lt;li&gt;Limiting the number of tenants a federated query can query.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;important-changes&#34;&gt;Important changes&lt;/h2&gt;
&lt;p&gt;In Grafana Mimir 2.13 the following behavior has changed:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;The default Docker image &lt;code&gt;grafana/mimir&lt;/code&gt; is now based on the distroless image &lt;code&gt;gcr.io/distroless/static-debian12&lt;/code&gt;.
See &lt;a href=&#34;/docs/mimir/latest/manage/mimir-runbooks/#debugging-distroless-container-images-in-kubernetes&#34;&gt;Debugging distroless container images&lt;/a&gt; for more details on how to
work with distroless images.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Error logs in the ingester are now sampled at 10% by default. Sampled log lines contain &lt;code&gt;(sampled 1/10)&lt;/code&gt;. The &lt;code&gt;cortex_discarded_samples_total&lt;/code&gt; metric still tracks all discarded samples.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Anonymous usage statistics now include actual CPU usage instead of available CPU cores.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Continuous-test is no longer a standalone binary and is now part of Mimir as its own target. The published Docker image has been updated to use the new packaging.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The following deprecated configuration options are removed in Grafana Mimir 2.13:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The configuration option &lt;code&gt;-log.buffered&lt;/code&gt;, which was deprecated in 2.11 and is now enabled by default.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;experimental-features&#34;&gt;Experimental features&lt;/h2&gt;
&lt;p&gt;Grafana Mimir 2.13 includes new features that are considered experimental and disabled by default.
Use them with caution and report any issues you encounter:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Experimental support for server-side circuit breakers in ingesters on read and write requests. This can be enabled using &lt;code&gt;-ingester.push-circuit-breaker.enabled&lt;/code&gt; and &lt;code&gt;-ingester.read-circuit-breaker.enabled&lt;/code&gt; options and further configured via the &lt;code&gt;-ingester.push-circuit-breaker.*&lt;/code&gt; and &lt;code&gt;-ingester.read-circuit-breaker.*&lt;/code&gt; options.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The following configuration options are deprecated and will be removed in a future Grafana Mimir release:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;evaluation_delay&lt;/code&gt; field in the rule group configuration has been deprecated. Please use &lt;code&gt;query_offset&lt;/code&gt; instead.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;bug-fixes&#34;&gt;Bug fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;OTLP ingestion: translate all HTTP 5xx errors into one of 502, 503, or 504, so that the otel-collector retries the failed requests.&lt;/li&gt;
&lt;li&gt;OTLP ingestion: return properly formatted protobuf error messages when ingestion fails.&lt;/li&gt;
&lt;li&gt;OTLP ingestion: generate &lt;code&gt;target_info&lt;/code&gt; metric only when there are metrics in the request and there is at least one configured identifying label.&lt;/li&gt;
&lt;li&gt;OTLP ingestion: don&amp;rsquo;t discard timeseries paired with invalid exemplars. Instead, try to ingest the timeseries and discard only the invalid exemplars.&lt;/li&gt;
&lt;li&gt;Subqueries: &lt;code&gt;@ end()&lt;/code&gt; and &lt;code&gt;@ start()&lt;/code&gt; now work correctly with queries split by time.&lt;/li&gt;
&lt;li&gt;Native histograms: order exemplars before ingestion to improve success rate when ingesting multiple exemplars.&lt;/li&gt;
&lt;li&gt;Native histograms: return HTTP 400 on invalid native histogram samples instead of HTTP 500. The metric &lt;code&gt;cortex_discarded_samples_total{reason=&amp;quot;invalid-native-histogram&amp;quot;}&lt;/code&gt; is now incremented on invalid histogram samples.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;helm-chart-improvements&#34;&gt;Helm chart improvements&lt;/h3&gt;
&lt;p&gt;The Grafana Mimir and Grafana Enterprise Metrics Helm charts are released independently.
Refer to the &lt;a href=&#34;/docs/helm-charts/mimir-distributed/latest/&#34;&gt;Grafana Mimir Helm chart documentation&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&#34;v2131&#34;&gt;v2.13.1&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;[BUGFIX] Upgrade Go to 1.22.9 to address &lt;a href=&#34;https://nvd.nist.gov/vuln/detail/CVE-2024-34156&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;CVE-2024-34156&lt;/a&gt;. &lt;a href=&#34;https://github.com/grafana/mimir/pull/10097&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;PR 10097&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;[BUGFIX] Update module google.golang.org/grpc to v1.64.1 to address &lt;a href=&#34;https://github.com/advisories/GHSA-xr7q-jx4m-x55m&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;GHSA-xr7q-jx4m-x55m&lt;/a&gt;. &lt;a href=&#34;https://github.com/grafana/mimir/pull/8717&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;PR 8717&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
]]></content><description>&lt;h1 id="grafana-mimir-version-213-release-notes">Grafana Mimir version 2.13 release notes&lt;/h1>
&lt;!-- vale Grafana.GoogleWill = NO -->
&lt;!-- vale Grafana.Timeless = NO -->
&lt;!-- Release notes are often future focused -->
&lt;p>Grafana Labs is excited to announce version 2.13 of Grafana Mimir.&lt;/p></description></item><item><title>Grafana Mimir version 2.14 release notes</title><link>https://grafana.com/docs/mimir/v3.1.x/release-notes/v2.14/</link><pubDate>Wed, 03 Jun 2026 09:01:40 +0200</pubDate><guid>https://grafana.com/docs/mimir/v3.1.x/release-notes/v2.14/</guid><content><![CDATA[&lt;h1 id=&#34;grafana-mimir-version-214-release-notes&#34;&gt;Grafana Mimir version 2.14 release notes&lt;/h1&gt;
&lt;!-- vale Grafana.GoogleWill = NO --&gt;
&lt;!-- vale Grafana.Timeless = NO --&gt;
&lt;!-- Release notes are often future focused --&gt;
&lt;p&gt;Grafana Labs is excited to announce version 2.14 of Grafana Mimir.&lt;/p&gt;
&lt;p&gt;The highlights that follow include the top features, enhancements, and bug fixes in this release.
For the complete list of changes, refer to the &lt;a href=&#34;https://github.com/grafana/mimir/blob/main/CHANGELOG.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;CHANGELOG&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;features-and-enhancements&#34;&gt;Features and enhancements&lt;/h2&gt;
&lt;p&gt;The streaming of chunks from store-gateways to queriers is now enabled by default.
This reduces the memory usage in queriers.
This was an experimental feature since Mimir 2.10, and is now considered stable.&lt;/p&gt;
&lt;p&gt;Compactor adds a new &lt;code&gt;cortex_compactor_disk_out_of_space_errors_total&lt;/code&gt; counter metric that tracks how many times a compaction fails
due to the compactor being out of disk.&lt;/p&gt;
&lt;p&gt;The distributor now replies with the &lt;code&gt;Retry-After&lt;/code&gt; header on retryable errors by default.
This protects Mimir from clients, including Prometheus, that default to retrying very quickly, making recovering from an outage easier.
The feature was originally added as experimental in Mimir 2.11.&lt;/p&gt;
&lt;p&gt;Incoming OTLP requests were previously size-limited with the distributor&amp;rsquo;s &lt;code&gt;-distributor.max-recv-msg-size&lt;/code&gt; configuration.
The distributor has a new &lt;code&gt;-distributor.max-otlp-request-size&lt;/code&gt; configuration for limiting OTLP requests. The default value is 100 MiB.&lt;/p&gt;
&lt;p&gt;Ingesters can be marked as read-only as part of their downscaling procedure. The new &lt;code&gt;prepare-instance-ring-downscale&lt;/code&gt; endpoint updates the read-only
status of an ingester in the ring.&lt;/p&gt;
&lt;h2 id=&#34;important-changes&#34;&gt;Important changes&lt;/h2&gt;
&lt;p&gt;In Grafana Mimir 2.14, the following behavior has changed:&lt;/p&gt;
&lt;p&gt;When running a remote read request, the querier honors the time range specified in the read hints.&lt;/p&gt;
&lt;p&gt;The default inactivity timeout of active series in ingesters, controlled by the &lt;code&gt;-ingester.active-series-metrics-idle-timeout&lt;/code&gt; configuration,
is increased from &lt;code&gt;10m&lt;/code&gt; to &lt;code&gt;20m&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;The following featues of store-gateway are changed: &lt;code&gt;-blocks-storage.bucket-store.max-concurrent-queue-timeout&lt;/code&gt; is set to five seconds;
&lt;code&gt;-blocks-storage.bucket-store.index-header.lazy-loading-concurrency-queue-timeout&lt;/code&gt; is set to five seconds;
&lt;code&gt;-blocks-storage.bucket-store.max-concurrent&lt;/code&gt; is set to 200;&lt;/p&gt;
&lt;p&gt;The experimental support for Redis caching is now deprecated and set to be removed in the next major release. Users are encouraged
to switch to use Memcached.&lt;/p&gt;
&lt;p&gt;The following deprecated configuration options were removed in this release:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The &lt;code&gt;-ingester.return-only-grpc-errors&lt;/code&gt; option in the ingester&lt;/li&gt;
&lt;li&gt;The &lt;code&gt;-ingester.client.circuit-breaker.*&lt;/code&gt; options in the ingester&lt;/li&gt;
&lt;li&gt;The &lt;code&gt;-ingester.limit-inflight-requests-using-grpc-method-limiter&lt;/code&gt; option in the ingester&lt;/li&gt;
&lt;li&gt;The &lt;code&gt;-ingester.client.report-grpc-codes-in-instrumentation-label-enabled&lt;/code&gt; option in the distributor and ruler&lt;/li&gt;
&lt;li&gt;The &lt;code&gt;-distributor.limit-inflight-requests-using-grpc-method-limiter&lt;/code&gt; option in the distributor&lt;/li&gt;
&lt;li&gt;The &lt;code&gt;-distributor.enable-otlp-metadata-storage&lt;/code&gt; option in the distributor&lt;/li&gt;
&lt;li&gt;The &lt;code&gt;-ruler.drain-notification-queue-on-shutdown&lt;/code&gt; option in the ruler&lt;/li&gt;
&lt;li&gt;The &lt;code&gt;-querier.max-query-into-future&lt;/code&gt; option in the querier&lt;/li&gt;
&lt;li&gt;The &lt;code&gt;-querier.prefer-streaming-chunks-from-store-gateways&lt;/code&gt; option in the querier and the store-gateway&lt;/li&gt;
&lt;li&gt;The &lt;code&gt;-query-scheduler.use-multi-algorithm-query-queue&lt;/code&gt; option in the querier-scheduler&lt;/li&gt;
&lt;li&gt;The YAML configuration &lt;code&gt;frontend.align_queries_with_step&lt;/code&gt; in the query-frontend&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;experimental-features&#34;&gt;Experimental features&lt;/h2&gt;
&lt;p&gt;Grafana Mimir 2.14 includes some features that are experimental and disabled by default.
Use these features with caution and report any issues that you encounter:&lt;/p&gt;
&lt;p&gt;The ingester added an experimental &lt;code&gt;-ingester.ignore-ooo-exemplars&lt;/code&gt; configuration. When set, out-of-order exemplars are no longer reported
to the remote write client.&lt;/p&gt;
&lt;p&gt;The querier supports the experimental &lt;code&gt;limitk()&lt;/code&gt; and &lt;code&gt;limit_ratio()&lt;/code&gt; PromQL functions. This feature is disabled by default,
but you can enable it with the &lt;code&gt;-querier.promql-experimental-functions-enabled=true&lt;/code&gt; setting in the query-frontend and the querier.&lt;/p&gt;
&lt;h2 id=&#34;bug-fixes&#34;&gt;Bug fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Alertmanager: fix configuration validation gap around unreferenced templates.&lt;/li&gt;
&lt;li&gt;Alertmanager: fix goroutine leak when stored configuration fails to apply and there is no existing tenant alertmanager.&lt;/li&gt;
&lt;li&gt;Alertmanager: fix receiver firewall to detect &lt;code&gt;0.0.0.0&lt;/code&gt; and IPv6 interface-local multicast address as local addresses.&lt;/li&gt;
&lt;li&gt;Alertmanager: fix per-tenant silence limits not reloaded during runtime.&lt;/li&gt;
&lt;li&gt;Alertmanager: fix bugs in silences that could cause an existing silence to expire/be deleted when updating the silence fails. This could happen when the updated silence was invalid or exceeded limits.&lt;/li&gt;
&lt;li&gt;Alertmanager: fix help message for utf-8-strict-mode.&lt;/li&gt;
&lt;li&gt;Compactor: fix a race condition between different compactor replicas that may cause a deleted block to be referenced as non-deleted in the bucket index.&lt;/li&gt;
&lt;li&gt;Configuration: multi-line environment variables are flattened during injection to be compatible with YAML syntax.&lt;/li&gt;
&lt;li&gt;HA Tracker: store correct timestamp for the last-received request from the elected replica.&lt;/li&gt;
&lt;li&gt;Ingester: fix the sporadic &lt;code&gt;not found&lt;/code&gt; error causing an internal server error if label names are queried with matchers during head compaction.&lt;/li&gt;
&lt;li&gt;Ingester, store-gateway: fix case insensitive regular expressions not correctly matching some Unicode characters.&lt;/li&gt;
&lt;li&gt;Ingester: fixed timestamp reported in the &amp;ldquo;the sample has been rejected because its timestamp is too old&amp;rdquo; error when the write request contains only histograms.&lt;/li&gt;
&lt;li&gt;Query-frontend: fix &lt;code&gt;-querier.max-query-lookback&lt;/code&gt; and &lt;code&gt;-compactor.blocks-retention-period&lt;/code&gt; enforcement in query-frontend when one of the two is not set.&lt;/li&gt;
&lt;li&gt;Query-frontend: &amp;ldquo;query stats&amp;rdquo; log includes the actual &lt;code&gt;status_code&lt;/code&gt; when the request fails due to an error occurring in the query-frontend itself.&lt;/li&gt;
&lt;li&gt;Query-frontend: ensure that internal errors result in an HTTP 500 response code instead of a 422 response code.&lt;/li&gt;
&lt;li&gt;Query-frontend: return annotations generated during evaluation of sharded queries.&lt;/li&gt;
&lt;li&gt;Query-scheduler: fix a panic in request queueing.&lt;/li&gt;
&lt;li&gt;Querier: fix the issue where &amp;ldquo;context canceled&amp;rdquo; is logged for trace spans for requests to store-gateways that return no series when chunks streaming is enabled.&lt;/li&gt;
&lt;li&gt;Querier: fix issue where queries can return incorrect results if a single store-gateway returns overlapping chunks for a series.&lt;/li&gt;
&lt;li&gt;Querier: do not return &lt;code&gt;grpc: the client connection is closing&lt;/code&gt; errors as HTTP &lt;code&gt;499&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Querier: fix issue where some native histogram-related warnings were not emitted when &lt;code&gt;rate()&lt;/code&gt; was used over native histograms.&lt;/li&gt;
&lt;li&gt;Querier: fix invalid query results when multiple chunks are merged.&lt;/li&gt;
&lt;li&gt;Querier: support optional start and end times on &lt;code&gt;/prometheus/api/v1/labels&lt;/code&gt;, &lt;code&gt;/prometheus/api/v1/label/&amp;lt;label&amp;gt;/values&lt;/code&gt;, and &lt;code&gt;/prometheus/api/v1/series&lt;/code&gt; when &lt;code&gt;max_query_into_future: 0&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Querier: fix issue where both recently compacted blocks and their source blocks can be skipped during querying if store-gateways are restarting.&lt;/li&gt;
&lt;li&gt;Ruler: add support for draining any outstanding alert notifications before shutting down. Enable this setting with the &lt;code&gt;-ruler.drain-notification-queue-on-shutdown=true&lt;/code&gt; CLI flag.&lt;/li&gt;
&lt;li&gt;Store-gateway: fixed a case where, on a quick subsequent restart, the previous lazy-loaded index header snapshot was overwritten by a partially loaded one.&lt;/li&gt;
&lt;li&gt;Store-gateway: store sparse index headers atomically to disk.&lt;/li&gt;
&lt;li&gt;Ruler: map invalid org-id errors to the 400 status code.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;helm-chart-improvements&#34;&gt;Helm chart improvements&lt;/h3&gt;
&lt;p&gt;The Grafana Mimir and Grafana Enterprise Metrics Helm charts are released independently.
Refer to the &lt;a href=&#34;/docs/helm-charts/mimir-distributed/latest/&#34;&gt;Grafana Mimir Helm chart documentation&lt;/a&gt;.&lt;/p&gt;
]]></content><description>&lt;h1 id="grafana-mimir-version-214-release-notes">Grafana Mimir version 2.14 release notes&lt;/h1>
&lt;!-- vale Grafana.GoogleWill = NO -->
&lt;!-- vale Grafana.Timeless = NO -->
&lt;!-- Release notes are often future focused -->
&lt;p>Grafana Labs is excited to announce version 2.14 of Grafana Mimir.&lt;/p></description></item><item><title>Grafana Mimir version 2.15 release notes</title><link>https://grafana.com/docs/mimir/v3.1.x/release-notes/v2.15/</link><pubDate>Wed, 03 Jun 2026 09:01:40 +0200</pubDate><guid>https://grafana.com/docs/mimir/v3.1.x/release-notes/v2.15/</guid><content><![CDATA[&lt;h1 id=&#34;grafana-mimir-version-215-release-notes&#34;&gt;Grafana Mimir version 2.15 release notes&lt;/h1&gt;
&lt;!-- vale Grafana.GoogleWill = NO --&gt;
&lt;!-- vale Grafana.Timeless = NO --&gt;
&lt;!-- Release notes are often future focused --&gt;
&lt;p&gt;Grafana Labs is excited to announce version 2.15 of Grafana Mimir.&lt;/p&gt;
&lt;p&gt;The highlights that follow include the top features, enhancements, and bug fixes in this release.
For the complete list of changes, refer to the &lt;a href=&#34;https://github.com/grafana/mimir/blob/main/CHANGELOG.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;CHANGELOG&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;features-and-enhancements&#34;&gt;Features and enhancements&lt;/h2&gt;
&lt;p&gt;S2 compression for gRPC is now supported using the following flags:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;-alertmanager.alertmanager-client.grpc-compression=s2&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-ingester.client.grpc-compression=s2&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-querier.frontend-client.grpc-compression=s2&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-querier.scheduler-client.grpc-compression=s2&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-query-frontend.grpc-client-config.grpc-compression=s2&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-query-scheduler.grpc-client-config.grpc-compression=s2&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-ruler.client.grpc-compression=s2&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-ruler.query-frontend.grpc-client-config.grpc-compression=s2&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Distributors now support &lt;code&gt;lz4&lt;/code&gt; OTLP compression, and you can deploy them in multiple availability zones.&lt;/p&gt;
&lt;p&gt;The ruler&amp;rsquo;s &lt;code&gt;&amp;lt;prometheus-http-prefix&amp;gt;/api/v1/rules&lt;/code&gt; endpoint now supports the &lt;code&gt;exclude_alerts&lt;/code&gt;, &lt;code&gt;group_limit&lt;/code&gt;, and &lt;code&gt;group_next_token&lt;/code&gt; parameters.&lt;/p&gt;
&lt;p&gt;mimirtool&amp;rsquo;s &lt;code&gt;analyze ruler&lt;/code&gt; and &lt;code&gt;analyze prometheus&lt;/code&gt; commands now support bearer tokens.&lt;/p&gt;
&lt;p&gt;You can now tune HTTP client settings for GCS and Azure backends via an &lt;code&gt;http&lt;/code&gt; block or corresponding CLI flags.&lt;/p&gt;
&lt;p&gt;The compactor now refreshes deletion marks concurrently when updating the bucket index.&lt;/p&gt;
&lt;p&gt;You can now set the number of Memcached replicas for each type of cache using configuration settings when using jsonnet.&lt;/p&gt;
&lt;h2 id=&#34;important-changes&#34;&gt;Important changes&lt;/h2&gt;
&lt;p&gt;In Grafana Mimir 2.15, the following behavior has changed:&lt;/p&gt;
&lt;p&gt;The following alertmanager metrics are not exported for a &lt;code&gt;user&lt;/code&gt; label when the metric value is zero:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;cortex_alertmanager_alerts_received_total&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;cortex_alertmanager_alerts_invalid_total&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;cortex_alertmanager_partial_state_merges_total&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;cortex_alertmanager_partial_state_merges_failed_total&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;cortex_alertmanager_state_replication_total&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;cortex_alertmanager_state_replication_failed_total&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;cortex_alertmanager_alerts&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;cortex_alertmanager_silences&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;PromQL compatibility has been upgraded from Prometheus 2.0 to 3.0. For more details, refer to the &lt;a href=&#34;https://prometheus.io/docs/prometheus/3.0/migration/#promql&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Prometheus documentation&lt;/a&gt;. The following changes are of note:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The &lt;code&gt;.&lt;/code&gt; pattern in regular expressions in PromQL now matches newline characters.&lt;/li&gt;
&lt;li&gt;Lookback and range selectors are left-open and right-closed. They were previously left-closed and right-closed.&lt;/li&gt;
&lt;li&gt;Native histograms now use exponential interpolation.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Backwards compatibility in dashboards and alerts for &lt;code&gt;thanos_memcached_&lt;/code&gt;-prefixed metrics has been removed. These metrics were removed in 2.12 in favor of &lt;code&gt;thanos_cache_&lt;/code&gt;-prefixed metrics.&lt;/p&gt;
&lt;p&gt;Experimental support for Redis as a cache backend has been removed from jsonnet.&lt;/p&gt;
&lt;p&gt;The following deprecated configuration options were removed in this release:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;-distributor.direct-otlp-translation-enabled&lt;/code&gt;, which has been enabled by default since 2.13 and is now considered stable.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-query-scheduler.prioritize-query-components&lt;/code&gt;, which is now always enabled.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-api.get-request-for-ingester-shutdown-enabled&lt;/code&gt;, a deprecated experimental flag which has been marked for removal in 2.15.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;experimental-features&#34;&gt;Experimental features&lt;/h2&gt;
&lt;p&gt;Grafana Mimir 2.15 includes some features that are experimental and disabled by default.
Use these features with caution and report any issues that you encounter:&lt;/p&gt;
&lt;p&gt;You can now enable Mimir&amp;rsquo;s experimental PromQL engine with &lt;code&gt;-querier.query-engine=mimir&lt;/code&gt;. This new engine provides improved performance and reduced querier resource consumption. However, it only supports a subset of all PromQL features. It falls back to the regular Prometheus engine for queries containing unsupported features.&lt;/p&gt;
&lt;p&gt;You can now use the query-frontend to cache non-transient errors using the experimental flags &lt;code&gt;-query-frontend.cache-errors&lt;/code&gt; and &lt;code&gt;-query-frontend.results-cache-ttl-for-errors&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;The query-frontend and querier both support an experimental PromQL function, &lt;code&gt;double_exponential_smoothing&lt;/code&gt;, which you can enable by setting &lt;code&gt;-querier.promql-experimental-functions-enabled=true&lt;/code&gt; and &lt;code&gt;-query-frontend.promql-experimental-functions-enabled=true&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;The ingester now supports out-of-order native histogram ingestion via the flag &lt;code&gt;-ingester.ooo-native-histograms-ingestion-enabled&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;The ingester can now build 24h blocks for out-of-order data which is more than 24 hours old, using the setting &lt;code&gt;-blocks-storage.tsdb.bigger-out-of-order-blocks-for-old-samples&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;The ruler now supports caching the contents of rule groups via the setting &lt;code&gt;-ruler-storage.cache.rule-group-enabled&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;The distributor now supports promotion of OTel resource attributes to labels via the setting &lt;code&gt;-distributor.otel-promote-resource-attributes&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id=&#34;bug-fixes&#34;&gt;Bug fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Alerts: Fix autoscaling metrics joins in &lt;code&gt;MimirAutoscalerNotActive&lt;/code&gt; when series churn.&lt;/li&gt;
&lt;li&gt;Alerts: Exclude failed cache &amp;ldquo;add&amp;rdquo; operations from alerting since failures are expected in normal operation.&lt;/li&gt;
&lt;li&gt;Alerts: Exclude read-only replicas from &lt;code&gt;IngesterInstanceHasNoTenants&lt;/code&gt; alert.&lt;/li&gt;
&lt;li&gt;Alerts: Use resident set memory for the &lt;code&gt;EtcdAllocatingTooMuchMemory&lt;/code&gt; alert so that ephemeral file cache memory doesn&amp;rsquo;t cause the alert to misfire.&lt;/li&gt;
&lt;li&gt;Dashboards: Fix autoscaling metrics joins when series churn.&lt;/li&gt;
&lt;li&gt;Distributor: Fix pooling buffer reuse logic when &lt;code&gt;-distributor.max-request-pool-buffer-size&lt;/code&gt; is set.&lt;/li&gt;
&lt;li&gt;Ingester: Fix issue where active series requests error when encountering a stale posting.&lt;/li&gt;
&lt;li&gt;Ingester: Fix race condition in per-tenant TSDB creation.&lt;/li&gt;
&lt;li&gt;Ingester: Fix race condition in exemplar adding.&lt;/li&gt;
&lt;li&gt;Ingester: Fix race condition in native histogram appending.&lt;/li&gt;
&lt;li&gt;Ingester: Fix bug in concurrent fetching where a failure to list topics on startup would cause an invalid topic ID (0x00000000000000000000000000000000).&lt;/li&gt;
&lt;li&gt;Ingester: Fix data loss bug in the experimental ingest storage when a Kafka Fetch is split into multiple requests and some of them return an error.&lt;/li&gt;
&lt;li&gt;Ingester: Fix bug where chunks could have one unnecessary zero byte at the end.&lt;/li&gt;
&lt;li&gt;OTLP: Support integer exemplar value type.&lt;/li&gt;
&lt;li&gt;OTLP receiver: Preserve colons and combine multiple consecutive underscores into one when generating metric names in suffix adding mode (&lt;code&gt;-distributor.otel-metric-suffixes-enabled&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;Prometheus: Fix issue where negation of native histograms (e.g. &lt;code&gt;-some_native_histogram_series&lt;/code&gt;) did nothing.&lt;/li&gt;
&lt;li&gt;Prometheus: Always return unknown hint for first sample in non-gauge native histograms chunk to avoid incorrect counter reset hints when merging chunks from different sources.&lt;/li&gt;
&lt;li&gt;Prometheus: Ensure native histograms counter reset hints are corrected when merging results from different sources.&lt;/li&gt;
&lt;li&gt;PromQL: Fix issue where functions such as &lt;code&gt;rate()&lt;/code&gt; over native histograms could return incorrect values if a float stale marker was present in the selected range.&lt;/li&gt;
&lt;li&gt;PromQL: &lt;code&gt;round&lt;/code&gt; now removes the metric name again.&lt;/li&gt;
&lt;li&gt;PromQL: Fix issue where &lt;code&gt;metric might not be a counter, name does not end in _total/_sum/_count/_bucket&lt;/code&gt; annotation would be emitted even if &lt;code&gt;rate&lt;/code&gt; or &lt;code&gt;increase&lt;/code&gt; did not have enough samples to compute a result.&lt;/li&gt;
&lt;li&gt;Querier: Fix the behavior of binary operators between native histograms and floats.&lt;/li&gt;
&lt;li&gt;Querier: Fix stddev&#43;stdvar aggregations to always ignore native histograms, and to treat infinity consistently.&lt;/li&gt;
&lt;li&gt;Query-frontend: Fix issue where sharded queries could return annotations with incorrect or confusing position information.&lt;/li&gt;
&lt;li&gt;Query-frontend: Fix issue where downstream consumers may not generate correct cache keys for experimental error caching.&lt;/li&gt;
&lt;li&gt;Query-frontend: Support &lt;code&gt;X-Read-Consistency-Offsets&lt;/code&gt; on labels queries too.&lt;/li&gt;
&lt;li&gt;Ruler: Fix issue when using the experimental &lt;code&gt;-ruler.max-independent-rule-evaluation-concurrency&lt;/code&gt; feature, where the ruler could panic as it updates a running ruleset or shutdowns.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;helm-chart-improvements&#34;&gt;Helm chart improvements&lt;/h3&gt;
&lt;p&gt;The Grafana Mimir and Grafana Enterprise Metrics Helm charts are released independently.
Refer to the &lt;a href=&#34;/docs/helm-charts/mimir-distributed/latest/&#34;&gt;Grafana Mimir Helm chart documentation&lt;/a&gt;.&lt;/p&gt;
]]></content><description>&lt;h1 id="grafana-mimir-version-215-release-notes">Grafana Mimir version 2.15 release notes&lt;/h1>
&lt;!-- vale Grafana.GoogleWill = NO -->
&lt;!-- vale Grafana.Timeless = NO -->
&lt;!-- Release notes are often future focused -->
&lt;p>Grafana Labs is excited to announce version 2.15 of Grafana Mimir.&lt;/p></description></item><item><title>Grafana Mimir version 2.16 release notes</title><link>https://grafana.com/docs/mimir/v3.1.x/release-notes/v2.16/</link><pubDate>Wed, 03 Jun 2026 09:01:40 +0200</pubDate><guid>https://grafana.com/docs/mimir/v3.1.x/release-notes/v2.16/</guid><content><![CDATA[&lt;h1 id=&#34;grafana-mimir-version-216-release-notes&#34;&gt;Grafana Mimir version 2.16 release notes&lt;/h1&gt;
&lt;!-- vale Grafana.GoogleWill = NO --&gt;
&lt;!-- vale Grafana.Timeless = NO --&gt;
&lt;!-- Release notes are often future focused --&gt;
&lt;p&gt;Grafana Labs is excited to announce version 2.16 of Grafana Mimir.&lt;/p&gt;
&lt;p&gt;The highlights that follow include the top features, enhancements, and bug fixes in this release.
For the complete list of changes, refer to the &lt;a href=&#34;https://github.com/grafana/mimir/blob/main/CHANGELOG.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;CHANGELOG&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;features-and-enhancements&#34;&gt;Features and enhancements&lt;/h2&gt;
&lt;p&gt;In rulers, when rule concurrency is enabled for a rule group, its rules are now reordered and run in batches based on their dependencies.
This increases the number of rules that can run concurrently.
Note that the global and tenant-specific limits around the number of rule groups and rules per group still apply.&lt;/p&gt;
&lt;p&gt;Using &lt;code&gt;mimirtool&lt;/code&gt; to analyze Grafana dashboards now supports bar chart, pie chart, state timeline, status history, histogram, candlestick, canvas, flame graph, geomap, node graph, trend, and XY chart panels.&lt;/p&gt;
&lt;h2 id=&#34;important-changes&#34;&gt;Important changes&lt;/h2&gt;
&lt;p&gt;In Grafana Mimir 2.16, the following behavior has changed:&lt;/p&gt;
&lt;p&gt;Grafana Mimir only provides container images based on &lt;a href=&#34;https://github.com/GoogleContainerTools/distroless&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;distroless&lt;/a&gt; images. Alpine Linux-based container images were deprecated in the 2.12 release and are no longer built.&lt;/p&gt;
&lt;p&gt;How experimental PromQL functions are enabled has changed.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The experimental CLI flags &lt;code&gt;-querier.promql-experimental-functions-enabled&lt;/code&gt; and &lt;code&gt;-query-frontend.block-promql-experimental-functions&lt;/code&gt; and their respective YAML configurations have been removed from query-frontends and queriers.&lt;/li&gt;
&lt;li&gt;Experimental PromQL functions are disabled by default. You can enable them using only the &lt;code&gt;enabled_promql_experimental_functions&lt;/code&gt; per-tenant setting.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Support for native histograms and out-of-order native histograms is enabled by default in ingesters.&lt;/p&gt;
&lt;p&gt;Distributors discard float and histogram samples with duplicated timestamps from each timeseries in a request before the request is forwarded to ingesters.
Discarded samples are tracked by &lt;code&gt;cortex_discarded_samples_total&lt;/code&gt; metrics with the reason &lt;code&gt;sample_duplicate_timestamp&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id=&#34;experimental-features&#34;&gt;Experimental features&lt;/h2&gt;
&lt;p&gt;Grafana Mimir 2.16 includes some features that are experimental and disabled by default.
Use these features with caution and report any issues that you encounter:&lt;/p&gt;
&lt;p&gt;Distributors now include experimental support for the Influx &lt;a href=&#34;https://docs.influxdata.com/influxdb/cloud/reference/syntax/line-protocol/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;line protocol&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Query-frontends now include experimental support to &amp;ldquo;spin off&amp;rdquo; subqueries as actual range queries, so that they benefit from query acceleration techniques such as sharding, splitting, and caching.&lt;/p&gt;
&lt;h2 id=&#34;bug-fixes&#34;&gt;Bug fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Distributor: Use a boolean to track changes while merging the ReplicaDesc components, rather than comparing the objects directly. #10185&lt;/li&gt;
&lt;li&gt;Querier: Fix timeout responding to the query-frontend when the response size is within a few hundred bytes of &lt;code&gt;-querier.frontend-client.grpc-max-send-msg-size&lt;/code&gt;. #10154&lt;/li&gt;
&lt;li&gt;Query-frontend and querier: Show warning and info annotations in some cases where they were missing (if a lazy querier was used). #10277&lt;/li&gt;
&lt;li&gt;Query-frontend: Fix an issue where transient errors are inadvertently cached. #10537 #10631&lt;/li&gt;
&lt;li&gt;Ruler: Fix indeterminate rules always, instead of never, running concurrently when &lt;code&gt;-ruler.max-independent-rule-evaluation-concurrency&lt;/code&gt; is set. &lt;a href=&#34;https://github.com/prometheus/prometheus/pull/15560&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;https://github.com/prometheus/prometheus/pull/15560&lt;/a&gt; #10258&lt;/li&gt;
&lt;li&gt;PromQL: Fix various UTF-8 bugs related to quoting. &lt;a href=&#34;https://github.com/prometheus/prometheus/pull/15531&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;https://github.com/prometheus/prometheus/pull/15531&lt;/a&gt; #10258&lt;/li&gt;
&lt;li&gt;Ruler: Fix an issue when using the experimental &lt;code&gt;-ruler.max-independent-rule-evaluation-concurrency&lt;/code&gt; feature, where if a rule group was eligible for concurrency, it would flap between running concurrently or not based on the time it took after running concurrently. #9726 #10189&lt;/li&gt;
&lt;li&gt;Mimirtool: &lt;code&gt;remote-read&lt;/code&gt; commands now return data. #10286&lt;/li&gt;
&lt;li&gt;PromQL: Fix deriv, predict_linear and double_exponential_smoothing with histograms &lt;a href=&#34;https://github.com/prometheus/prometheus/pull/15686&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;https://github.com/prometheus/prometheus/pull/15686&lt;/a&gt; #10383&lt;/li&gt;
&lt;li&gt;MQE: Fix deriv with histograms. #10383&lt;/li&gt;
&lt;li&gt;PromQL: Fix &amp;lt;aggr_over_time&amp;gt; functions with histograms. &lt;a href=&#34;https://github.com/prometheus/prometheus/pull/15711&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;https://github.com/prometheus/prometheus/pull/15711&lt;/a&gt; #10400&lt;/li&gt;
&lt;li&gt;MQE: Fix &amp;lt;aggr_over_time&amp;gt; functions with histograms. #10400&lt;/li&gt;
&lt;li&gt;Distributor: Return HTTP status 415, Unsupported Media Type, instead of 200, Success, for Remote Write 2.0 until we support it. #10423 #10916&lt;/li&gt;
&lt;li&gt;Query-frontend: Add &lt;code&gt;-query-frontend.prom2-range-compat&lt;/code&gt; flag and corresponding YAML to rewrite queries with ranges that worked in Prometheus 2 but are invalid in Prometheus 3. #10445 #10461 #10502&lt;/li&gt;
&lt;li&gt;Distributor: Fix edge case at the HA-tracker with memberlist as KVStore, where when a replica in the KVStore is marked as deleted but not yet removed, it fails to update the KVStore. #10443&lt;/li&gt;
&lt;li&gt;Distributor: Fix panics in &lt;code&gt;DurationWithJitter&lt;/code&gt; util functions when computed variance is zero. #10507&lt;/li&gt;
&lt;li&gt;Ingester: Fixed a race condition in the &lt;code&gt;PostingsForMatchers&lt;/code&gt; cache that may have infrequently returned expired cached postings. #10500&lt;/li&gt;
&lt;li&gt;Distributor: Report partially converted OTLP requests with status 400, Bad Request. #10588&lt;/li&gt;
&lt;li&gt;Ruler: Fix issue where rule evaluations could be missed while shutting down a ruler instance if that instance owns many rule groups. prometheus/prometheus#15804 #10762&lt;/li&gt;
&lt;li&gt;Ingester: Add additional check on reactive limiter queue sizes. #10722&lt;/li&gt;
&lt;li&gt;TSDB: Fix unknown series errors and possible lost data during WAL replay when series are removed from the head due to inactivity and reappear before the next WAL checkpoint. &lt;a href=&#34;https://github.com/prometheus/prometheus/pull/16060&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;https://github.com/prometheus/prometheus/pull/16060&lt;/a&gt; #10824&lt;/li&gt;
&lt;li&gt;Querier: Fix issue where &lt;code&gt;label_join&lt;/code&gt; could incorrectly return multiple series with the same labels rather than failing with &lt;code&gt;vector cannot contain metrics with the same labelset&lt;/code&gt;. &lt;a href=&#34;https://github.com/prometheus/prometheus/pull/15975&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;https://github.com/prometheus/prometheus/pull/15975&lt;/a&gt; #10826&lt;/li&gt;
&lt;li&gt;Querier: Fix issue where counter resets on native histograms could be incorrectly under or over-counted when using subqueries. &lt;a href=&#34;https://github.com/prometheus/prometheus/pull/15987&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;https://github.com/prometheus/prometheus/pull/15987&lt;/a&gt; #10871&lt;/li&gt;
&lt;li&gt;Ingester: Fix goroutines and memory leak when experimental ingest storage is enabled and a server-side error occurs during metrics ingestion. #10915&lt;/li&gt;
&lt;li&gt;Mimirtool: Fix issue where &lt;code&gt;MIMIR_HTTP_PREFIX&lt;/code&gt; environment variable was ignored and the value from &lt;code&gt;MIMIR_MIMIR_HTTP_PREFIX&lt;/code&gt; was used instead. #10207&lt;/li&gt;
&lt;li&gt;Update to Go v1.23.9 to address &lt;a href=&#34;https://nvd.nist.gov/vuln/detail/CVE-2025-22871&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;CVE-2025-22871&lt;/a&gt;. #11543&lt;/li&gt;
&lt;li&gt;Update &lt;code&gt;golang.org/x/net&lt;/code&gt; to v0.38.0 to address &lt;a href=&#34;https://nvd.nist.gov/vuln/detail/CVE-2025-22872&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;CVE-2025-22872&lt;/a&gt;. #11281&lt;/li&gt;
&lt;li&gt;Query-frontend: Fix a panic in monolithic mode caused by a clash in labels of the &lt;code&gt;cortex_client_invalid_cluster_validation_label_requests_total&lt;/code&gt; metric definition. #11455&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2162&#34;&gt;2.16.2&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Security: Update to Go v1.23.12 to address &lt;a href=&#34;https://nvd.nist.gov/vuln/detail/CVE-2025-22871&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;CVE-2025-22871&lt;/a&gt;, &lt;a href=&#34;https://nvd.nist.gov/vuln/detail/CVE-2025-4673&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;CVE-2025-4673&lt;/a&gt;, &lt;a href=&#34;https://nvd.nist.gov/vuln/detail/CVE-2025-0913&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;CVE-2025-0913&lt;/a&gt;. #12582&lt;/li&gt;
&lt;li&gt;Security: Update Docker base images for tools from &lt;code&gt;alpine:3.21.3&lt;/code&gt; to &lt;code&gt;alpine:3.21.5&lt;/code&gt; to address &lt;a href=&#34;https://nvd.nist.gov/vuln/detail/CVE-2025-9230&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;CVE-2025-9230&lt;/a&gt;, &lt;a href=&#34;https://nvd.nist.gov/vuln/detail/CVE-2025-9231&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;CVE-2025-9231&lt;/a&gt;, &lt;a href=&#34;https://nvd.nist.gov/vuln/detail/CVE-2025-9232&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;CVE-2025-2025-9232&lt;/a&gt;. #12990&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;helm-chart-improvements&#34;&gt;Helm chart improvements&lt;/h3&gt;
&lt;p&gt;The Grafana Mimir and Grafana Enterprise Metrics Helm chart is released independently.
Refer to the &lt;a href=&#34;/docs/helm-charts/mimir-distributed/latest/&#34;&gt;Grafana Mimir Helm chart documentation&lt;/a&gt;.&lt;/p&gt;
]]></content><description>&lt;h1 id="grafana-mimir-version-216-release-notes">Grafana Mimir version 2.16 release notes&lt;/h1>
&lt;!-- vale Grafana.GoogleWill = NO -->
&lt;!-- vale Grafana.Timeless = NO -->
&lt;!-- Release notes are often future focused -->
&lt;p>Grafana Labs is excited to announce version 2.16 of Grafana Mimir.&lt;/p></description></item><item><title>Grafana Mimir version 2.17 release notes</title><link>https://grafana.com/docs/mimir/v3.1.x/release-notes/v2.17/</link><pubDate>Wed, 03 Jun 2026 09:01:40 +0200</pubDate><guid>https://grafana.com/docs/mimir/v3.1.x/release-notes/v2.17/</guid><content><![CDATA[&lt;h1 id=&#34;grafana-mimir-version-217-release-notes&#34;&gt;Grafana Mimir version 2.17 release notes&lt;/h1&gt;
&lt;!-- vale Grafana.GoogleWill = NO --&gt;
&lt;!-- vale Grafana.Timeless = NO --&gt;
&lt;!-- Release notes are often future focused --&gt;
&lt;p&gt;Grafana Labs is excited to announce version 2.17 of Grafana Mimir.&lt;/p&gt;
&lt;p&gt;The highlights that follow include the top features, enhancements, and bug fixes in this release.
For the complete list of changes, refer to the &lt;a href=&#34;https://github.com/grafana/mimir/blob/main/CHANGELOG.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;CHANGELOG&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;features-and-enhancements&#34;&gt;Features and enhancements&lt;/h2&gt;
&lt;p&gt;MQE is enabled by default in queriers. MQE provides benefits over the Prometheus engine, inluding reduced memory and CPU consumption and improved performance. To use the Prometheus engine instead of MQE, set &lt;code&gt;-querier.query-engine=prometheus&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Grafana Mimir now supports using the Mimir Query Engine (MQE) in query-frontends in addition to queriers. You can enable MQE in query-frontends by setting the experimental CLI flag &lt;code&gt;-query-frontend.query-engine=mimir&lt;/code&gt; or through the corresponding YAML option.&lt;/p&gt;
&lt;p&gt;You can export the &lt;code&gt;cortex_ingester_attributed_active_native_histogram_series&lt;/code&gt; and &lt;code&gt;cortex_ingester_attributed_active_native_histogram_buckets&lt;/code&gt; native histogram cost attribution metrics to a custom Prometheus registry with user-specified labels.&lt;/p&gt;
&lt;p&gt;Grafana Mimir supports converting OTel explicit bucket histograms to Prometheus native histograms with custom buckets using the &lt;code&gt;distributor.otel-convert-histograms-to-nhcb&lt;/code&gt; flag.&lt;/p&gt;
&lt;p&gt;The following experimental features have been removed:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The &lt;code&gt;max_cost_attribution_labels_per_user&lt;/code&gt; cost attribution limit&lt;/li&gt;
&lt;li&gt;Read-write deployment mode in the mixin&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;important-changes&#34;&gt;Important changes&lt;/h2&gt;
&lt;p&gt;In Grafana Mimir 2.17, the following behavior has changed:&lt;/p&gt;
&lt;p&gt;The following default configuration values now apply to the memberlist KV store:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Key&lt;/th&gt;
              &lt;th&gt;Value&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;memberlist.packet-dial-timeout&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;500ms&lt;/code&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;memberlist.packet-write-timeout&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;500ms&lt;/code&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;memberlist.max-concurrent-writes&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;5&lt;/code&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;memberlist.acquire-writer-timeout&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;1s&lt;/code&gt;&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;These values perform better but might cause long-running packets to be dropped in high-latency networks.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;-ruler-storage.cache.rule-group-enabled&lt;/code&gt; experimental CLI flag has been removed. Caching rule group contents is now always enabled when a cache is configured for the ruler.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;-ingester.ooo-native-histograms-ingestion-enabled&lt;/code&gt; CLI flag and corresponding &lt;code&gt;ooo_native_histograms_ingestion_enabled&lt;/code&gt; runtime configuration option have been removed. Out-of-order native histograms are now enabled whenever both native histogram and out-of-order ingestion is enabled.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;-ingester.stream-chunks-when-using-blocks&lt;/code&gt; CLI flag and corresponding &lt;code&gt;ingester_stream_chunks_when_using_blocks&lt;/code&gt; runtime configuration option have been deprecated and will be removed in a future release.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;cortex_distributor_label_values_with_newlines_total&lt;/code&gt; metric has been removed.&lt;/p&gt;
&lt;p&gt;In the distributor, &lt;code&gt;memberlist&lt;/code&gt; is marked as a stable option for backend storage for the high availability tracker. &lt;code&gt;etcd&lt;/code&gt; has been deprecated for this purpose.&lt;/p&gt;
&lt;h2 id=&#34;experimental-features&#34;&gt;Experimental features&lt;/h2&gt;
&lt;p&gt;Grafana Mimir 2.17 includes some features that are experimental.
Use these features with caution and report any issues that you encounter:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Prometheus Remote-Write 2.0 protocol.&lt;/li&gt;
&lt;li&gt;Duration expressions in PromQL. These are simple arithmetics on numbers in offset and range specification. For example, &lt;code&gt;rate(http_requests_total[5m * 2])&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Promoting OTel scope metadata, including name, version, schema URL, and attributes, to metric labels, prefixed with &lt;code&gt;otel_scope_&lt;/code&gt;. Enable this feature through the &lt;code&gt;-distributor.otel-promote-scope-metadata&lt;/code&gt; flag.&lt;/li&gt;
&lt;li&gt;Allowing primitive delta metrics ingestion through the OTLP endpoint with the &lt;code&gt;-distributor.otel-native-delta-ingestion&lt;/code&gt; option.&lt;/li&gt;
&lt;li&gt;Support for &lt;code&gt;sort_by_label&lt;/code&gt; and &lt;code&gt;sort_by_label_desc&lt;/code&gt; PromQL functions. Enable this feature through the &lt;code&gt;-query-frontend.enabled-promql-experimental-functions&lt;/code&gt; flag.&lt;/li&gt;
&lt;li&gt;Support for cluster validation in HTTP calls. When enabled, the HTTP server verifies if a request coming from an HTTP client comes from an expected cluster. Disabled by default. You can configure this validation with the following options:
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;-server.cluster-validation.label&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-server.cluster-validation.http.enabled&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-server.cluster-validation.http.soft-validation&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-server.cluster-validation.http.exclude-paths&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;bug-fixes&#34;&gt;Bug fixes&lt;/h2&gt;
&lt;p&gt;For a detailed list of bug fixes, refer to the &lt;a href=&#34;https://github.com/grafana/mimir/blob/main/CHANGELOG.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;CHANGELOG&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&#34;helm-chart-improvements&#34;&gt;Helm chart improvements&lt;/h3&gt;
&lt;p&gt;The Grafana Mimir and Grafana Enterprise Metrics Helm chart is released independently.
Refer to the &lt;a href=&#34;/docs/helm-charts/mimir-distributed/latest/&#34;&gt;Grafana Mimir Helm chart documentation&lt;/a&gt;.&lt;/p&gt;
]]></content><description>&lt;h1 id="grafana-mimir-version-217-release-notes">Grafana Mimir version 2.17 release notes&lt;/h1>
&lt;!-- vale Grafana.GoogleWill = NO -->
&lt;!-- vale Grafana.Timeless = NO -->
&lt;!-- Release notes are often future focused -->
&lt;p>Grafana Labs is excited to announce version 2.17 of Grafana Mimir.&lt;/p></description></item><item><title>Grafana Mimir version 3.0 release notes</title><link>https://grafana.com/docs/mimir/v3.1.x/release-notes/v3.0/</link><pubDate>Wed, 03 Jun 2026 09:01:40 +0200</pubDate><guid>https://grafana.com/docs/mimir/v3.1.x/release-notes/v3.0/</guid><content><![CDATA[&lt;h1 id=&#34;grafana-mimir-version-30-release-notes&#34;&gt;Grafana Mimir version 3.0 release notes&lt;/h1&gt;
&lt;!-- vale Grafana.GoogleWill = NO --&gt;
&lt;!-- vale Grafana.Timeless = NO --&gt;
&lt;!-- Release notes are often future focused --&gt;
&lt;p&gt;Grafana Labs is excited to announce version 3.0 of Grafana Mimir.&lt;/p&gt;
&lt;p&gt;The highlights that follow include the top features, enhancements, and bug fixes in this release. For the complete list of changes, refer to the &lt;a href=&#34;https://github.com/grafana/mimir/blob/main/CHANGELOG.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;CHANGELOG&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;features-and-enhancements&#34;&gt;Features and enhancements&lt;/h2&gt;
&lt;p&gt;Grafana Mimir version 3.0 includes the following key features and enhancements.&lt;/p&gt;
&lt;h3 id=&#34;ingest-storage-architecture&#34;&gt;Ingest storage architecture&lt;/h3&gt;
&lt;p&gt;Mimir 3.0 introduces ingest storage architecture, a next-generation architecture that separates the read and write paths using a Kafka-based ingest storage layer. In previous versions, the ingester handled both ingestion and querying, which could cause contention under heavy query loads. By introducing Kafka as an asynchronous buffer between ingestion and query, reads and writes now scale independently. This design improves ingestion stability, query performance, and operational flexibility for large deployments.&lt;/p&gt;
&lt;p&gt;Note that in Grafana Mimir version 3.0, classic architecture is still supported.&lt;/p&gt;
&lt;h3 id=&#34;mimir-query-engine-mqe&#34;&gt;Mimir Query Engine (MQE)&lt;/h3&gt;
&lt;p&gt;The Mimir Query Engine (MQE) is now the default query engine for all queriers and query-frontends. MQE is fully PromQL-compatible and processes data in a streaming fashion, reducing peak memory usage by up to 92% compared to the Prometheus engine. You can expect faster, more stable query performance and lower resource consumption under load.&lt;/p&gt;
&lt;h3 id=&#34;additional-improvements&#34;&gt;Additional improvements&lt;/h3&gt;
&lt;p&gt;Grafana Mimir 3.0 also includes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Optimizations to MQE for histogram queries and query rewrites&lt;/li&gt;
&lt;li&gt;Improvements to query planning in frontends and queriers&lt;/li&gt;
&lt;li&gt;General stability and performance updates across core components&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;important-changes&#34;&gt;Important changes&lt;/h2&gt;
&lt;p&gt;Grafana Mimir 3.0 introduces several updates that change default behavior and configuration. Review these changes before upgrading:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Ingest storage architecture: Grafana Mimir now uses a Kafka-based ingest storage layer that separates reads and writes. This change improves performance by altering data flow between components.&lt;/li&gt;
&lt;li&gt;MQE as the default engine: MQE replaces the Prometheus engine as the default query engine. To continue using the Prometheus engine, set &lt;code&gt;-querier.query-engine=prometheus&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Removal of experimental features: Some deprecated and experimental flags, including the read-write deployment mode, have been removed.&lt;/li&gt;
&lt;li&gt;Configuration updates: Some deprecated CLI flags and configuration options have been removed or renamed.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;experimental-features&#34;&gt;Experimental features&lt;/h2&gt;
&lt;p&gt;Grafana Mimir 3.0 includes some features that are experimental. Use these features with caution and report any issues that you encounter:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Prometheus Remote-Write 2.0 protocol&lt;/li&gt;
&lt;li&gt;PromQL duration expressions that allow simple arithmetic in range or offset values&lt;/li&gt;
&lt;li&gt;Cluster validation for HTTP requests (disabled by default, enable through &lt;code&gt;-server.cluster-validation.*&lt;/code&gt; flags)&lt;/li&gt;
&lt;li&gt;Native OTLP delta metric ingestion (disabled by default, enable through &lt;code&gt;-distributor.otel-native-delta-ingestion&lt;/code&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;bug-fixes&#34;&gt;Bug fixes&lt;/h2&gt;
&lt;p&gt;For a detailed list of bug fixes, refer to the &lt;a href=&#34;https://github.com/grafana/mimir/blob/main/CHANGELOG.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;CHANGELOG&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&#34;helm-chart-improvements&#34;&gt;Helm chart improvements&lt;/h3&gt;
&lt;p&gt;The Grafana Mimir Helm chart is released independently. Refer to the &lt;a href=&#34;/docs/helm-charts/mimir-distributed/latest/&#34;&gt;Grafana Mimir Helm chart documentation&lt;/a&gt;.&lt;/p&gt;
]]></content><description>&lt;h1 id="grafana-mimir-version-30-release-notes">Grafana Mimir version 3.0 release notes&lt;/h1>
&lt;!-- vale Grafana.GoogleWill = NO -->
&lt;!-- vale Grafana.Timeless = NO -->
&lt;!-- Release notes are often future focused -->
&lt;p>Grafana Labs is excited to announce version 3.0 of Grafana Mimir.&lt;/p></description></item><item><title>Grafana Mimir version 3.1 release notes</title><link>https://grafana.com/docs/mimir/v3.1.x/release-notes/v3.1/</link><pubDate>Wed, 03 Jun 2026 09:01:40 +0200</pubDate><guid>https://grafana.com/docs/mimir/v3.1.x/release-notes/v3.1/</guid><content><![CDATA[&lt;h1 id=&#34;grafana-mimir-version-31-release-notes&#34;&gt;Grafana Mimir version 3.1 release notes&lt;/h1&gt;
&lt;!-- vale Grafana.GoogleWill = NO --&gt;
&lt;!-- vale Grafana.Timeless = NO --&gt;
&lt;!-- Release notes are often future focused --&gt;
&lt;p&gt;Grafana Labs is excited to announce version 3.1 of Grafana Mimir.&lt;/p&gt;
&lt;p&gt;The highlights that follow include the top features, enhancements, and bug fixes in this release. For the complete list of changes, refer to the &lt;a href=&#34;https://github.com/grafana/mimir/blob/main/CHANGELOG.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;CHANGELOG&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;features-and-enhancements&#34;&gt;Features and enhancements&lt;/h2&gt;
&lt;p&gt;Grafana Mimir version 3.1 includes the following key features and enhancements.&lt;/p&gt;
&lt;h3 id=&#34;more-kafka-options-for-ingest-storage&#34;&gt;More Kafka options for Ingest storage&lt;/h3&gt;
&lt;p&gt;Ingest storage now supports additional ways to authenticate with Kafka through the new &lt;code&gt;-ingest-storage.kafka.sasl-mechanism&lt;/code&gt; flag, including SCRAM, OAUTHBEARER, and AWS MSK IAM authentication. In addition, new &lt;code&gt;-ingest-storage.kafka.tls*&lt;/code&gt; flags allow connecting to Kafka clusters over TLS, including mTLS. Refer to 
    &lt;a href=&#34;/docs/mimir/v3.1.x/configure/configure-kafka-backend/&#34;&gt;Kafka configuration&lt;/a&gt; for details.&lt;/p&gt;
&lt;p&gt;You can also configure multiple Kafka seed brokers via comma-separated values in &lt;code&gt;-ingest-storage.kafka.address&lt;/code&gt; and enable rack-aware consumption with &lt;code&gt;-ingest-storage.kafka.client-rack&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&#34;separate-ingestion-limits-by-tenant-metadata&#34;&gt;Separate ingestion limits by tenant metadata&lt;/h3&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;p&gt;Clients may pass tenant metadata in the &lt;code&gt;X-Scope-OrgID&lt;/code&gt; header using the format &lt;code&gt;tenantID:key1=value1:key2=value2&lt;/code&gt;, and operators may define per-metadata overrides in the runtime configuration.&lt;/p&gt;
&lt;h3 id=&#34;mimir-query-engine-mqe-improvements&#34;&gt;Mimir Query Engine (MQE) improvements&lt;/h3&gt;
&lt;p&gt;MQE continues to receive significant optimizations in this release:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Experimental extended range selector modifiers &lt;code&gt;smoothed&lt;/code&gt; and &lt;code&gt;anchored&lt;/code&gt;, enabled with &lt;code&gt;-query-frontend.enabled-promql-extended-range-selectors&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Optimization passes for common subexpression elimination, subset selector elimination, projection pushdown, and multi-aggregation without buffering.&lt;/li&gt;
&lt;li&gt;Improved per-query memory consumption limit enforcement in histogram and aggregation operations.&lt;/li&gt;
&lt;li&gt;Experimental support for splitting and caching intermediate results for functions over range vectors in instant queries.&lt;/li&gt;
&lt;li&gt;Experimental support for the &lt;code&gt;info()&lt;/code&gt; PromQL function.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;zone-aware-memberlist-routing&#34;&gt;Zone-aware memberlist routing&lt;/h3&gt;
&lt;p&gt;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 &lt;code&gt;-memberlist.zone-aware-routing.*&lt;/code&gt; flags.&lt;/p&gt;
&lt;h3 id=&#34;additional-improvements&#34;&gt;Additional improvements&lt;/h3&gt;
&lt;p&gt;Grafana Mimir 3.1 also includes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Store-gateways now verify CRC32 checksums for 1 out of every 128 chunks read from object storage and the chunks cache to detect corruption.&lt;/li&gt;
&lt;li&gt;GCS uploads are now optionally retryable, with configurable max retries per storage backend.&lt;/li&gt;
&lt;li&gt;Disk interaction has been removed when loading ruler rules. Rule evaluation failures now include a &lt;code&gt;reason&lt;/code&gt; label (&lt;code&gt;operator&lt;/code&gt; or &lt;code&gt;user&lt;/code&gt;) in &lt;code&gt;prometheus_rule_evaluation_failures_total&lt;/code&gt; for better error classification.&lt;/li&gt;
&lt;li&gt;Query blocking via &lt;code&gt;blocked_queries&lt;/code&gt; is now stable and no longer experimental, with support for blocking queries exceeding a time range duration (&lt;code&gt;time_range_longer_than&lt;/code&gt;) or with steps smaller than a threshold (&lt;code&gt;step_size_shorter_than&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;The per-tenant postings-for-matchers cache is now stable.&lt;/li&gt;
&lt;li&gt;Out-of-order ingestion support is now stable, configured via &lt;code&gt;-ingester.out-of-order-time-window&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;The &lt;code&gt;-alertmanager.utf8-strict-mode-enabled&lt;/code&gt; flag is now stable.&lt;/li&gt;
&lt;li&gt;The query-scheduler now drains the queue before exiting during shutdown.&lt;/li&gt;
&lt;li&gt;Distributors support zone-aware rate limiting via &lt;code&gt;-distributor.ring.instance-availability-zone&lt;/code&gt;, dividing the global ingestion rate by zones instead of total distributors.&lt;/li&gt;
&lt;li&gt;Default ingest storage configuration now enables concurrency settings for improved throughput.&lt;/li&gt;
&lt;li&gt;Optional per-tenant max limits for label name and label value requests via &lt;code&gt;max_label_names_limit&lt;/code&gt; and &lt;code&gt;max_label_values_limit&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Runtime configuration can now be loaded from HTTP URLs in addition to local files via &lt;code&gt;-runtime-config.file&lt;/code&gt;. This may reduce configuration propagation times.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;important-changes&#34;&gt;Important changes&lt;/h2&gt;
&lt;p&gt;Grafana Mimir 3.1 introduces several updates that change default behavior and configuration. Review these changes before upgrading:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Experimental support for disabling ring heartbeats and heartbeat timeouts has been removed.&lt;/li&gt;
&lt;li&gt;The &lt;code&gt;-target=flusher&lt;/code&gt; mode has been removed; use the &lt;code&gt;/ingester/flush&lt;/code&gt; HTTP endpoint instead.&lt;/li&gt;
&lt;li&gt;Uploaded TSDB blocks must now use v2 of the index file format. Store-gateways no longer generate index-headers from v1 index format blocks.&lt;/li&gt;
&lt;li&gt;Per-step stats are no longer supported when MQE is enabled. The &lt;code&gt;-query-frontend.cache-samples-processed-stats&lt;/code&gt; flag is deprecated and has no effect.&lt;/li&gt;
&lt;li&gt;The &lt;code&gt;-querier.response-streaming-enabled&lt;/code&gt; flag has been removed; active series responses are now always streamed.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;cortex_ingest_storage_writer_buffered_produce_bytes&lt;/code&gt; has been renamed to &lt;code&gt;cortex_ingest_storage_writer_buffered_produce_bytes_distribution&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Metric &lt;code&gt;cortex_ingester_owned_target_info_series&lt;/code&gt; has been removed.&lt;/li&gt;
&lt;li&gt;The &lt;code&gt;cost_attribution_labels&lt;/code&gt; configuration option has been removed; use &lt;code&gt;cost_attribution_labels_structured&lt;/code&gt; instead.&lt;/li&gt;
&lt;li&gt;The &lt;code&gt;minimum_step_size&lt;/code&gt; filter in &lt;code&gt;blocked_queries&lt;/code&gt; has been renamed to &lt;code&gt;step_size_shorter_than&lt;/code&gt;. Blocked queries configuration is now validated at load time.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-querier.prefer-availability-zone&lt;/code&gt; has been renamed to &lt;code&gt;-querier.prefer-availability-zones&lt;/code&gt; and now accepts a comma-separated list.&lt;/li&gt;
&lt;li&gt;The per-query memory consumption limit now considers buffered messages and spans all time-split sub-queries when MQE is enabled.&lt;/li&gt;
&lt;li&gt;The following flags have been removed:
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;-distributor.metric-relabeling-enabled&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-compactor.no-blocks-file-cleanup-enabled&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-compactor.in-memory-tenant-meta-cache-size&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-blocks-storage.bucket-store.index-header.eager-loading-startup-enabled&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;*.memcached.dns-ignore-startup-failures&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;experimental-features&#34;&gt;Experimental features&lt;/h2&gt;
&lt;p&gt;Grafana Mimir 3.1 includes some features that are experimental. Use these features with caution and report any issues that you encounter:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;New usage-tracker component to enforce series limits before data is ingested.&lt;/li&gt;
&lt;li&gt;Zone-aware memberlist routing to reduce cross-AZ data transfer.&lt;/li&gt;
&lt;li&gt;Query planning in query-frontends with distributed execution across queriers.&lt;/li&gt;
&lt;li&gt;MQE extended range selector modifiers (&lt;code&gt;smoothed&lt;/code&gt;, &lt;code&gt;anchored&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;MQE &lt;code&gt;info()&lt;/code&gt; function.&lt;/li&gt;
&lt;li&gt;MQE optimization passes: projection pushdown, multi-aggregation, subset selector elimination, common subexpression elimination for range vector expressions.&lt;/li&gt;
&lt;li&gt;Per-zone store-gateway shard size (&lt;code&gt;-store-gateway.tenant-shard-size-per-zone&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;Running ingesters with no tokens in the ring when ingest storage is enabled (&lt;code&gt;-ingester.ring.num-tokens=0&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;Per-sample HA deduplication (&lt;code&gt;-distributor.ha-tracker.per-sample-dedupe&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;Per-tenant early head compaction for ingesters based on owned series count.&lt;/li&gt;
&lt;li&gt;Store-gateway excluded zones (&lt;code&gt;-store-gateway.sharding-ring.excluded-zones&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;Controlling OTLP metric name suffix addition and translation strategy via request headers, gated by &lt;code&gt;-api.otlp-translation-headers-enabled&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Memberlist propagation delay tracker (&lt;code&gt;-memberlist.propagation-delay-tracker.enabled&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;Reporting the number of samples read per query in MQE.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;bug-fixes&#34;&gt;Bug fixes&lt;/h2&gt;
&lt;p&gt;For a detailed list of bug fixes, refer to the &lt;a href=&#34;https://github.com/grafana/mimir/blob/main/CHANGELOG.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;CHANGELOG&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&#34;helm-chart-improvements&#34;&gt;Helm chart improvements&lt;/h3&gt;
&lt;p&gt;The Grafana Mimir Helm chart is released independently. Refer to the &lt;a href=&#34;/docs/helm-charts/mimir-distributed/latest/&#34;&gt;Grafana Mimir Helm chart documentation&lt;/a&gt;.&lt;/p&gt;
]]></content><description>&lt;h1 id="grafana-mimir-version-31-release-notes">Grafana Mimir version 3.1 release notes&lt;/h1>
&lt;!-- vale Grafana.GoogleWill = NO -->
&lt;!-- vale Grafana.Timeless = NO -->
&lt;!-- Release notes are often future focused -->
&lt;p>Grafana Labs is excited to announce version 3.1 of Grafana Mimir.&lt;/p></description></item></channel></rss>