<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Release notes on Grafana Labs</title><link>https://grafana.com/docs/loki/v3.0.x/release-notes/</link><description>Recent content in Release notes on Grafana Labs</description><generator>Hugo -- gohugo.io</generator><language>en</language><atom:link href="/docs/loki/v3.0.x/release-notes/index.xml" rel="self" type="application/rss+xml"/><item><title>Release cadence</title><link>https://grafana.com/docs/loki/v3.0.x/release-notes/cadence/</link><pubDate>Sat, 14 Mar 2026 10:06:05 +0000</pubDate><guid>https://grafana.com/docs/loki/v3.0.x/release-notes/cadence/</guid><content><![CDATA[&lt;h1 id=&#34;release-cadence&#34;&gt;Release cadence&lt;/h1&gt;
&lt;h2 id=&#34;stable-releases&#34;&gt;Stable Releases&lt;/h2&gt;
&lt;p&gt;Loki releases (this includes 
    &lt;a href=&#34;/docs/loki/v3.0.x/send-data/promtail/&#34;&gt;Promtail&lt;/a&gt;, 
    &lt;a href=&#34;/docs/loki/v3.0.x/operations/loki-canary/&#34;&gt;Loki Canary&lt;/a&gt;, etc.) use the following
naming scheme: &lt;code&gt;MAJOR&lt;/code&gt;.&lt;code&gt;MINOR&lt;/code&gt;.&lt;code&gt;PATCH&lt;/code&gt;.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;MAJOR&lt;/code&gt; (roughly once a year): these releases include large new features and possible backwards-compatibility breaks.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;MINOR&lt;/code&gt; (roughly once a quarter): these releases include new features which generally do not break backwards-compatibility, but from time to time we might introduce &lt;em&gt;minor&lt;/em&gt; breaking changes, and we will specify these in our upgrade docs.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;PATCH&lt;/code&gt; (roughly once or twice a month): these releases include bug and security fixes which do not break backwards-compatibility.&lt;/li&gt;
&lt;/ul&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;While our naming scheme resembles &lt;a href=&#34;https://semver.org/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Semantic Versioning&lt;/a&gt;, at this time we do not strictly follow its
guidelines to the letter. Our goal is to provide regular releases that are as stable as possible, and we take backwards-compatibility
seriously. As with any software, always read the 
    &lt;a href=&#34;/docs/loki/v3.0.x/release-notes/&#34;&gt;release notes&lt;/a&gt; and the 
    &lt;a href=&#34;/docs/loki/v3.0.x/setup/upgrade/&#34;&gt;upgrade guide&lt;/a&gt; whenever
choosing a new version of Loki to install.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;p&gt;New releases are based of a &lt;a href=&#34;#weekly-releases&#34;&gt;weekly release&lt;/a&gt; which we have vetted for stability over a number of weeks.&lt;/p&gt;
&lt;p&gt;We strongly recommend keeping up-to-date with patch releases as they are released. We post updates of new releases in the &lt;code&gt;#loki&lt;/code&gt; channel
of our 
    &lt;a href=&#34;/docs/loki/v3.0.x/community/getting-in-touch/&#34;&gt;Slack community&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;You can find all of our releases &lt;a href=&#34;https://github.com/grafana/loki/releases&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;on GitHub&lt;/a&gt; and on &lt;a href=&#34;https://hub.docker.com/r/grafana/loki&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Docker Hub&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;weekly-releases&#34;&gt;Weekly Releases&lt;/h2&gt;
&lt;p&gt;Every Monday morning, we create a new &amp;ldquo;weekly&amp;rdquo; release from the tip of the &lt;a href=&#34;https://github.com/grafana/loki&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&lt;code&gt;main&lt;/code&gt; branch&lt;/a&gt;.
These releases use the following naming scheme:&lt;/p&gt;
&lt;ul&gt;
&lt;code&gt;weekly-k&amp;lt;week-number&amp;gt;&lt;/code&gt; where &lt;code&gt;&amp;lt;week-number&amp;gt;&lt;/code&gt; is the number of weeks since we began this process (2020-07-06).
&lt;/ul&gt;
&lt;p&gt;These weekly releases are deployed across our Grafana Cloud Logs fleet of instances. We test these releases for stability
by deploying them through development, pre-production, and production instances.&lt;/p&gt;
&lt;p&gt;Generally these weekly releases are considered stable enough to run, but we provide zero stability guarantees and these
releases &lt;em&gt;should not be run in production&lt;/em&gt; unless you are willing to tolerate some risk.&lt;/p&gt;
&lt;p&gt;You can find these releases on &lt;a href=&#34;https://hub.docker.com/r/grafana/loki/tags?page=1&amp;amp;name=k&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Docker Hub&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&#34;which-release-will-my-merged-pr-be-part-of&#34;&gt;Which release will my merged PR be part of?&lt;/h3&gt;
&lt;p&gt;Once your PR is merged to &lt;code&gt;main&lt;/code&gt;, you can expect it to become available in the next week&amp;rsquo;s
&lt;a href=&#34;#weekly-releases&#34;&gt;weekly release&lt;/a&gt;. To find out which stable or weekly releases a commit is included in, use the following tool:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;tools/which-release.sh&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;For example, &lt;a href=&#34;https://github.com/grafana/loki/pull/7472&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;this PR&lt;/a&gt; was &lt;a href=&#34;https://github.com/grafana/loki/pull/7472#event-8431624850&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;merged&lt;/a&gt; into the commit named &lt;code&gt;d434e80&lt;/code&gt;. Using the tool above, we can see that is part of release 2.8 and several weekly releases:&lt;/p&gt;

&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;Bash&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-bash&#34;&gt;$ ./tools/which-release.sh d434e80                                 
Commit was found in the following releases:
  release-2.8.x
Commit was found in the following weekly builds:
  k136
  k137
  k138
  k139
  k140
  k141
  k142&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
]]></content><description>&lt;h1 id="release-cadence">Release cadence&lt;/h1>
&lt;h2 id="stable-releases">Stable Releases&lt;/h2>
&lt;p>Loki releases (this includes
&lt;a href="/docs/loki/v3.0.x/send-data/promtail/">Promtail&lt;/a>,
&lt;a href="/docs/loki/v3.0.x/operations/loki-canary/">Loki Canary&lt;/a>, etc.) use the following
naming scheme: &lt;code>MAJOR&lt;/code>.&lt;code>MINOR&lt;/code>.&lt;code>PATCH&lt;/code>.&lt;/p>
&lt;ul>
&lt;li>&lt;code>MAJOR&lt;/code> (roughly once a year): these releases include large new features and possible backwards-compatibility breaks.&lt;/li>
&lt;li>&lt;code>MINOR&lt;/code> (roughly once a quarter): these releases include new features which generally do not break backwards-compatibility, but from time to time we might introduce &lt;em>minor&lt;/em> breaking changes, and we will specify these in our upgrade docs.&lt;/li>
&lt;li>&lt;code>PATCH&lt;/code> (roughly once or twice a month): these releases include bug and security fixes which do not break backwards-compatibility.&lt;/li>
&lt;/ul>
&lt;div class="admonition admonition-note">&lt;blockquote>&lt;p class="title text-uppercase">Note&lt;/p></description></item><item><title>v3.0</title><link>https://grafana.com/docs/loki/v3.0.x/release-notes/v3-0/</link><pubDate>Sat, 14 Mar 2026 10:06:05 +0000</pubDate><guid>https://grafana.com/docs/loki/v3.0.x/release-notes/v3-0/</guid><content><![CDATA[&lt;h1 id=&#34;v30&#34;&gt;v3.0&lt;/h1&gt;
&lt;p&gt;Grafana Labs and the Loki team are excited to announce the release of Loki 3.0. Here&amp;rsquo;s a summary of new enhancements and important fixes.&lt;/p&gt;
&lt;p&gt;For a full list of all changes and fixes, refer to the &lt;a href=&#34;https://github.com/grafana/loki/blob/release-3.0.x/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;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;Note that Loki 3.0 defaults to using the v13 schema. All of the latest features are built against TSDB and the v13 Schema. This version of the schema is compatible with both Loki 2.9.x and Loki 3.0. The main change is to add support for Structured Metadata which is used by the new OTLP native endpoint and is enabled by default.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;p&gt;Key features in Loki 3.0.0 include the following:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Query acceleration with Bloom filters&lt;/strong&gt; (experimental): This is designed to speed up filter queries, with best results for queries that are looking for a specific text string like an error message or UUID. For more information, refer to 
    &lt;a href=&#34;/docs/loki/v3.0.x/operations/query-acceleration-blooms/&#34;&gt;Query acceleration with Blooms&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Native OpenTelemetry Support&lt;/strong&gt;: A simplified ingestion pipeline (Loki Exporter no longer needed) and a more intuitive query experience for OTel logs. For more information, refer to the 
    &lt;a href=&#34;/docs/loki/v3.0.x/send-data/otel/&#34;&gt;OTel documentation&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Helm charts&lt;/strong&gt;: A major upgrade to the Loki helm chart introduces support for &lt;code&gt;Distributed&lt;/code&gt; mode (also known as 
    &lt;a href=&#34;/docs/loki/v3.0.x/get-started/deployment-modes/#microservices-mode&#34;&gt;microservices&lt;/a&gt; mode), includes memcached by default, and includes several updates to configurations to improve Loki operations.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Pattern match filter&lt;/strong&gt;: LogQL now supports two new 
    &lt;a href=&#34;/docs/loki/v3.0.x/query/#pattern-match-filter-operators&#34;&gt;pattern match filter operators&lt;/a&gt;. You can match any word with just one control character and it is simpler and 10x faster than using regex.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Caching updates&lt;/strong&gt;: This release includes multiple updates to caching to improve performance, add new configuration options and support for new features, deprecate features no longer needed, and add automatic background checks.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Lambda/Promtail:&lt;/strong&gt; Support dropping labels (&lt;a href=&#34;https://github.com/grafana/loki/issues/10755&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;#10755&lt;/a&gt;) (&lt;a href=&#34;https://github.com/grafana/loki/commit/ec54c723ebbeeda88000dde188d539ecfe05dad8&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;ec54c72&lt;/a&gt;).&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Profiling integration&lt;/strong&gt;: Added profiling integrations to tracing instrumentation to allow getting a profile for a single request.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Docs improvements&lt;/strong&gt;: All the Getting Started topics have been revised, including a new 
    &lt;a href=&#34;/docs/loki/v3.0.x/get-started/quick-start/&#34;&gt;Quickstart&lt;/a&gt; to help new users get up and running with Loki faster. The Storage, Configuration Reference, and API documentation have been updated to reflect deprecated and removed code, configuration options, and API endpoints.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;deprecations&#34;&gt;Deprecations&lt;/h2&gt;
&lt;p&gt;One of the focuses of Loki 3.0 was cleaning up unused code and old features that had been previously deprecated but not removed. Loki 3.0 removes a number of previous deprecations and introduces some new deprecations. Some of the main areas with changes include:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;
    &lt;a href=&#34;/docs/loki/v3.0.x/storage/&#34;&gt;Deprecated storage options&lt;/a&gt; including the deprecation of the BoltDB store.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
    &lt;a href=&#34;/docs/loki/v3.0.x/configure/&#34;&gt;Deprecated configuration options&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
    &lt;a href=&#34;/docs/loki/v3.0.x/reference/api/#deprecated-endpoints&#34;&gt;API endpoint deprecations&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;To learn more about breaking changes in this release, refer to the 
    &lt;a href=&#34;/docs/loki/v3.0.x/setup/upgrade/&#34;&gt;Upgrade guide&lt;/a&gt;.&lt;/p&gt;


&lt;div data-shared=&#34;agent-deprecation.md&#34;&gt;
            

