Open source

Grafana Mimir version 2.13 release notes

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

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

Features and enhancements

  • Improved CPU performance in processing queries with regular expressions that contain many alternations (for example foo|bar|baz|...).

  • Improved OTLP ingestion performance by using native translation, which reduces memory usage in the distributor by up to 30% and CPU usage by up to 8%.

  • Configurable S3 bucket lookup type improves interoperability with S3-compatible providers, such as Tencent and Alibaba. Configure lookup type via -<prefix>.s3.bucket-lookup-type or

  • Configuration of TLS for S3 buckets is now possible via -<prefix>.s3.http.* and* configuration options.

  • Mimirtool can now verify the validity of a Mimir runtime configuration file with the mimirtool runtime-config verify command.

  • Active series are now updated along with owned series. 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’ series limits. This feature is only enabled when -ingester.track-ingester-owned-series or -ingester.use-ingester-owned-series-for-limits are enabled.

  • Store-gateway can be configured to explicitly disable or enable tenants. 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.

  • Remote read (/prometheus/api/v1/read) is becoming a first-class endpoint in Mimir with support in query stats logs and query blocking in the query-frontend. More coming in future releases.

Additionally, the following previously experimental features are now considered stable:

  • Rules tenant federation via the source_tenants field in rule groups.
  • Enabling recording, and alerting rules evaluation on a per-tenant basis.
  • Limiting the number of tenants a federated query can query.

Important changes

In Grafana Mimir 2.13 the following behavior has changed:

  • The default Docker image grafana/mimir is now based on the distroless image See Debugging distroless container images for more details on how to work with distroless images.

  • Error logs in the ingester are now sampled at 10% by default. Sampled log lines contain (sampled 1/10). The cortex_discarded_samples_total metric still tracks all discarded samples.

  • Anonymous usage statistics now include actual CPU usage instead of available CPU cores.

  • 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.

The following deprecated configuration options are removed in Grafana Mimir 2.13:

  • The configuration option -log.buffered, which was deprecated in 2.11 and is now enabled by default.

Experimental features

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:

  • Experimental support for server-side circuit breakers in ingesters on read and write requests. This can be enabled using -ingester.push-circuit-breaker.enabled and options and further configured via the -ingester.push-circuit-breaker.* and* options.

The following configuration options are deprecated and will be removed in a future Grafana Mimir release:

  • evaluation_delay field in the rule group configuration has been deprecated. Please use query_offset instead.

Bug fixes

  • OTLP ingestion: translate all HTTP 5xx errors into one of 502, 503, or 504, so that the otel-collector retries the failed requests.
  • OTLP ingestion: return properly formatted protobuf error messages when ingestion fails.
  • OTLP ingestion: generate target_info metric only when there are metrics in the request and there is at least one configured identifying label.
  • OTLP ingestion: don’t discard timeseries paired with invalid exemplars. Instead, try to ingest the timeseries and discard only the invalid exemplars.
  • Subqueries: @ end() and @ start() now work correctly with queries split by time.
  • Native histograms: order exemplars before ingestion to improve success rate when ingesting multiple exemplars.
  • Native histograms: return HTTP 400 on invalid native histogram samples instead of HTTP 500. The metric cortex_discarded_samples_total{reason="invalid-native-histogram"} is now incremented on invalid histogram samples.

Helm chart improvements

The Grafana Mimir and Grafana Enterprise Metrics Helm charts are released independently. Refer to the Grafana Mimir Helm chart documentation.