&lt;div class=&#34;admonition admonition-caution&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Caution&lt;/p&gt;&lt;p&gt;Grafana Alloy is the new name for our distribution of the OTel collector.
Grafana Agent has been deprecated and is in Long-Term Support (LTS) through October 31, 2025. Grafana Agent will reach an End-of-Life (EOL) on November 1, 2025.
Read more about why we recommend migrating to &lt;a href=&#34;/blog/2024/04/09/grafana-alloy-opentelemetry-collector-with-prometheus-pipelines/&#34;&gt;Grafana Alloy&lt;/a&gt;.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;/div&gt;

        
&lt;h2 id=&#34;upgrade-considerations&#34;&gt;Upgrade Considerations&lt;/h2&gt;
&lt;p&gt;The path from 2.9 to 3.0 includes several breaking changes. For important upgrade guidance, refer to the 
    &lt;a href=&#34;/docs/loki/v3.0.x/setup/upgrade/&#34;&gt;Upgrade Guide&lt;/a&gt; and the separate 
    &lt;a href=&#34;/docs/loki/v3.0.x/setup/upgrade/upgrade-to-6x/&#34;&gt;Helm Upgrade Guide&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;bug-fixes&#34;&gt;Bug fixes&lt;/h2&gt;
&lt;h3 id=&#34;301-2024-08-09&#34;&gt;3.0.1 (2024-08-09)&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;deps:&lt;/strong&gt; Bumped dependencies versions to resolve CVEs (&lt;a href=&#34;https://github.com/grafana/loki/pull/13833&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;#13833&lt;/a&gt;) (&lt;a href=&#34;https://github.com/grafana/loki/commit/e13011d91a77501ca4f659df9cf33f23085d3a35&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;e13011d&lt;/a&gt;).&lt;/li&gt;
&lt;li&gt;Fixed nil pointer dereference in bloomstore initialization (&lt;a href=&#34;https://github.com/grafana/loki/issues/12869&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;#12869&lt;/a&gt;) (&lt;a href=&#34;https://github.com/grafana/loki/commit/167b468598bc70bbed6eed44826d3f9b85e1e0b8&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;167b468&lt;/a&gt;), closes &lt;a href=&#34;https://github.com/grafana/loki/issues/12270&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;#12270&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;300-2024-04-08&#34;&gt;3.0.0 (2024-04-08)&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;All lifecycler configurations reference a valid IPv6 address and port combination (&lt;a href=&#34;https://github.com/grafana/loki/issues/11121&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;#11121&lt;/a&gt;) (&lt;a href=&#34;https://github.com/grafana/loki/commit/6385b195739bd7d4e9706faddd0de663d8e5331a&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;6385b19&lt;/a&gt;).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;deps:&lt;/strong&gt; Update github.com/c2h5oh/datasize digest to 859f65c (main) (&lt;a href=&#34;https://github.com/grafana/loki/issues/10820&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;#10820&lt;/a&gt;) (&lt;a href=&#34;https://github.com/grafana/loki/commit/c66ffd125cd89f5845a75a1751186fa46d003f70&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;c66ffd1&lt;/a&gt;).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;deps:&lt;/strong&gt; Update github.com/docker/go-plugins-helpers digest to 6eecb7b (main) (&lt;a href=&#34;https://github.com/grafana/loki/issues/10826&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;#10826&lt;/a&gt;) (&lt;a href=&#34;https://github.com/grafana/loki/commit/fb9c496b21be62f56866ae0f92440085e7860a2a&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;fb9c496&lt;/a&gt;).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;deps:&lt;/strong&gt; Update github.com/grafana/gomemcache digest to 6947259 (main) (&lt;a href=&#34;https://github.com/grafana/loki/issues/10836&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;#10836&lt;/a&gt;) (&lt;a href=&#34;https://github.com/grafana/loki/commit/2327789b5506d0ccc00d931195da17a2d47bf236&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;2327789&lt;/a&gt;).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;deps:&lt;/strong&gt; Update github.com/grafana/loki/pkg/push digest to 583aa28 (main) (&lt;a href=&#34;https://github.com/grafana/loki/issues/10842&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;#10842&lt;/a&gt;) (&lt;a href=&#34;https://github.com/grafana/loki/commit/02d9418270f4e615c1f78b0def635da7c0572ca4&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;02d9418&lt;/a&gt;).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;deps:&lt;/strong&gt; Update github.com/grafana/loki/pkg/push digest to cfc4f0e (main) (&lt;a href=&#34;https://github.com/grafana/loki/issues/10946&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;#10946&lt;/a&gt;) (&lt;a href=&#34;https://github.com/grafana/loki/commit/d27c4d297dc6cce93ada98f16b962380ec933c6a&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;d27c4d2&lt;/a&gt;).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;deps:&lt;/strong&gt; Update github.com/grafana/loki/pkg/push digest to e523809 (main) (&lt;a href=&#34;https://github.com/grafana/loki/issues/11107&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;#11107&lt;/a&gt;) (&lt;a href=&#34;https://github.com/grafana/loki/commit/09cb9ae76f4aef7dea477961c0c5424d7243bf2a&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;09cb9ae&lt;/a&gt;).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;deps:&lt;/strong&gt; Update github.com/joncrlsn/dque digest to c2ef48c (main) (&lt;a href=&#34;https://github.com/grafana/loki/issues/10947&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;#10947&lt;/a&gt;) (&lt;a href=&#34;https://github.com/grafana/loki/commit/1fe48858ae15b33646eedb85b05d6773a8bc5020&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;1fe4885&lt;/a&gt;).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;deps:&lt;/strong&gt; Update module google.golang.org/grpc [security] (main) (&lt;a href=&#34;https://github.com/grafana/loki/issues/11031&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;#11031&lt;/a&gt;) (&lt;a href=&#34;https://github.com/grafana/loki/commit/0695424f7dd62435df3a9981276b40f3c5ef5641&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;0695424&lt;/a&gt;).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;helm:&lt;/strong&gt; Bump nginx-unprivilege to fix CVE (&lt;a href=&#34;https://github.com/grafana/loki/issues/10754&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;#10754&lt;/a&gt;) (&lt;a href=&#34;https://github.com/grafana/loki/commit/dbf7dd4bac112a538a59907a8c6092504e7f4a91&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;dbf7dd4&lt;/a&gt;).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;helm:&lt;/strong&gt; Sidecar configuration for Backend (&lt;a href=&#34;https://github.com/grafana/loki/issues/10603&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;#10603&lt;/a&gt;) (&lt;a href=&#34;https://github.com/grafana/loki/commit/c29ba973a0b5b7b59613d210b741d5a547ea0e83&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;c29ba97&lt;/a&gt;).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;lambda-promtail&lt;/strong&gt; Fix panic in lambda-promtail due to mishandling of empty DROP_LABELS env var. (&lt;a href=&#34;https://github.com/grafana/loki/pull/11074&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;#11074&lt;/a&gt;).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;loki:&lt;/strong&gt; Respect query matcher in ingester when getting label values (&lt;a href=&#34;https://github.com/grafana/loki/issues/10375&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;#10375&lt;/a&gt;) (&lt;a href=&#34;https://github.com/grafana/loki/commit/85e2e52279ecac6dc111d5c113c54d6054d2c922&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;85e2e52&lt;/a&gt;).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;loki&lt;/strong&gt; Generate tsdb_shipper storage_config even if using_boltdb_shipper is false (&lt;a href=&#34;https://github.com/grafana/loki/pull/11195&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;#11195&lt;/a&gt;).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;loki&lt;/strong&gt; Do not reflect label names in request metrics&amp;rsquo; &amp;ldquo;route&amp;rdquo; label. (&lt;a href=&#34;https://github.com/grafana/loki/pull/11551&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;11551&lt;/a&gt;).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;loki&lt;/strong&gt; Fix duplicate logs from docker containers. (&lt;a href=&#34;https://github.com/grafana/loki/pull/11563&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;#11563&lt;/a&gt;).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;loki&lt;/strong&gt; Ruler: Fixed a panic that can be caused by concurrent read-write access of tenant configs when there are a large amount of rules. (&lt;a href=&#34;https://github.com/grafana/loki/pull/11601&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;#11601&lt;/a&gt;).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;loki&lt;/strong&gt; Fixed regression adding newlines to HTTP error response bodies which may break client integrations. (&lt;a href=&#34;https://github.com/grafana/loki/pull/11606&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;#11606&lt;/a&gt;).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;loki&lt;/strong&gt; Log results cache: compose empty response based on the request being served to avoid returning incorrect limit or direction. (&lt;a href=&#34;https://github.com/grafana/loki/pull/11657&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;#11657&lt;/a&gt;).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;loki&lt;/strong&gt; Fix semantics of label parsing logic of metrics and logs queries. Both only parse the first label if multiple extractions into the same label are requested. (&lt;a href=&#34;https://github.com/grafana/loki/pull/11587&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;#11587&lt;/a&gt;).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;loki&lt;/strong&gt; Background Cache: Fixes a bug that is causing the background queue size to be incremented twice for each enqueued item. (&lt;a href=&#34;https://github.com/grafana/loki/pull/11776&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;#11776&lt;/a&gt;).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;loki&lt;/strong&gt;: Parsing: String array elements were not being parsed correctly in JSON processing (&lt;a href=&#34;https://github.com/grafana/loki/pull/11921&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;#11921&lt;/a&gt;).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;promtail:&lt;/strong&gt; Correctly parse list of drop stage sources from YAML (&lt;a href=&#34;https://github.com/grafana/loki/issues/10848&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;#10848&lt;/a&gt;) (&lt;a href=&#34;https://github.com/grafana/loki/commit/f51ee849b03c5f6b79f3e93cb7fd7811636bede2&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;f51ee84&lt;/a&gt;).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;promtail:&lt;/strong&gt; Prevent panic due to duplicate metric registration after reloaded (&lt;a href=&#34;https://github.com/grafana/loki/issues/10798&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;#10798&lt;/a&gt;) (&lt;a href=&#34;https://github.com/grafana/loki/commit/47e2c5884f443667e64764f3fc3948f8f11abbb8&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;47e2c58&lt;/a&gt;).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;promtail&lt;/strong&gt;: Fix Promtail excludepath not evaluated on newly added files. (&lt;a href=&#34;https://github.com/grafana/loki/pull/9831&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;#9831&lt;/a&gt;).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;tools/lambda-promtail:&lt;/strong&gt; Do not evaluate empty string for drop_labels (&lt;a href=&#34;https://github.com/grafana/loki/issues/11074&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;#11074&lt;/a&gt;) (&lt;a href=&#34;https://github.com/grafana/loki/commit/94169a0e6b5bf96426ad21e40f9583b721f35d6c&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;94169a0&lt;/a&gt;).&lt;/li&gt;
&lt;/ul&gt;
]]></content><description>&lt;h1 id="v30">v3.0&lt;/h1>
&lt;p>Grafana Labs and the Loki team are excited to announce the release of Loki 3.0. Here&amp;rsquo;s a summary of new enhancements and important fixes.&lt;/p></description></item><item><title>V2.9</title><link>https://grafana.com/docs/loki/v3.0.x/release-notes/v2-9/</link><pubDate>Sat, 14 Mar 2026 10:06:05 +0000</pubDate><guid>https://grafana.com/docs/loki/v3.0.x/release-notes/v2-9/</guid><content><![CDATA[&lt;h1 id=&#34;v29&#34;&gt;V2.9&lt;/h1&gt;
&lt;p&gt;Grafana Labs is excited to announce the release of Loki 2.9.0 Here&amp;rsquo;s a summary of new enhancements and important fixes:&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;Structured metadata&lt;/strong&gt;: The 
    &lt;a href=&#34;/docs/loki/v3.0.x/get-started/labels/structured-metadata/&#34;&gt;Structured Metadata&lt;/a&gt; feature, which was introduced as experimental in release 2.9.0, is generally available as of release 2.9.4.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Query Language Improvements&lt;/strong&gt;: Several improvements to the query language that speed up line parsing and regex matching. &lt;a href=&#34;https://github.com/grafana/loki/pull/8646&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;PR #8646&lt;/a&gt;, &lt;a href=&#34;https://github.com/grafana/loki/pull/8659&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;PR #8659&lt;/a&gt;, &lt;a href=&#34;https://github.com/grafana/loki/pull/8724&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;PR #8724&lt;/a&gt;, &lt;a href=&#34;https://github.com/grafana/loki/pull/8734&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;PR #8734&lt;/a&gt;, &lt;a href=&#34;https://github.com/grafana/loki/pull/8739&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;PR #8739&lt;/a&gt;, &lt;a href=&#34;https://github.com/grafana/loki/pull/8763&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;PR #8763&lt;/a&gt;, &lt;a href=&#34;https://github.com/grafana/loki/pull/8890&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;PR #8890&lt;/a&gt;, &lt;a href=&#34;https://github.com/grafana/loki/pull/8914&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;PR #8914&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Remote rule evaluation&lt;/strong&gt;: Rule evaluation can now be handled by queriers to improve speed. &lt;a href=&#34;https://github.com/grafana/loki/pull/8744&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;PR #8744&lt;/a&gt; &lt;a href=&#34;https://github.com/grafana/loki/pull/8848&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;PR #8848&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Multi-store Index support&lt;/strong&gt;: Loki now supports reading/writing indexes to multiple object stores which enables the use of different storage buckets across periods for storing index. &lt;a href=&#34;https://github.com/grafana/loki/pull/7754&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;PR #7754&lt;/a&gt;, &lt;a href=&#34;https://github.com/grafana/loki/pull/7447&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;PR #7447&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;New volume and volume_range endpoints&lt;/strong&gt;: Two new endoints, &lt;code&gt;index/volume&lt;/code&gt; and &lt;code&gt;index/volume_range&lt;/code&gt;, have been added to Loki. They return aggregate volume information from the TSDB index for all streams matching a provided stream selector. This feature was introduced via multiple PRs, including &lt;a href=&#34;https://github.com/grafana/loki/pull/9988&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;PR #9988&lt;/a&gt;, &lt;a href=&#34;https://github.com/grafana/loki/pull/9966&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;PR #9966&lt;/a&gt;, &lt;a href=&#34;https://github.com/grafana/loki/pull/9833&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;PR #9833&lt;/a&gt;, &lt;a href=&#34;https://github.com/grafana/loki/pull/9832&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;PR #9832&lt;/a&gt;, &lt;a href=&#34;https://github.com/grafana/loki/pull/9776&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;PR #9776&lt;/a&gt;, &lt;a href=&#34;https://github.com/grafana/loki/pull/9762&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;PR #9762&lt;/a&gt;, &lt;a href=&#34;https://github.com/grafana/loki/pull/9704&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;PR #9704&lt;/a&gt;, &lt;a href=&#34;https://github.com/grafana/loki/pull/10248&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;PR #10248&lt;/a&gt;, &lt;a href=&#34;https://github.com/grafana/loki/pull/10099&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;PR #10099&lt;/a&gt;, &lt;a href=&#34;https://github.com/grafana/loki/pull/10076&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;PR #10076&lt;/a&gt;, &lt;a href=&#34;https://github.com/grafana/loki/pull/10047&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;PR #10047&lt;/a&gt; and &lt;a href=&#34;https://github.com/grafana/loki/pull/10045&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;PR #10045&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;New Storage Client&lt;/strong&gt;: Add support for IBM cloud object storage as storage client. &lt;a href=&#34;https://github.com/grafana/loki/pull/8826&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;PR #8826&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Block queries by hash&lt;/strong&gt;: Queries can now be blocked by a query hash. &lt;a href=&#34;https://github.com/grafana/loki/pull/8953&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;PR #8953&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;logfmt stage improvements&lt;/strong&gt;: logfmt parser now performs non-strict parsing by default which helps scan semi-structured log lines. &lt;a href=&#34;https://github.com/grafana/loki/pull/9626&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;PR #9626&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Deprecations&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Legacy index and chunk stores that are not &amp;ldquo;single store&amp;rdquo; (such as &lt;code&gt;tsdb&lt;/code&gt;, &lt;code&gt;boltdb-shipper&lt;/code&gt;) are deprecated. These storage backends are Cassandra (&lt;code&gt;cassandra&lt;/code&gt;), DynamoDB (&lt;code&gt;aws&lt;/code&gt;, &lt;code&gt;aws-dynamo&lt;/code&gt;), BigTable (&lt;code&gt;bigtable&lt;/code&gt;, &lt;code&gt;bigtable-hashed&lt;/code&gt;), GCP (&lt;code&gt;gcp&lt;/code&gt;, &lt;code&gt;gcp-columnkey&lt;/code&gt;), and gRPC (&lt;code&gt;grpc&lt;/code&gt;). See &lt;a href=&#34;/docs/loki/&#34;&gt;https://grafana.com/docs/loki/&lt;/a&gt;&amp;lt;LOKI_VERSION&amp;gt;/configure/storage.md for more information.&lt;/li&gt;
&lt;li&gt;The &lt;code&gt;table-manager&lt;/code&gt; target is deprecated, because it is not used by &amp;ldquo;single store&amp;rdquo; implementations.&lt;/li&gt;
&lt;li&gt;The &lt;code&gt;-boltdb.shipper.compactor.*&lt;/code&gt; CLI flags are deprecated in favor of &lt;code&gt;-compactor.*&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;The &lt;code&gt;-ingester.unordered-writes&lt;/code&gt; CLI flag is deprecated and will always default to &lt;code&gt;true&lt;/code&gt; in the next major release.&lt;/li&gt;
&lt;li&gt;For the full list of deprecations, see CHANGELOG.md&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;h3 id=&#34;2914-2025-04-15&#34;&gt;2.9.14 (2025-04-15)&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;deps:&lt;/strong&gt;  Upgrade &lt;code&gt;golang.org/x/oauth2&lt;/code&gt; to 0.27.0 (&lt;a href=&#34;https://github.com/grafana/loki/issues/16960&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;#16960&lt;/a&gt;) (&lt;a href=&#34;https://github.com/grafana/loki/commit/fb70d0305f96a9c6278e9707fc061f03d6aae0f1&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;fb70d03&lt;/a&gt;).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;deps:&lt;/strong&gt;  Fix Loki CVEs for 2.9 (&lt;a href=&#34;https://github.com/grafana/loki/issues/17065&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;#17065&lt;/a&gt;) (&lt;a href=&#34;https://github.com/grafana/loki/commit/5facccece401c73af859644e4f0849096dcea95e&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;5faccce&lt;/a&gt;).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;deps:&lt;/strong&gt;  Remove remaining replaces to fix CVEs for 2.9.x (&lt;a href=&#34;https://github.com/grafana/loki/issues/17095&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;#17095&lt;/a&gt;) (&lt;a href=&#34;https://github.com/grafana/loki/commit/26fcedb3d39a84afcf76f8b3a134657d218f947e&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;26fcedb&lt;/a&gt;).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;deps:&lt;/strong&gt;  Upgrade &lt;code&gt;docker/docker&lt;/code&gt; used by 2.9.x (&lt;a href=&#34;https://github.com/grafana/loki/issues/17091&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;#17091&lt;/a&gt;) (&lt;a href=&#34;https://github.com/grafana/loki/commit/914adec3d86eb8c6eaed1e1f2cf41206b2bf919a&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;914adec&lt;/a&gt;).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;deps:&lt;/strong&gt;  Upgrade &lt;code&gt;k8s.io/api&lt;/code&gt; used by Loki 2.9.x (&lt;a href=&#34;https://github.com/grafana/loki/issues/17093&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;#17093&lt;/a&gt;) (&lt;a href=&#34;https://github.com/grafana/loki/commit/0da39f47fef4030d0915312c4a6a5e941f6db0ef&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;0da39f4&lt;/a&gt;).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;deps:&lt;/strong&gt;  Upgrade packages used by &lt;code&gt;docker/docker&lt;/code&gt; for 2.9.x (&lt;a href=&#34;https://github.com/grafana/loki/issues/17074&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;#17074&lt;/a&gt;) (&lt;a href=&#34;https://github.com/grafana/loki/commit/2c8da3de5ef4e4a19cfe2c4b47f97611a82d75cb&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;2c8da3d&lt;/a&gt;).&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2913-2025-03-12&#34;&gt;2.9.13 (2025-03-12)&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;deps:&lt;/strong&gt;  Loki 2.9.x Bump Alpine and Go versions (&lt;a href=&#34;https://github.com/grafana/loki/issues/16294&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;#16294&lt;/a&gt;) (&lt;a href=&#34;https://github.com/grafana/loki/commit/f2deeb76ac39e835bffe61e1e4f78b980afdc0c0&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;f2deeb7&lt;/a&gt;).&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2912-2025-02-13&#34;&gt;2.9.12 (2025-02-13)&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;deps:&lt;/strong&gt; CVE updates for Loki 2.9.11 (&lt;a href=&#34;https://github.com/grafana/loki/issues/15647&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;#15647&lt;/a&gt;) (&lt;a href=&#34;https://github.com/grafana/loki/commit/8447402c5e454928845535efba5249d62be4c7c1&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;8447402&lt;/a&gt;).&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2911-2024-12-04&#34;&gt;2.9.11 (2024-12-04)&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;docker:&lt;/strong&gt; Update Docker to 23.0.15 (&lt;a href=&#34;https://github.com/grafana/loki/issues/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;#&lt;/a&gt;).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;lamba-promtail:&lt;/strong&gt; Lamba-promtail updates, some of which address CVEs(&lt;a href=&#34;https://github.com/grafana/loki/issues/14105&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;#14105&lt;/a&gt;).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;promtail:&lt;/strong&gt; Switch Promtail base image from Debian to Ubuntu to fix critical security issues (&lt;a href=&#34;https://github.com/grafana/loki/issues/15195&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;#15195&lt;/a&gt;).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;storage:&lt;/strong&gt; Fix bug in cache of the index object client(&lt;a href=&#34;https://github.com/grafana/loki/issues/10585&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;#10585&lt;/a&gt;).&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2910-2024-08-09&#34;&gt;2.9.10 (2024-08-09)&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Update dependencies versions to remove CVE (&lt;a href=&#34;https://github.com/grafana/loki/pull/13835&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;#13835&lt;/a&gt;) (&lt;a href=&#34;https://github.com/grafana/loki/commit/567bef286376663407c54f5da07fa00963ba5485&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;567bef2&lt;/a&gt;).&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;299-2024--07-04&#34;&gt;2.9.9 (2024 -07-04)&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Ingester:&lt;/strong&gt; Add &lt;code&gt;ingester_chunks_flush_failures_total&lt;/code&gt; &lt;a href=&#34;https://github.com/grafana/loki/pull/12925&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;12925&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Ingester:&lt;/strong&gt; Add backoff to flush op &lt;a href=&#34;https://github.com/grafana/loki/pull/13140&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;13140&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;298-2024-05-03&#34;&gt;2.9.8 (2024-05-03)&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;deps:&lt;/strong&gt; update module golang.org/x/net to v0.23.0 [security] (release-2.9.x) (&lt;a href=&#34;https://github.com/grafana/loki/issues/12865&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;#12865&lt;/a&gt;) (&lt;a href=&#34;https://github.com/grafana/loki/commit/94e00299ec9b36ad97c147641566b6922268c54e&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;94e0029&lt;/a&gt;).&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;297-2024-04-10&#34;&gt;2.9.7 (2024-04-10)&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Bump go to 1.21.9 and build image to 0.33.1 (#12542) (efc4d2f)&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;296-2024-03-21&#34;&gt;2.9.6 (2024-03-21)&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Fixed Promtail failures connecting to local Loki installation (&lt;a href=&#34;https://github.com/grafana/loki/issues/12184&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;#12184&lt;/a&gt;) (&lt;a href=&#34;https://github.com/grafana/loki/commit/8585e3537375c0deb11462d7256f5da23228f5e1&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;8585e35&lt;/a&gt;).&lt;/li&gt;
&lt;li&gt;Fixed an issue when using IPv6 where IPv6 addresses were not properly joined with ports. Use &lt;code&gt;net.JoinHostPort&lt;/code&gt; to support IPv6 addresses. (&lt;a href=&#34;https://github.com/grafana/loki/issues/10650&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;#10650&lt;/a&gt;) (&lt;a href=&#34;https://github.com/grafana/loki/issues/11870&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;#11870&lt;/a&gt;) (&lt;a href=&#34;https://github.com/grafana/loki/commit/7def3b4e774252e13ba154ca13f72816a84da7dd&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;7def3b4&lt;/a&gt;).&lt;/li&gt;
&lt;li&gt;Updated google.golang.org/protobuf to v1.33.0 (&lt;a href=&#34;https://github.com/grafana/loki/issues/12269&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;#12269&lt;/a&gt;) (&lt;a href=&#34;https://github.com/grafana/loki/issues/12287&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;#12287&lt;/a&gt;) (&lt;a href=&#34;https://github.com/grafana/loki/commit/318652035059fdaa40405f263fc9e37b4d38b157&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;3186520&lt;/a&gt;).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For a full list of all changes and fixes, refer to the &lt;a href=&#34;https://github.com/grafana/loki/blob/release-2.9.x/CHANGELOG.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;CHANGELOG&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&#34;295-2024-02-28&#34;&gt;2.9.5 (2024-02-28)&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Bumped base images and Go dependencies to address CVEs (&lt;a href=&#34;https://github.com/grafana/loki/issues/12092&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;#12092&lt;/a&gt;) (&lt;a href=&#34;https://github.com/grafana/loki/commit/eee35983f38fe04543b169ffa8ece76c23c4217b&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;eee3598&lt;/a&gt;).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For a full list of all changes and fixes, refer to the &lt;a href=&#34;https://github.com/grafana/loki/blob/release-2.9.x/CHANGELOG.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;CHANGELOG&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&#34;294-2024-01-24&#34;&gt;2.9.4 (2024-01-24)&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Fixed a couple of data races that can cause panics due to concurrent read-write access of tenant configs.&lt;/li&gt;
&lt;li&gt;Fixed a bug in the log results cache.&lt;/li&gt;
&lt;li&gt;Fixed the cache to atomically check background cache size limit correctly.&lt;/li&gt;
&lt;li&gt;Fixed the discrepancy between the semantics of logs and metrics queries.&lt;/li&gt;
&lt;li&gt;Fixed promtail default scrape config causing CPU and memory load.&lt;/li&gt;
&lt;li&gt;Updated golang.org/x/crypto to v0.18.0.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For a full list of all changes and fixes, refer to the &lt;a href=&#34;https://github.com/grafana/loki/blob/release-2.9.x/CHANGELOG.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;CHANGELOG&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&#34;293-2023-12-11&#34;&gt;2.9.3 (2023-12-11)&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Upgraded otelhttp from 0.40.0 -&amp;gt; 0.44.0 and base alpine image from 3.18.3 -&amp;gt; 3.18.5 to fix a few CVES (CVE-2023-45142, CVE-2022-21698, CVE-2023-5363).&lt;/li&gt;
&lt;li&gt;Fixed querying ingester for label values with a matcher (previously didn&amp;rsquo;t respect the matcher).&lt;/li&gt;
&lt;li&gt;Ensured all lifecycler cfgs ref a valid IPv6 addr and port combination.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For a full list of all changes and fixes, refer to the &lt;a href=&#34;https://github.com/grafana/loki/blob/release-2.9.x/CHANGELOG.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;CHANGELOG&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&#34;292-2023-10-16&#34;&gt;2.9.2 (2023-10-16)&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Upgraded go to v1.21.3, golang.org/x/net to v0.17.0 and grpc-go to v1.56.3 to patch CVE-2023-39325 / CVE-2023-44487&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For a full list of all changes and fixes, refer to the &lt;a href=&#34;https://github.com/grafana/loki/blob/release-2.9.x/CHANGELOG.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;CHANGELOG&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&#34;291-2023-09-14&#34;&gt;2.9.1 (2023-09-14)&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Updated Docker base images to mitigate security vulnerability CVE-2022-48174&lt;/li&gt;
&lt;li&gt;Fixed bugs in indexshipper (&lt;code&gt;tsdb&lt;/code&gt;, &lt;code&gt;boltdb-shipper&lt;/code&gt;) that could result in not showing all ingested logs in query results.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For a full list of all changes and fixes, refer to the &lt;a href=&#34;https://github.com/grafana/loki/blob/release-2.9.x/CHANGELOG.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;CHANGELOG&lt;/a&gt;.&lt;/p&gt;
]]></content><description>&lt;h1 id="v29">V2.9&lt;/h1>
&lt;p>Grafana Labs is excited to announce the release of Loki 2.9.0 Here&amp;rsquo;s a summary of new enhancements and important fixes:&lt;/p>
&lt;h2 id="features-and-enhancements">Features and enhancements&lt;/h2>
&lt;ul>
&lt;li>
&lt;p>&lt;strong>Structured metadata&lt;/strong>: The
&lt;a href="/docs/loki/v3.0.x/get-started/labels/structured-metadata/">Structured Metadata&lt;/a> feature, which was introduced as experimental in release 2.9.0, is generally available as of release 2.9.4.&lt;/p></description></item><item><title>V2.8</title><link>https://grafana.com/docs/loki/v3.0.x/release-notes/v2-8/</link><pubDate>Sat, 14 Mar 2026 10:06:05 +0000</pubDate><guid>https://grafana.com/docs/loki/v3.0.x/release-notes/v2-8/</guid><content><![CDATA[&lt;h1 id=&#34;v28&#34;&gt;V2.8&lt;/h1&gt;
&lt;p&gt;Grafana Labs is excited to announce the release of Loki 2.8. Here&amp;rsquo;s a summary of new enhancements and important fixes:&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;TSDB index no longer experimental&lt;/strong&gt; After extensive testing of the new TSDB index in our Grafana Cloud Logs offering, we can safely announce that it is no longer experimental and encourage all Loki deployments to use it!&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Query blocker&lt;/strong&gt; Queries can now be blocked in the Querier/Ruler via a per-tenant runtime configuration.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;New &lt;code&gt;backend&lt;/code&gt; target&lt;/strong&gt; A new, third target was added to Loki&amp;rsquo;s &lt;em&gt;scalable&lt;/em&gt; configuration, which is the default configuration used in the Loki helm chart. This allows Loki to be run as 3 targets (&lt;code&gt;read&lt;/code&gt;, &lt;code&gt;write&lt;/code&gt;, and &lt;code&gt;backend&lt;/code&gt;) and makes the &lt;code&gt;read&lt;/code&gt; target stateless and therefore able to be run as a Kubernetes deployment that can be scaled automatically.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For a full list of all changes, look at the &lt;a href=&#34;https://github.com/grafana/loki/blob/release-2.8.x/CHANGELOG.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;CHANGELOG&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;upgrade-considerations&#34;&gt;Upgrade Considerations&lt;/h2&gt;
&lt;p&gt;As always, please read the &lt;a href=&#34;/docs/loki/v3.0.x/setup/upgrade/#270&#34;&gt;upgrade guide&lt;/a&gt; before upgrading Loki.&lt;/p&gt;
&lt;h2 id=&#34;bug-fixes&#34;&gt;Bug fixes&lt;/h2&gt;
&lt;h3 id=&#34;286-2023-10-17&#34;&gt;2.8.6 (2023-10-17)&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Upgrade go to v1.20.10, golang.org/x/net to v0.17.0 and grpc-go to v1.56.3 to patch CVE-2023-39325 / CVE-2023-44487&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;285-2023-09-14&#34;&gt;2.8.5 (2023-09-14)&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Update Docker base images to mitigate security vulnerability CVE-2022-48174&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;282-2023-05-03&#34;&gt;2.8.2 (2023-05-03)&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Update Go to 1.20.4 to address security vulnerabilities in the previous Go version.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Promtail&lt;/em&gt;: Add new &lt;code&gt;decompression&lt;/code&gt; configuration to customize the decompressor behavior.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;281-2023-04-21&#34;&gt;2.8.1 (2023-04-21)&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Fix bug that was dropping index if period is a zero value.&lt;/li&gt;
&lt;li&gt;Fix redis client to prevent it from incorrectly choosing cluster mode with local address.&lt;/li&gt;
&lt;li&gt;Update go to 1.20.3 to address security vulnerabilities in the previous go version.&lt;/li&gt;
&lt;li&gt;Update alpine image to 3.16.5 to address security vulnerabilities in the previous version.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Promtail&lt;/em&gt;: Fix journald support in amd64 binary build.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For a full list of all changes and fixes, look at the &lt;a href=&#34;https://github.com/grafana/loki/blob/release-2.8.x/CHANGELOG.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;CHANGELOG&lt;/a&gt;.&lt;/p&gt;
]]></content><description>&lt;h1 id="v28">V2.8&lt;/h1>
&lt;p>Grafana Labs is excited to announce the release of Loki 2.8. Here&amp;rsquo;s a summary of new enhancements and important fixes:&lt;/p>
&lt;h2 id="features-and-enhancements">Features and enhancements&lt;/h2>
&lt;ul>
&lt;li>&lt;strong>TSDB index no longer experimental&lt;/strong> After extensive testing of the new TSDB index in our Grafana Cloud Logs offering, we can safely announce that it is no longer experimental and encourage all Loki deployments to use it!&lt;/li>
&lt;li>&lt;strong>Query blocker&lt;/strong> Queries can now be blocked in the Querier/Ruler via a per-tenant runtime configuration.&lt;/li>
&lt;li>&lt;strong>New &lt;code>backend&lt;/code> target&lt;/strong> A new, third target was added to Loki&amp;rsquo;s &lt;em>scalable&lt;/em> configuration, which is the default configuration used in the Loki helm chart. This allows Loki to be run as 3 targets (&lt;code>read&lt;/code>, &lt;code>write&lt;/code>, and &lt;code>backend&lt;/code>) and makes the &lt;code>read&lt;/code> target stateless and therefore able to be run as a Kubernetes deployment that can be scaled automatically.&lt;/li>
&lt;/ul>
&lt;p>For a full list of all changes, look at the &lt;a href="https://github.com/grafana/loki/blob/release-2.8.x/CHANGELOG.md" target="_blank" rel="noopener noreferrer">CHANGELOG&lt;/a>.&lt;/p></description></item><item><title>V2.7</title><link>https://grafana.com/docs/loki/v3.0.x/release-notes/v2-7/</link><pubDate>Sat, 14 Mar 2026 10:06:05 +0000</pubDate><guid>https://grafana.com/docs/loki/v3.0.x/release-notes/v2-7/</guid><content><![CDATA[&lt;h1 id=&#34;v27&#34;&gt;V2.7&lt;/h1&gt;
&lt;p&gt;Grafana Labs is excited to announce the release of Loki 2.7. Here&amp;rsquo;s a summary of new enhancements and important fixes:&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;New Internal Server and TLS&lt;/strong&gt; TLS can now be configured everywhere and there is an internal server to allow ring, memberlist, and readiness handlers to continue to work without TLS.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Better Support for Azure Blob Storage&lt;/strong&gt; thanks to the ability to use Azure&amp;rsquo;s Service Principal Credentials.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Logs can now be pushed from the Loki canary&lt;/strong&gt; so you don&amp;rsquo;t have to rely on a scraping service to use the canary.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Additional &lt;code&gt;label_format&lt;/code&gt; fields&lt;/strong&gt; &lt;code&gt;__timestamp__&lt;/code&gt; and &lt;code&gt;__line__&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;fifocache&lt;/code&gt; has been renamed&lt;/strong&gt; The in-memory &lt;code&gt;fifocache&lt;/code&gt; has been renamed to &lt;code&gt;embedded-cache&lt;/code&gt;. Check &lt;a href=&#34;/docs/loki/v3.0.x/setup/upgrade/#270&#34;&gt;upgrade guide&lt;/a&gt; for more details&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;New HTTP endpoint for Ingester shutdown&lt;/strong&gt; that will also delete the ring token.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Faster label queries&lt;/strong&gt; thanks to new parallization.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Introducing Stream Sharding&lt;/strong&gt; an experimental new feature to help deal with very large streams.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Promtail&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;support for max stream limit&lt;/li&gt;
&lt;li&gt;config reload endpoint / signal&lt;/li&gt;
&lt;li&gt;compressed file support&lt;/li&gt;
&lt;li&gt;&lt;code&gt;lambda-promtail&lt;/code&gt; now supports Kinesis data stream events&lt;/li&gt;
&lt;li&gt;matches for the journal reader&lt;/li&gt;
&lt;li&gt;basic tracing support&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For a full list of all, look at the &lt;a href=&#34;https://github.com/grafana/loki/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;upgrade-considerations&#34;&gt;Upgrade Considerations&lt;/h2&gt;
&lt;p&gt;As always, please read the &lt;a href=&#34;/docs/loki/v3.0.x/setup/upgrade/#270&#34;&gt;upgrade guide&lt;/a&gt; before upgrading Loki.&lt;/p&gt;
&lt;h2 id=&#34;bug-fixes&#34;&gt;Bug fixes&lt;/h2&gt;
&lt;h3 id=&#34;275-2023-03-28&#34;&gt;2.7.5 (2023-03-28)&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Flush buffered logger on exit: this makes sure logs are printed if Loki crashes on startup.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;274-2023-02-24&#34;&gt;2.7.4 (2023-02-24)&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Fixed different streams for &lt;code&gt;cri&lt;/code&gt; tags ending on the same stream.&lt;/li&gt;
&lt;li&gt;Fixed the &lt;code&gt;userdata&lt;/code&gt; field (from Windows Event Log) being scraped incorrectly.&lt;/li&gt;
&lt;li&gt;Fixed &lt;code&gt;vector()&lt;/code&gt; function producing wrong timestamp.&lt;/li&gt;
&lt;li&gt;Fixed behavior for overlapping chunks with multiple stores.&lt;/li&gt;
&lt;li&gt;Fixed logs results caching causing query-frontend to return logs outside of query window.&lt;/li&gt;
&lt;li&gt;Fixed panics when:
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;/scheduler/ring&lt;/code&gt; endpoint is requested with scheduler ring disabled.&lt;/li&gt;
&lt;li&gt;LogQL clones a specific query.&lt;/li&gt;
&lt;li&gt;Promtail deals with invalid calls to &lt;code&gt;Details()&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;273-2023-02-01&#34;&gt;2.7.3 (2023-02-01)&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Fixed a bug in compactor that caused divide-by-zero panics when &lt;code&gt;startTime&lt;/code&gt; and &lt;code&gt;endTime&lt;/code&gt; of a delete request were equal.&lt;/li&gt;
&lt;li&gt;Fixed the output of the &lt;code&gt;--version&lt;/code&gt; command that showed an incorrect version information.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;272-2023-01-25&#34;&gt;2.7.2 (2023-01-25)&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Fixed bug in validation of &lt;code&gt;pattern&lt;/code&gt; and &lt;code&gt;regexp&lt;/code&gt; parsers where missing or empty parameters for these parsers caused panics.&lt;/li&gt;
&lt;li&gt;Fixed bugs in processing delete requests with line filters:
&lt;ul&gt;
&lt;li&gt;Whole chunks covered by delete requests with a line filter were incorrectly skipped.&lt;/li&gt;
&lt;li&gt;Chunks partially covered by delete requests with a line filter were not properly processed.
The part that was not covered by the delete request was rewritten with a line filter, while the part that was covered by the delete request was completely deleted.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Fixed bug in multi-tenant querying that caused HTTP 400 responses when multiple tenants where used in &lt;code&gt;X-Scope-OrgID&lt;/code&gt; header like so &lt;code&gt;tenant-a|tenant-b&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Upgraded Go build version and Docker container base images to 1.19.5 to mitigate &lt;a href=&#34;https://pkg.go.dev/vuln/GO-2022-1144&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;GO-2022-1144&lt;/a&gt; vulnerability.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;271-2022-12-09&#34;&gt;2.7.1 (2022-12-09)&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Add single compactor http client for delete and gennumber clients. This fixes a bug caused by the accidental introduction of different HTTP clients for compactor and gennumber operations that resulted in 404s when only the gennumber middlewares were enabled:&lt;/p&gt;

&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;console&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-console&#34;&gt;level=error ts=2022-10-18T14:13:41.598649348Z caller=delete_requests_client.go:211 msg=&amp;#34;error getting delete requests from the store&amp;#34; err=&amp;#34;unexpected status code: 404&amp;#34;
ts=2022-10-18T14:13:41.598697295Z caller=spanlogger.go:80 user=application level=error msg=&amp;#34;failed loading deletes for user&amp;#34; err=&amp;#34;unexpected status code: 404&amp;#34;&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Change default deletion mode to &lt;code&gt;filter-only&lt;/code&gt; on account of the bug (see below).&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&#34;known-issues&#34;&gt;Known Issues&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;There is a bug with the experimental deletion mode in 2.6.x and 2.7.x that in some cases can cause the wrong chunks to be deleted. As a result we have changed the default deletion mode to &lt;code&gt;filter-only&lt;/code&gt; until this bug has been addressed.&lt;/li&gt;
&lt;/ul&gt;
]]></content><description>&lt;h1 id="v27">V2.7&lt;/h1>
&lt;p>Grafana Labs is excited to announce the release of Loki 2.7. Here&amp;rsquo;s a summary of new enhancements and important fixes:&lt;/p>
&lt;h2 id="features-and-enhancements">Features and enhancements&lt;/h2>
&lt;ul>
&lt;li>&lt;strong>New Internal Server and TLS&lt;/strong> TLS can now be configured everywhere and there is an internal server to allow ring, memberlist, and readiness handlers to continue to work without TLS.&lt;/li>
&lt;li>&lt;strong>Better Support for Azure Blob Storage&lt;/strong> thanks to the ability to use Azure&amp;rsquo;s Service Principal Credentials.&lt;/li>
&lt;li>&lt;strong>Logs can now be pushed from the Loki canary&lt;/strong> so you don&amp;rsquo;t have to rely on a scraping service to use the canary.&lt;/li>
&lt;li>&lt;strong>Additional &lt;code>label_format&lt;/code> fields&lt;/strong> &lt;code>__timestamp__&lt;/code> and &lt;code>__line__&lt;/code>.&lt;/li>
&lt;li>&lt;strong>&lt;code>fifocache&lt;/code> has been renamed&lt;/strong> The in-memory &lt;code>fifocache&lt;/code> has been renamed to &lt;code>embedded-cache&lt;/code>. Check &lt;a href="/docs/loki/v3.0.x/setup/upgrade/#270">upgrade guide&lt;/a> for more details&lt;/li>
&lt;li>&lt;strong>New HTTP endpoint for Ingester shutdown&lt;/strong> that will also delete the ring token.&lt;/li>
&lt;li>&lt;strong>Faster label queries&lt;/strong> thanks to new parallization.&lt;/li>
&lt;li>&lt;strong>Introducing Stream Sharding&lt;/strong> an experimental new feature to help deal with very large streams.&lt;/li>
&lt;li>&lt;strong>Promtail&lt;/strong>
&lt;ul>
&lt;li>support for max stream limit&lt;/li>
&lt;li>config reload endpoint / signal&lt;/li>
&lt;li>compressed file support&lt;/li>
&lt;li>&lt;code>lambda-promtail&lt;/code> now supports Kinesis data stream events&lt;/li>
&lt;li>matches for the journal reader&lt;/li>
&lt;li>basic tracing support&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;p>For a full list of all, look at the &lt;a href="https://github.com/grafana/loki/blob/main/CHANGELOG.md" target="_blank" rel="noopener noreferrer">CHANGELOG&lt;/a>.&lt;/p></description></item><item><title>V2.6</title><link>https://grafana.com/docs/loki/v3.0.x/release-notes/v2-6/</link><pubDate>Sat, 14 Mar 2026 10:06:05 +0000</pubDate><guid>https://grafana.com/docs/loki/v3.0.x/release-notes/v2-6/</guid><content><![CDATA[&lt;h1 id=&#34;v26&#34;&gt;V2.6&lt;/h1&gt;
&lt;p&gt;Grafana Labs is excited to announce the release of Loki 2.6. Here&amp;rsquo;s a summary of new enhancements and important fixes.&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;Query multiple tenants at once.&lt;/strong&gt; We&amp;rsquo;ve introduced cross-tenant query federation, which allows you to issue one query to multiple tenants and get a single, consolidated result. This is great for scenarios where you need a global view of logs within your multi-tenant cluster. For more information on how to enable this feature, see &lt;a href=&#34;/docs/loki/v3.0.x/operations/multi-tenancy/&#34;&gt;Multi-Tenancy&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Filter out and delete certain log lines from query results.&lt;/strong&gt; This is particularly useful in cases where users may accidentally write sensitive information to Loki that they do not want exposed. Users craft a LogQL query that selects the specific lines they&amp;rsquo;re interested in, and then can choose to either filter out those lines from query results, or permanently delete them from Loki&amp;rsquo;s storage. For more information, see &lt;a href=&#34;/docs/loki/v3.0.x/operations/storage/logs-deletion/&#34;&gt;Logs Deletion&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Improved query performance on instant queries.&lt;/strong&gt; Loki now splits instant queries with a large time range (for example, &lt;code&gt;sum(rate({app=&amp;quot;foo&amp;quot;}[6h]))&lt;/code&gt;) into several smaller sub-queries and executes them in parallel. Users don&amp;rsquo;t need to take any action to enjoy this performance improvement; however, they can adjust the number of sub-queries generated by modifying the &lt;code&gt;split_queries_by_interval&lt;/code&gt; configuration parameter, which currently defaults to &lt;code&gt;30m&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Support Baidu AI Cloud as a storage backend.&lt;/strong&gt; Loki users can now use Baidu Object Storage (BOS) as their storage backend. See 
    &lt;a href=&#34;/docs/loki/v3.0.x/configure/&#34;&gt;bos_storage_config&lt;/a&gt; for details.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For a full list of all changes, look at the &lt;a href=&#34;https://github.com/grafana/loki/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;upgrade-considerations&#34;&gt;Upgrade Considerations&lt;/h2&gt;
&lt;p&gt;As always, please read the &lt;a href=&#34;/docs/loki/v3.0.x/setup/upgrade/#260&#34;&gt;upgrade guide&lt;/a&gt; before upgrading Loki.&lt;/p&gt;
&lt;h2 id=&#34;bug-fixes&#34;&gt;Bug fixes&lt;/h2&gt;
&lt;h3 id=&#34;261&#34;&gt;2.6.1&lt;/h3&gt;
&lt;p&gt;v2.6.1 includes following fixes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/grafana/loki/pull/6658&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;PR 6658&lt;/a&gt; &lt;strong&gt;JordanRushing&lt;/strong&gt;: Updated the versions of &lt;a href=&#34;https://github.com/grafana/dskit&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;dskit&lt;/a&gt; and &lt;a href=&#34;https://github.com/grafana/memberlist&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;memberlist&lt;/a&gt; to allow configuring cluster labels for memberlist. Cluster labels prevent mixing the members between two consistent hash rings of separate applications that are run on the same Kubernetes cluster.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/grafana/loki/pull/6681&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;PR 6681&lt;/a&gt; &lt;strong&gt;MasslessParticle&lt;/strong&gt; Fixed an HTTP connection leak between the querier and the compactor when the log entry deletion feature is enabled.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/grafana/loki/pull/6583&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;PR 6583&lt;/a&gt; &lt;strong&gt;MasslessParticle&lt;/strong&gt; Fixed noisy error messages when the log entry deletion feature is disabled for a tenant&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;260-bug-fixes&#34;&gt;2.6.0 bug fixes&lt;/h3&gt;
&lt;p&gt;V2.6.0 fixes numerous bugs. The &lt;a href=&#34;https://github.com/grafana/loki/blob/main/CHANGELOG.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;CHANGELOG&lt;/a&gt; has the complete list.&lt;/p&gt;
&lt;p&gt;A summary of some of the more important fixes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/grafana/loki/pull/6152&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;PR 6152&lt;/a&gt; Fixed a scenario where live tailing of logs could cause unbounded ingester memory growth.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/grafana/loki/pull/5685&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;PR 5685&lt;/a&gt; Fixed a bug in Loki&amp;rsquo;s push request parser that allowed users to send arbitrary non-string data as a log line. We now test that the pushed values are valid strings and return an error if values are not valid strings.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/grafana/loki/pull/5799&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;PR 5799&lt;/a&gt; Fixed incorrect deduplication logic for cases where multiple log entries with the same timestamp exist.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/grafana/loki/pull/5888&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;PR 5888&lt;/a&gt; Fixed a bug in the 
    &lt;a href=&#34;/docs/loki/v3.0.x/configure/#common&#34;&gt;common configuration&lt;/a&gt; where the &lt;code&gt;instance_interface_names&lt;/code&gt; setting was getting overwritten by the default ring configuration.&lt;/li&gt;
&lt;/ul&gt;
]]></content><description>&lt;h1 id="v26">V2.6&lt;/h1>
&lt;p>Grafana Labs is excited to announce the release of Loki 2.6. Here&amp;rsquo;s a summary of new enhancements and important fixes.&lt;/p>
&lt;h2 id="features-and-enhancements">Features and enhancements&lt;/h2>
&lt;ul>
&lt;li>&lt;strong>Query multiple tenants at once.&lt;/strong> We&amp;rsquo;ve introduced cross-tenant query federation, which allows you to issue one query to multiple tenants and get a single, consolidated result. This is great for scenarios where you need a global view of logs within your multi-tenant cluster. For more information on how to enable this feature, see &lt;a href="/docs/loki/v3.0.x/operations/multi-tenancy/">Multi-Tenancy&lt;/a>.&lt;/li>
&lt;li>&lt;strong>Filter out and delete certain log lines from query results.&lt;/strong> This is particularly useful in cases where users may accidentally write sensitive information to Loki that they do not want exposed. Users craft a LogQL query that selects the specific lines they&amp;rsquo;re interested in, and then can choose to either filter out those lines from query results, or permanently delete them from Loki&amp;rsquo;s storage. For more information, see &lt;a href="/docs/loki/v3.0.x/operations/storage/logs-deletion/">Logs Deletion&lt;/a>.&lt;/li>
&lt;li>&lt;strong>Improved query performance on instant queries.&lt;/strong> Loki now splits instant queries with a large time range (for example, &lt;code>sum(rate({app=&amp;quot;foo&amp;quot;}[6h]))&lt;/code>) into several smaller sub-queries and executes them in parallel. Users don&amp;rsquo;t need to take any action to enjoy this performance improvement; however, they can adjust the number of sub-queries generated by modifying the &lt;code>split_queries_by_interval&lt;/code> configuration parameter, which currently defaults to &lt;code>30m&lt;/code>.&lt;/li>
&lt;li>&lt;strong>Support Baidu AI Cloud as a storage backend.&lt;/strong> Loki users can now use Baidu Object Storage (BOS) as their storage backend. See
&lt;a href="/docs/loki/v3.0.x/configure/">bos_storage_config&lt;/a> for details.&lt;/li>
&lt;/ul>
&lt;p>For a full list of all changes, look at the &lt;a href="https://github.com/grafana/loki/blob/main/CHANGELOG.md" target="_blank" rel="noopener noreferrer">CHANGELOG&lt;/a>.&lt;/p></description></item><item><title>V2.5</title><link>https://grafana.com/docs/loki/v3.0.x/release-notes/v2-5/</link><pubDate>Sat, 14 Mar 2026 10:06:05 +0000</pubDate><guid>https://grafana.com/docs/loki/v3.0.x/release-notes/v2-5/</guid><content><![CDATA[&lt;h1 id=&#34;v25&#34;&gt;V2.5&lt;/h1&gt;
&lt;p&gt;It has been nearly 6 months since Loki 2.4 was released, and we’ve been busy making Loki better than ever. Here&amp;rsquo;s a summary of new enhancements and important fixes.&lt;/p&gt;
&lt;h2 id=&#34;features-and-enhancements&#34;&gt;Features and enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Thanks to @bboreham for taking a deep dive on the Go &lt;code&gt;regexp&lt;/code&gt; library, and for creating a fork which greatly &lt;strong&gt;&lt;a href=&#34;https://github.com/grafana/loki/pull/5315&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;improves the performance of common regex uses cases in Loki.&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&#34;https://github.com/grafana/loki/pull/5317&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Binary operations are now significantly faster&lt;/a&gt;&lt;/strong&gt;, taking full advantage of Loki&amp;rsquo;s parallelism.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&#34;https://github.com/grafana/loki/pull/5054&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;A new schema is available&lt;/a&gt;&lt;/strong&gt;, which uses more path prefixes to avoid rate limits on S3.&lt;/li&gt;
&lt;li&gt;That same schema change &lt;strong&gt;&lt;a href=&#34;https://github.com/grafana/loki/pull/5291&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;was also added to the filesystem store&lt;/a&gt;&lt;/strong&gt;, which avoids using one directory to store every chunk.&lt;/li&gt;
&lt;li&gt;A new capability for &lt;strong&gt;&lt;a href=&#34;https://github.com/grafana/loki/pull/4826&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;hedging requests to storage&lt;/a&gt;&lt;/strong&gt; improves performance on highly parallelized queries. Refer to the 
    &lt;a href=&#34;/docs/loki/v3.0.x/configure/#storage_config&#34;&gt;hedging configuration&lt;/a&gt; under the &lt;code&gt;storage_config&lt;/code&gt; block for more information.&lt;/li&gt;
&lt;li&gt;Promtail has several new ways to ingest logs:
&lt;ul&gt;
&lt;li&gt;The &lt;strong&gt;&lt;a href=&#34;https://github.com/grafana/loki/pull/4911&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;ability to do service discovery and tailing directly from the Docker daemon&lt;/a&gt;&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&#34;https://github.com/grafana/loki/pull/4813&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Fetching logs directly from Cloudflare&lt;/a&gt;&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&#34;https://github.com/grafana/loki/pull/4744&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Receiving logs directly in Graylog Extended Log Format (GELF)&lt;/a&gt;&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Promtail permits &lt;strong&gt;&lt;a href=&#34;https://github.com/grafana/loki/pull/5031&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;client-side global rate limiting&lt;/a&gt;&lt;/strong&gt; and &lt;strong&gt;&lt;a href=&#34;https://github.com/grafana/loki/pull/5051&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;pipeline-configurable rate limiting&lt;/a&gt;&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For a full list of all changes, look at the &lt;a href=&#34;https://github.com/grafana/loki/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;upgrade-considerations&#34;&gt;Upgrade Considerations&lt;/h2&gt;
&lt;p&gt;As always, please read the &lt;a href=&#34;/docs/loki/v3.0.x/setup/upgrade/#250&#34;&gt;upgrade guide&lt;/a&gt; before upgrading Loki.&lt;/p&gt;
&lt;h3 id=&#34;changes-to-the-config-split_queries_by_interval&#34;&gt;Changes to the config &lt;code&gt;split_queries_by_interval&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The most likely impact many people will see is Loki failing to start because of a change in the YAML configuration for &lt;code&gt;split_queries_by_interval&lt;/code&gt;. It was previously possible to define this value in two places.&lt;/p&gt;

&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;query_range:
  split_queries_by_interval: 10m&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;and/or&lt;/p&gt;

&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;limits_config:
  split_queries_by_interval: 10m&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;In 2.5.0 it can &lt;strong&gt;only be defined in the &lt;code&gt;limits_config&lt;/code&gt; section&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Loki will fail to start if you do not remove the &lt;code&gt;split_queries_by_interval&lt;/code&gt; configuration parameter from the &lt;code&gt;query_range&lt;/code&gt; section.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Additionally, it has a new default value of &lt;code&gt;30m&lt;/code&gt; rather than &lt;code&gt;0&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;The CLI flag is not changed and remains &lt;code&gt;querier.split-queries-by-interval&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&#34;more-parallelism-by-default&#34;&gt;More parallelism by default&lt;/h3&gt;
&lt;p&gt;We continue to move defaults in Loki to leverage parallelism in all configurations, including the single binary.&lt;/p&gt;
&lt;p&gt;In v2.5, all queries will be split and sharded by default. This will likely result in increased memory and CPU usage for Loki processes during queries, if you didn’t previously have these values enabled.&lt;/p&gt;
&lt;h2 id=&#34;usage-reporting&#34;&gt;Usage reporting&lt;/h2&gt;
&lt;p&gt;Loki 2.5 includes code we added to report anonymous usage statistics back to Grafana Labs, &lt;a href=&#34;https://github.com/grafana/loki/issues/5062&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;an issue was created to outline the intent&lt;/a&gt;, and what went into the final implementation &lt;a href=&#34;https://github.com/grafana/loki/blob/v2.5.0/pkg/usagestats/stats.go#L75&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;can be seen here in the source&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Usage reporting helps provide anonymous information on how people use Loki and what the Loki team should focus on for features and documentation. No private information is collected, and all reports are completely anonymous.&lt;/p&gt;
&lt;p&gt;If possible, we ask you to leave the usage reporting feature enabled and help us understand more about Loki! We are also working to figure out how we can share this info with the community so everyone can watch Loki grow.&lt;/p&gt;
&lt;p&gt;If you would rather not participate in usage stats reporting, 
    &lt;a href=&#34;/docs/loki/v3.0.x/configuration/#analytics&#34;&gt;the feature can be disabled in config&lt;/a&gt;&lt;/p&gt;

&lt;div class=&#34;code-snippet code-snippet__mini&#34;&gt;&lt;div class=&#34;lang-toolbar__mini&#34;&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&gt;&lt;div class=&#34;code-snippet code-snippet__border&#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-none&#34;&gt;analytics:
  reporting_enabled: false&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h2 id=&#34;bug-fixes&#34;&gt;Bug fixes&lt;/h2&gt;
&lt;h3 id=&#34;250-bug-fixes&#34;&gt;2.5.0 bug fixes&lt;/h3&gt;
&lt;p&gt;V2.5.0 fixes numerous bugs. The &lt;a href=&#34;https://github.com/grafana/loki/blob/main/CHANGELOG.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;CHANGELOG&lt;/a&gt; has the complete list.&lt;/p&gt;
&lt;p&gt;A summary of some of the more important fixes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Query correctness:
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/grafana/loki/pull/5474&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;PR 5474&lt;/a&gt; &lt;strong&gt;cyriltovena&lt;/strong&gt;: Disable sharding of count/avg when labels are mutated&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/grafana/loki/pull/5444&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;PR 5444&lt;/a&gt; &lt;strong&gt;cyriltovena&lt;/strong&gt;: Do not insert missing point when sharding&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/grafana/loki/pull/5423&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;PR 5423&lt;/a&gt; &lt;strong&gt;cyriltovena&lt;/strong&gt;: Correctly sets hash value for headblock iterator&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/grafana/loki/pull/5289&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;PR 5289&lt;/a&gt; &lt;strong&gt;cyriltovena&lt;/strong&gt;: Fixes log deduplication when mutating Labels using LogQL&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/grafana/loki/pull/5006&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;PR 5006&lt;/a&gt; &lt;strong&gt;sandeepsukhani&lt;/strong&gt;: Fix splitting of queries when step is larger than split interval&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/grafana/loki/pull/5413&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;PR 5413&lt;/a&gt; &lt;strong&gt;owen-d&lt;/strong&gt;: A deadlock in the Azure blob client&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/grafana/loki/pull/5334&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;PR 5334&lt;/a&gt; &lt;strong&gt;kavirajk&lt;/strong&gt;: A fix in live tailing that could lead to exploding memory usage&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/grafana/loki/pull/5144&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;PR 5144&lt;/a&gt; &lt;strong&gt;owen-d&lt;/strong&gt;: A fix for the ruler when trying to use Basic Auth for remote write&lt;/li&gt;
&lt;li&gt;Query cancellation:
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/grafana/loki/pull/5113&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;PR 5113&lt;/a&gt; &lt;strong&gt;kavirajk&lt;/strong&gt;: Fix cancel issue between query-frontend and query scheduler&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/grafana/loki/pull/5080&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;PR 5080&lt;/a&gt; &lt;strong&gt;kavirajk&lt;/strong&gt;: Handle &lt;code&gt;context&lt;/code&gt; cancellation in some of the &lt;code&gt;querier&lt;/code&gt; downstream requests&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/grafana/loki/pull/5075&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;PR 5075&lt;/a&gt; &lt;strong&gt;cyriltovena&lt;/strong&gt;: Fixes a possible cancellation issue in the frontend&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/grafana/loki/pull/4741&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;PR 4741&lt;/a&gt; &lt;strong&gt;sandeepsukhani&lt;/strong&gt;: An issue where retention didn&amp;rsquo;t cleanup the index completely&lt;/li&gt;
&lt;/ul&gt;
]]></content><description>&lt;h1 id="v25">V2.5&lt;/h1>
&lt;p>It has been nearly 6 months since Loki 2.4 was released, and we’ve been busy making Loki better than ever. Here&amp;rsquo;s a summary of new enhancements and important fixes.&lt;/p></description></item><item><title>V2.4</title><link>https://grafana.com/docs/loki/v3.0.x/release-notes/v2-4/</link><pubDate>Sat, 14 Mar 2026 10:06:05 +0000</pubDate><guid>https://grafana.com/docs/loki/v3.0.x/release-notes/v2-4/</guid><content><![CDATA[&lt;h1 id=&#34;v24&#34;&gt;V2.4&lt;/h1&gt;
&lt;p&gt;Loki 2.4 focuses on two items:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Making it easier to get your logs into Loki.&lt;/li&gt;
&lt;li&gt;Making Loki easier to run and operate. Anyone not using Kubernetes or avoiding microservices should pay close attention: this release has a lot for you.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;features-and-enhancements&#34;&gt;Features and enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
    &lt;a href=&#34;/docs/loki/v3.0.x/configure/#accept-out-of-order-writes&#34;&gt;&lt;strong&gt;Loki no longer requires logs to be sent in perfect chronological order.&lt;/strong&gt;&lt;/a&gt; Support for out of order logs is one of the most highly requested features for Loki. The strict ordering constraint has been removed.&lt;/li&gt;
&lt;li&gt;Scaling Loki is now easier with a hybrid deployment mode that falls between our single binary and our microservices. The &lt;a href=&#34;/docs/loki/v3.0.x/get-started/deployment-modes/&#34;&gt;Simple scalable deployment&lt;/a&gt; scales Loki with new &lt;code&gt;read&lt;/code&gt; and &lt;code&gt;write&lt;/code&gt; targets. Where previously you would have needed Kubernetes and the microservices approach to start tapping into Loki’s potential, it’s now possible to do this in a simpler way.&lt;/li&gt;
&lt;li&gt;The new 
    &lt;a href=&#34;/docs/loki/v3.0.x/configure/#common&#34;&gt;&lt;code&gt;common&lt;/code&gt; section&lt;/a&gt; results in a 70% smaller Loki configuration. Pair that with updated defaults and Loki comes out of the box with more appropriate defaults and limits. Check out the &lt;a href=&#34;https://github.com/grafana/loki/blob/main/cmd/loki/loki-local-config.yaml&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;example local configuration&lt;/a&gt; as the new reference for running Loki.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/docs/loki/v3.0.x/alert/#recording-rules&#34;&gt;&lt;strong&gt;Recording rules&lt;/strong&gt;&lt;/a&gt; are no longer an experimental feature. We&amp;rsquo;ve given them a more resilient implementation which leverages the existing write ahead log code in Prometheus.&lt;/li&gt;
&lt;li&gt;The new &lt;a href=&#34;/docs/loki/v3.0.x/send-data/promtail/scraping/#kafka&#34;&gt;&lt;strong&gt;Promtail Kafka Consumer&lt;/strong&gt;&lt;/a&gt; can easily get your logs out of Kafka and into Loki.&lt;/li&gt;
&lt;li&gt;There are &lt;strong&gt;nice LogQL enhancements&lt;/strong&gt;, thanks to the amazing Loki community. LogQL now has &lt;a href=&#34;/docs/loki/v3.0.x/query/#many-to-one-and-one-to-many-vector-matches&#34;&gt;group_left and group_right&lt;/a&gt;. And, the &lt;code&gt;label_format&lt;/code&gt; and &lt;code&gt;line_format&lt;/code&gt; functions now support &lt;a href=&#34;/docs/loki/v3.0.x/query/template_functions/#now&#34;&gt;working with dates and times&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Another great community contribution allows Promtail to &lt;a href=&#34;/docs/loki/v3.0.x/send-data/promtail/configuration/#loki_push_api&#34;&gt;&lt;strong&gt;accept ndjson and plaintext log files over HTTP&lt;/strong&gt;&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;All in all, about 260 PR’s went into Loki 2.4, and we thank everyone for helping us make the best Loki yet.&lt;/p&gt;
&lt;p&gt;For a full list of all changes, look at the &lt;a href=&#34;https://github.com/grafana/loki/blob/main/CHANGELOG.md#240-20211105&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;CHANGELOG&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;upgrade-considerations&#34;&gt;Upgrade Considerations&lt;/h2&gt;
&lt;p&gt;Please read the &lt;a href=&#34;/docs/loki/v3.0.x/setup/upgrade/#240&#34;&gt;upgrade guide&lt;/a&gt; before updating Loki.&lt;/p&gt;
&lt;p&gt;We made a lot of changes to Loki’s configuration as part of this release.
We have tried our best to make sure changes are compatible with existing configurations, however some changes to default limits may impact users who didn&amp;rsquo;t have values explicitly set for these limits in their configuration files.&lt;/p&gt;
&lt;h3 id=&#34;v240-changes-to-defaults&#34;&gt;v2.4.0 changes to defaults&lt;/h3&gt;
&lt;p&gt;Here is a list of limit defaults that have changed in v2.4.0:&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;config&lt;/th&gt;
              &lt;th&gt;new default&lt;/th&gt;
              &lt;th&gt;old default&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;ingestion_rate_strategy&lt;/td&gt;
              &lt;td&gt;&amp;ldquo;global&amp;rdquo;&lt;/td&gt;
              &lt;td&gt;&amp;ldquo;local&amp;rdquo;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;max_global_streams_per_user&lt;/td&gt;
              &lt;td&gt;5000&lt;/td&gt;
              &lt;td&gt;0 (no limit)&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;max_query_length&lt;/td&gt;
              &lt;td&gt;&amp;ldquo;721h&amp;rdquo;&lt;/td&gt;
              &lt;td&gt;&amp;ldquo;0h&amp;rdquo; (no limit)&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;max_query_parallelism&lt;/td&gt;
              &lt;td&gt;32&lt;/td&gt;
              &lt;td&gt;14&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;max_streams_per_user&lt;/td&gt;
              &lt;td&gt;0 (no limit)&lt;/td&gt;
              &lt;td&gt;10000&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;reject_old_samples&lt;/td&gt;
              &lt;td&gt;true&lt;/td&gt;
              &lt;td&gt;false&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;reject_old_samples_max_age&lt;/td&gt;
              &lt;td&gt;&amp;ldquo;168h&amp;rdquo;&lt;/td&gt;
              &lt;td&gt;&amp;ldquo;336h&amp;rdquo;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;per_stream_rate_limit&lt;/td&gt;
              &lt;td&gt;3MB&lt;/td&gt;
              &lt;td&gt;-&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;per_stream_rate_limit_burst&lt;/td&gt;
              &lt;td&gt;15MB&lt;/td&gt;
              &lt;td&gt;-&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;We have enabled the &lt;a href=&#34;https://github.com/grafana/loki/pull/4519&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;in-memory FIFO cache by default&lt;/a&gt; when no existing external cache is configured. This helps improve Loki&amp;rsquo;s performance, however it will also allow Loki to consume more memory.&lt;/p&gt;
&lt;h3 id=&#34;v242-changes-to-defaults&#34;&gt;v2.4.2 changes to defaults&lt;/h3&gt;
&lt;p&gt;Here is a list of limit defaults that have changed in v2.4.2, add in &lt;a href=&#34;https://github.com/grafana/loki/pull/5077&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;PR 5077&lt;/a&gt;:&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;config&lt;/th&gt;
              &lt;th&gt;new default&lt;/th&gt;
              &lt;th&gt;old default&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;parallelise_shardable_queries&lt;/td&gt;
              &lt;td&gt;true&lt;/td&gt;
              &lt;td&gt;false&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;split_queries_by_interval&lt;/td&gt;
              &lt;td&gt;30m&lt;/td&gt;
              &lt;td&gt;0s&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;query_ingesters_within&lt;/td&gt;
              &lt;td&gt;3h&lt;/td&gt;
              &lt;td&gt;0s&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;max_chunk_age&lt;/td&gt;
              &lt;td&gt;2h&lt;/td&gt;
              &lt;td&gt;1h&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;max_concurrent&lt;/td&gt;
              &lt;td&gt;10&lt;/td&gt;
              &lt;td&gt;20&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h2 id=&#34;bug-fixes&#34;&gt;Bug fixes&lt;/h2&gt;
&lt;h3 id=&#34;242-bug-fixes&#34;&gt;2.4.2 bug fixes&lt;/h3&gt;
&lt;p&gt;2.4.2 fixes these bugs:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/grafana/loki/pull/4968&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;PR 4968&lt;/a&gt; &lt;strong&gt;trevorwhitney&lt;/strong&gt;: Fixes a bug in which querying ingesters wrongly returns a ruler,
causing the internal server error &lt;code&gt;code = Unimplemented&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/grafana/loki/pull/4875&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;PR 4875&lt;/a&gt; &lt;strong&gt;trevorwhitney&lt;/strong&gt;: Honor the replication factor specified in the common configuration block when &lt;code&gt;memberlist&lt;/code&gt; is the consistent hash ring store.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/grafana/loki/pull/4792&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;PR 4792&lt;/a&gt; &lt;strong&gt;AndreZiviani&lt;/strong&gt;: Corrects the default values of configuration options in the documentation for:
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;scheduler_dns_lookup_period&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;min_ready_duration&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;final_sleep&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;max_transfer_retries&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;chunk_retain_period&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;chunk_target_size&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;batch_size&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;timeout&lt;/code&gt; (for Redis requests)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;241-bug-fixes&#34;&gt;2.4.1 bug fixes&lt;/h3&gt;
&lt;p&gt;2.4.1 fixes two bugs in the 2.4.0 release:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/grafana/loki/pull/4687&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;PR 4687&lt;/a&gt; &lt;strong&gt;owen-d&lt;/strong&gt;: Eliminate a compactor panic when not using a tenant overrides file.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/grafana/loki/pull/4681&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;PR 4681&lt;/a&gt; &lt;strong&gt;slim-bean&lt;/strong&gt;: Correct the initialization of the &lt;code&gt;read&lt;/code&gt; target. Incorrect initialization resulted in query gaps after a chunk was flushed and before the querier downloaded new index tables.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;240-bug-fixes&#34;&gt;2.4.0 bug fixes&lt;/h3&gt;
&lt;p&gt;Here are some of the more important fixes in version 2.4.0:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/grafana/loki/pull/4598&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;PR 4598&lt;/a&gt; &lt;strong&gt;kavirajk&lt;/strong&gt;: Fix the IP matcher lexer to differentiate a filter from an identifier.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/grafana/loki/pull/4563&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;PR 4563&lt;/a&gt; &lt;strong&gt;cyriltovena&lt;/strong&gt;: Fixes the Series function to properly handle sharding.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/grafana/loki/pull/4518&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;PR 4518&lt;/a&gt; &lt;strong&gt;slim-bean&lt;/strong&gt;: Fixes a bug in which items are returned to a sync.Pool incorrectly.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/grafana/loki/pull/4411&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;PR 4411&lt;/a&gt; &lt;strong&gt;slim-bean&lt;/strong&gt;: Fixes a frontend bug which caused it to wait for results which would never arrive.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/grafana/loki/pull/4238&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;PR 4238&lt;/a&gt; &lt;strong&gt;liguozhong&lt;/strong&gt;: Fixes a distributor goroutine leak.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;security-fixes&#34;&gt;Security fixes&lt;/h2&gt;
&lt;h3 id=&#34;240-security-fixes&#34;&gt;2.4.0 security fixes&lt;/h3&gt;
&lt;p&gt;Version 2.4.0 contains one security-related fix:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://github.com/grafana/loki/pull/4627&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;PR 4627&lt;/a&gt; Explicitly define allowed HTTP methods on HTTP endpoints.&lt;/p&gt;
&lt;p&gt;A community user noticed that all Loki endpoints would respond to HTTP OPTIONS requests, and the proxy they placed in front of Loki responsible for HTTP authentication would pass OPTIONS requests unauthenticated to Loki, allowing users to make unauthenticated/unauthorized queries to Loki. The fix restricts the type of HTTP methods allowed on each endpoint and disallows OPTIONS requests.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
]]></content><description>&lt;h1 id="v24">V2.4&lt;/h1>
&lt;p>Loki 2.4 focuses on two items:&lt;/p>
&lt;ul>
&lt;li>Making it easier to get your logs into Loki.&lt;/li>
&lt;li>Making Loki easier to run and operate. Anyone not using Kubernetes or avoiding microservices should pay close attention: this release has a lot for you.&lt;/li>
&lt;/ul>
&lt;h2 id="features-and-enhancements">Features and enhancements&lt;/h2>
&lt;ul>
&lt;li>
&lt;a href="/docs/loki/v3.0.x/configure/#accept-out-of-order-writes">&lt;strong>Loki no longer requires logs to be sent in perfect chronological order.&lt;/strong>&lt;/a> Support for out of order logs is one of the most highly requested features for Loki. The strict ordering constraint has been removed.&lt;/li>
&lt;li>Scaling Loki is now easier with a hybrid deployment mode that falls between our single binary and our microservices. The &lt;a href="/docs/loki/v3.0.x/get-started/deployment-modes/">Simple scalable deployment&lt;/a> scales Loki with new &lt;code>read&lt;/code> and &lt;code>write&lt;/code> targets. Where previously you would have needed Kubernetes and the microservices approach to start tapping into Loki’s potential, it’s now possible to do this in a simpler way.&lt;/li>
&lt;li>The new
&lt;a href="/docs/loki/v3.0.x/configure/#common">&lt;code>common&lt;/code> section&lt;/a> results in a 70% smaller Loki configuration. Pair that with updated defaults and Loki comes out of the box with more appropriate defaults and limits. Check out the &lt;a href="https://github.com/grafana/loki/blob/main/cmd/loki/loki-local-config.yaml" target="_blank" rel="noopener noreferrer">example local configuration&lt;/a> as the new reference for running Loki.&lt;/li>
&lt;li>&lt;a href="/docs/loki/v3.0.x/alert/#recording-rules">&lt;strong>Recording rules&lt;/strong>&lt;/a> are no longer an experimental feature. We&amp;rsquo;ve given them a more resilient implementation which leverages the existing write ahead log code in Prometheus.&lt;/li>
&lt;li>The new &lt;a href="/docs/loki/v3.0.x/send-data/promtail/scraping/#kafka">&lt;strong>Promtail Kafka Consumer&lt;/strong>&lt;/a> can easily get your logs out of Kafka and into Loki.&lt;/li>
&lt;li>There are &lt;strong>nice LogQL enhancements&lt;/strong>, thanks to the amazing Loki community. LogQL now has &lt;a href="/docs/loki/v3.0.x/query/#many-to-one-and-one-to-many-vector-matches">group_left and group_right&lt;/a>. And, the &lt;code>label_format&lt;/code> and &lt;code>line_format&lt;/code> functions now support &lt;a href="/docs/loki/v3.0.x/query/template_functions/#now">working with dates and times&lt;/a>.&lt;/li>
&lt;li>Another great community contribution allows Promtail to &lt;a href="/docs/loki/v3.0.x/send-data/promtail/configuration/#loki_push_api">&lt;strong>accept ndjson and plaintext log files over HTTP&lt;/strong>&lt;/a>.&lt;/li>
&lt;/ul>
&lt;p>All in all, about 260 PR’s went into Loki 2.4, and we thank everyone for helping us make the best Loki yet.&lt;/p></description></item><item><title>V2.3</title><link>https://grafana.com/docs/loki/v3.0.x/release-notes/v2-3/</link><pubDate>Sat, 14 Mar 2026 10:06:05 +0000</pubDate><guid>https://grafana.com/docs/loki/v3.0.x/release-notes/v2-3/</guid><content><![CDATA[&lt;h1 id=&#34;v23&#34;&gt;V2.3&lt;/h1&gt;
&lt;p&gt;The Loki team is excited to announce the release of Loki 2.3!&lt;/p&gt;
&lt;p&gt;It&amp;rsquo;s been nearly 6 months since 2.2 was released and we have made good use of that time to bring forward several significant improvements and requested features.&lt;/p&gt;
&lt;p&gt;2.3 is also the first version of Loki released under the AGPLv3 license. You can &lt;a href=&#34;/licensing/&#34;&gt;read more about our licensing here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Some parts of the Loki repo will remain Apache-2.0 licensed (mainly clients and some tooling), for more details read &lt;a href=&#34;https://github.com/grafana/loki/blob/main/LICENSING.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;LICENSING.md&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;Loki now has the ability to apply &lt;a href=&#34;/docs/loki/v3.0.x/operations/storage/retention/&#34;&gt;custom retention&lt;/a&gt; based on stream selectors! This will allow much finer control over log retention all of which is now handled by Loki, no longer requiring the use of object store configs for retention.&lt;/li&gt;
&lt;li&gt;Coming along hand in hand with storing logs for longer durations is the ability to &lt;a href=&#34;/docs/loki/v3.0.x/operations/storage/logs-deletion/&#34;&gt;delete log streams&lt;/a&gt;. The initial implementation lets you submit delete request jobs which will be processed after 24 hours.&lt;/li&gt;
&lt;li&gt;A very exciting new LogQL parser has been introduced: the &lt;a href=&#34;/docs/loki/v3.0.x/query/log_queries/#parser-expression&#34;&gt;pattern parser&lt;/a&gt;. Much simpler and faster than regexp for log lines that have a little bit of structure to them such as the &lt;a href=&#34;https://en.wikipedia.org/wiki/Common_Log_Format&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Common Log Format&lt;/a&gt;. This is now Loki&amp;rsquo;s fastest parser so try it out on any of your log lines!&lt;/li&gt;
&lt;li&gt;Extending on the work of Alerting Rules, Loki now accepts &lt;a href=&#34;/docs/loki/v3.0.x/alert/#recording-rules&#34;&gt;recording rules&lt;/a&gt;. This lets you turn your logs into metrics and push them to Prometheus or any Prometheus compatible remote_write endpoint.&lt;/li&gt;
&lt;li&gt;LogQL can understand &lt;a href=&#34;/docs/loki/v3.0.x/query/ip/&#34;&gt;IP addresses&lt;/a&gt;! This enables filtering on IP addresses and subnet ranges.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For those of you running Loki as microservices, the following features will improve performance operations significantly for many operations.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We created an &lt;a href=&#34;/docs/loki/v3.0.x/operations/storage/boltdb-shipper/#index-gateway&#34;&gt;index gateway&lt;/a&gt; which takes on the task of downloading the boltdb-shipper index files allowing you to run your queriers without any local disk requirements, this is really helpful in Kubernetes environments where you can return your queriers from Statefulsets back to Deployments and save a lot of PVC costs and operational headaches.&lt;/li&gt;
&lt;li&gt;Ingester queriers &lt;a href=&#34;https://github.com/grafana/loki/pull/3852&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;are now shardable&lt;/a&gt;, this is a significant performance boost for high volume log streams when querying recent data.&lt;/li&gt;
&lt;li&gt;Instant queries can now be &lt;a href=&#34;https://github.com/grafana/loki/pull/3984&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;split and sharded&lt;/a&gt; making them just as fast as range queries.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;A very common feature requested has also been included in 2.3:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/grafana/loki/pull/3919&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;3919&lt;/a&gt; &lt;strong&gt;github-vincent-miszczak&lt;/strong&gt;: Add ingester.autoforget-unhealthy-timeout opt-in feature&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Without revisiting the decisions and discussions around the somewhat controversial behavior of &lt;em&gt;unhealthy&lt;/em&gt; ingesters, you can now decided how you would like them to be handled: manually or automatically.&lt;/p&gt;
&lt;p&gt;Lastly several useful additions to the LogQL query language have been included:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;More text/template functions are included for &lt;code&gt;label_format&lt;/code&gt; and &lt;code&gt;line_format&lt;/code&gt; with PR &lt;a href=&#34;https://github.com/grafana/loki/pull/3515&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;3515&lt;/a&gt;, for more information,see the 
    &lt;a href=&#34;/docs/loki/v3.0.x/logql/template_functions/&#34;&gt;documentation for template functions&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Also support for math functions withing &lt;code&gt;label_format&lt;/code&gt; and &lt;code&gt;line_format&lt;/code&gt; was included with &lt;a href=&#34;https://github.com/grafana/loki/pull/3434&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;3434&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Two additional metric functions with some interesting use cases &lt;code&gt;first_over_time&lt;/code&gt; and &lt;code&gt;last_over_time&lt;/code&gt; were added in PR &lt;a href=&#34;https://github.com/grafana/loki/pull/3050&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;3050&lt;/a&gt;. These can be useful for some down sampling approaches where instead of taking an average, max, or min of samples over a range in a metrics query, you can select the first or last log line to use from that range.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;upgrade-considerations&#34;&gt;Upgrade considerations&lt;/h2&gt;
&lt;p&gt;The path from 2.2.1 to 2.3.0 should be smooth, as always, read the &lt;a href=&#34;/docs/loki/v3.0.x/setup/upgrade/#230&#34;&gt;Upgrade Guide&lt;/a&gt; for important upgrade guidance.&lt;/p&gt;
&lt;p&gt;One change we consider noteworthy however is:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/grafana/loki/pull/3216&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;3216&lt;/a&gt; &lt;strong&gt;sandeepsukhani&lt;/strong&gt;: check for stream selectors to have at least one equality matcher.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This change now rejects any query which does not contain at least one equality matcher, an example may better illustrate:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;{namespace=~&amp;quot;.*&amp;quot;}&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;This query will now be rejected, however there are several ways to modify it for it to succeed:&lt;/p&gt;
&lt;p&gt;Add at least one equals label matcher:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;{cluster=&amp;quot;us-east-1&amp;quot;,namespace=~&amp;quot;.*&amp;quot;}&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Use &lt;code&gt;.&#43;&lt;/code&gt; instead of &lt;code&gt;.*&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;{namespace=~&amp;quot;.&#43;&amp;quot;}&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;This difference may seem subtle but if we break it down &lt;code&gt;.&lt;/code&gt; matches any character, &lt;code&gt;*&lt;/code&gt; matches zero or more of the preceding character and &lt;code&gt;&#43;&lt;/code&gt; matches one or more of the preceding character. The &lt;code&gt;.*&lt;/code&gt; case will match empty values where &lt;code&gt;.&#43;&lt;/code&gt; will not, this is the important difference. &lt;code&gt;{namespace=&amp;quot;&amp;quot;}&lt;/code&gt; is an invalid request (unless you add another equals label matcher like the example above).&lt;/p&gt;
&lt;p&gt;The reasoning for this change has to do with how index lookups work in Loki, if you don&amp;rsquo;t have at least one equality matcher Loki has to perform a complete index table scan which is an expensive and slow operation.&lt;/p&gt;
&lt;h2 id=&#34;security-fixes&#34;&gt;Security fixes&lt;/h2&gt;
&lt;p&gt;List of security fixes for 2.3.x.&lt;/p&gt;
&lt;h3 id=&#34;230-security-fixes&#34;&gt;2.3.0 security fixes&lt;/h3&gt;
&lt;p&gt;2.3.0 contains an important security fix:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/grafana/loki/pull/4020&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;4020&lt;/a&gt; &lt;strong&gt;simonswine&lt;/strong&gt;: Restrict path segments in TenantIDs (CVE-2021-36156 CVE-2021-36157).&lt;/li&gt;
&lt;/ul&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;Exploitation of this vulnerability requires the ability for an attacker to craft and send directly to Loki an &lt;code&gt;X-Scope-OrgID&lt;/code&gt; header, end users should not have the ability to create and send this header directly to Loki as it controls access to tenants and is important to control setting of this header for proper tenant isolation and security. We always recommend having a proxy or gateway be responsible for setting the &lt;code&gt;X-Scope-OrgID&lt;/code&gt;.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;h2 id=&#34;bug-fixes&#34;&gt;Bug fixes&lt;/h2&gt;
&lt;p&gt;Lists of bug fixes for 2.3.x.&lt;/p&gt;
&lt;h3 id=&#34;230-bug-fixes&#34;&gt;2.3.0 bug fixes&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;An important fix for leaking resources was patched with &lt;a href=&#34;https://github.com/grafana/loki/pull/3733&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;3733&lt;/a&gt;, when queries were canceled a goroutine was left running which would hold memory resources creating a memory leak.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/grafana/loki/pull/3686&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;3686&lt;/a&gt; fixes a panic with the frontend when use with downstream URL. &lt;strong&gt;Note&lt;/strong&gt; we recommend using the 
    &lt;a href=&#34;/docs/loki/v3.0.x/configuration/query-frontend/#grpc-mode-pull-model&#34;&gt;GRPC Pull Model&lt;/a&gt;, better performance and fair scheduling between tenants can be obtained with the GPRC Pull Model.&lt;/li&gt;
&lt;/ul&gt;
]]></content><description>&lt;h1 id="v23">V2.3&lt;/h1>
&lt;p>The Loki team is excited to announce the release of Loki 2.3!&lt;/p>
&lt;p>It&amp;rsquo;s been nearly 6 months since 2.2 was released and we have made good use of that time to bring forward several significant improvements and requested features.&lt;/p></description></item></channel></rss>