<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>What's next from Grafana Labs on Grafana Labs</title><link>https://grafana.com/whats-next/</link><description>Recent content in What's next from Grafana Labs on Grafana Labs</description><generator>Hugo -- gohugo.io</generator><language>en</language><atom:link href="/whats-next/index.xml" rel="self" type="application/rss+xml"/><item><title>Synthetic Monitoring custom labels: label_ prefix removed, labels attach to all check telemetry</title><link>https://grafana.com/whats-next/2026-09-09-synthetic-monitoring-custom-labels--label_-prefix-removed--labels-attach-to-all-check-telemetry/</link><pubDate>Thu, 10 Sep 2026 00:00:00 +0000</pubDate><guid>https://grafana.com/whats-next/2026-09-11-synthetic-monitoring-custom-labels-label_-prefix-removed-labels-attach-to-all-check-telemetry</guid><content><![CDATA[<p>Custom labels in Grafana Cloud Synthetic Monitoring now attach directly to every check metric and log - not only the <code>sm_check_info</code> metric - and the <code>label_</code> prefix is removed.</p>
<p>Labels will appear exactly as you define them. A three-stage migration (prefixed → dual-write → un-prefixed) is open now. Support for the legacy prefixed behavior ends March 1, 2027, after which any stack not yet migrated will be auto-migrated by Grafana Labs.</p>
<h2 id="why-were-changing-it">Why we&rsquo;re changing it</h2>
<p>Previously, filtering a dashboard, scoping an alert, or attributing cost by team or service required joining <code>sm_check_info</code> against the check metric you actually wanted, and remembering that <code>team</code> actually renders as <code>label_team</code>. This made Synthetic Monitoring an exception to how labels work everywhere else in Grafana Cloud.</p>
<p>With labels on the metrics themselves, a single alert rule can route by team, Cost Management can attribute usage by your own dimensions, and there is no separate label convention to learn.</p>
<p>Read the <a href="/blog/synthetic-monitoring-labels-update/">blog post</a> for more detail.</p>
<h2 id="what-is-not-changing">What is not changing</h2>
<p>If you do not use custom labels in Synthetic Monitoring, nothing changes and no action is needed. System-defined labels are unaffected. Historical data is not lost: everything already collected remains queryable under its original label names for your retention window, during and after migration.</p>
<p>The migration does not increase cardinality or cost; the dual-write period where both label sets exist is absorbed by 95th-percentile billing and is not billed as additional active series.</p>
<h2 id="what-to-check-before-this-rolls-out">What to check before this rolls out</h2>
<ul>
<li>If you use custom labels in Synthetic Monitoring, check them against the <a href="/docs/grafana-cloud/observe-and-act/testing/synthetic-monitoring/system-labels/#reserved-system-labels">reserved system labels list</a>. Migration will be rejected if any of your labels collide with a reserved value.</li>
<li>Follow the <a href="/docs/grafana-cloud/observe-and-act/testing/synthetic-monitoring/migrate-labels/">label migration guide</a> to enable dual-write, update dashboards, SLOs, alerts, and queries that reference <code>label_</code>-prefixed labels or join on <code>sm_check_info</code>, then retire the prefixed labels. Admin access is required.</li>
<li>Complete the migration before March 1, 2027 so you control the timing rather than being auto-migrated.</li>
<li>If you do not use custom labels in Synthetic Monitoring, no action is needed.</li>
</ul>
]]></content><description>&lt;p>Custom labels in Grafana Cloud Synthetic Monitoring now attach directly to every check metric and log - not only the &lt;code>sm_check_info&lt;/code> metric - and the &lt;code>label_&lt;/code> prefix is removed.&lt;/p></description><availability/><documentationURL xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple" xlink:href="https://grafana.com/docs/grafana-cloud/observe-and-act/testing/synthetic-monitoring/migrate-labels/">Label migration guide</documentationURL><documentationURL xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple" xlink:href="https://grafana.com/docs/grafana-cloud/observe-and-act/testing/synthetic-monitoring/system-labels/?pg=synthetic-monitoring-labels-update&amp;plcmt=in-text#reserved-system-labels">Synthetic Monitoring reserved labels</documentationURL><tag>Synthetic Monitoring</tag><selfManagedEdition>None</selfManagedEdition><selfManagedReleaseVersion>no-release</selfManagedReleaseVersion><changeType>breaking-change</changeType></item><item><title>Deprecation notice for legacy dashboard star and unstar API endpoints</title><link>https://grafana.com/whats-next/2026-09-24-deprecation-notice-for-legacy-dashboard-star-and-unstar-api-endpoints/</link><pubDate>Thu, 27 Aug 2026 13:31:00 +0000</pubDate><guid>https://grafana.com/whats-next/2026-08-27-deprecation-notice-for-legacy-dashboard-star-and-unstar-api-endpoints</guid><content><![CDATA[<p>The dashboard-specific endpoints for starring and unstarring a dashboard are deprecated in favor of the generic Collections Stars API, which stars any kind of resource through one shared endpoint shape instead of a separate endpoint per resource kind.</p>
<p><strong>The old endpoints still work, but are now marked deprecated:</strong></p>
<ul>
<li><code>POST /api/user/stars/dashboard/uid/{dashboard_uid}</code> (star a dashboard)</li>
<li><code>DELETE /api/user/stars/dashboard/uid/{dashboard_uid}</code> (unstar a dashboard)</li>
</ul>
<p><strong>The replacement is:</strong></p>
<ul>
<li><code>PUT /apis/collections.grafana.app/v1alpha1/namespaces/{namespace}/stars/user-{your_user_uid}/update/dashboard.grafana.app/Dashboard/{dashboard_uid}</code> (star)</li>
<li><code>DELETE /apis/collections.grafana.app/v1alpha1/namespaces/{namespace}/stars/user-{user_uid}/update/dashboard.grafana.app/Dashboard/{dashboard_uid}</code> (unstar)</li>
</ul>
<p>No request body is needed; the star target is fully described by the URL path.</p>
<h2 id="why-were-changing-it">Why we&rsquo;re changing it</h2>
<p>Starring used to need one endpoint per resource kind. The new Collections Stars API stars any resource kind (dashboards today, with other kinds such as folders already supported) through the same endpoint shape, so integrations that work with starring don&rsquo;t need a separate code path for every type of resource.</p>
<h2 id="what-to-know-before-this-rolls-out">What to know before this rolls out</h2>
<ul>
<li>
<p>If you call <code>POST</code> or <code>DELETE on the deprecated path directly (outside the Grafana UI), plan to move to </code>PUT<code>/</code>DELETE on the new path.</p>
</li>
<li>
<p>Look up your own user UID from the <code>uid</code> field of <code>GET /api/user</code> to build the <code>user-{uid}</code> resource name; it is not your username or numeric user ID.</p>
</li>
<li>
<p>Use the same <code>{namespace}</code> you already use for other Grafana App Platform APIs
(<code>default</code> for the default organization on self-managed, or your stack&rsquo;s namespace on Grafana Cloud).</p>
</li>
<li>
<p>Treat <code>200 OK</code> as success for both star and unstar, and <code>204 No Content</code> as a no-op success when unstarring something that was never starred.</p>
</li>
</ul>]]></content><description>&lt;p>The dashboard-specific endpoints for starring and unstarring a dashboard are deprecated in favor of the generic Collections Stars API, which stars any kind of resource through one shared endpoint shape instead of a separate endpoint per resource kind.&lt;/p>
&lt;p>&lt;strong>The old endpoints still work, but are now marked deprecated:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>&lt;code>POST /api/user/stars/dashboard/uid/{dashboard_uid}&lt;/code> (star a dashboard)&lt;/li>
&lt;li>&lt;code>DELETE /api/user/stars/dashboard/uid/{dashboard_uid}&lt;/code> (unstar a dashboard)&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>The replacement is:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>&lt;code>PUT /apis/collections.grafana.app/v1alpha1/namespaces/{namespace}/stars/user-{your_user_uid}/update/dashboard.grafana.app/Dashboard/{dashboard_uid}&lt;/code> (star)&lt;/li>
&lt;li>&lt;code>DELETE /apis/collections.grafana.app/v1alpha1/namespaces/{namespace}/stars/user-{user_uid}/update/dashboard.grafana.app/Dashboard/{dashboard_uid}&lt;/code> (unstar)&lt;/li>
&lt;/ul>
&lt;p>No request body is needed; the star target is fully described by the URL path.&lt;/p></description><availability/><tag>Dashboards and visualizations</tag><selfManagedAvailability>Generally Available</selfManagedAvailability><selfManagedEdition>Enterprise</selfManagedEdition><selfManagedEdition>OSS</selfManagedEdition><selfManagedReleaseVersion>grafana-v13.3.0</selfManagedReleaseVersion><effectiveDate>Thu, 24 Sep 2026 09:03:00 +0000</effectiveDate><changeType>deprecation-notice</changeType></item><item><title>Loki multi-store backends removed</title><link>https://grafana.com/whats-next/2026-08-24-loki-multi-store-backends-removed/</link><pubDate>Mon, 24 Aug 2026 21:13:00 +0000</pubDate><guid>https://grafana.com/whats-next/2026-08-06-loki-multi-store-backends-removed</guid><content><![CDATA[<p>Grafana Loki deprecated several legacy multi-store <a href="">backend</a>s in release 3.0  The following legacy storage backends have been removed in Loki 4.0:</p>
<ul>
<li>Apache Cassandra</li>
<li>Amazon DynaomoDB</li>
<li>BoltDB (for indexes)</li>
<li>Google BigTable</li>
<li>gRPC Store</li>
</ul>
<p>Loki 4.0 will fail to start if a deprecated and removed storage backend is referenced in the schema or storage
configuration.</p>
]]></content><description>&lt;p>Grafana Loki deprecated several legacy multi-store &lt;a href="">backend&lt;/a>s in release 3.0 The following legacy storage backends have been removed in Loki 4.0:&lt;/p>
&lt;ul>
&lt;li>Apache Cassandra&lt;/li>
&lt;li>Amazon DynaomoDB&lt;/li>
&lt;li>BoltDB (for indexes)&lt;/li>
&lt;li>Google BigTable&lt;/li>
&lt;li>gRPC Store&lt;/li>
&lt;/ul>
&lt;p>Loki 4.0 will fail to start if a deprecated and removed storage backend is referenced in the schema or storage
configuration.&lt;/p></description><availability/><documentationURL xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple" xlink:href="https://archive.grafana.com/docs/loki/v3.0.x/configure/storage/">Loki 3.0 Storage Documentation</documentationURL><tag>Logs</tag><selfManagedEdition>OSS</selfManagedEdition><selfManagedReleaseVersion>Loki v4.0.0</selfManagedReleaseVersion><changeType>deprecation-notice</changeType></item><item><title>Thanos object storage now default for Loki</title><link>https://grafana.com/whats-next/2026-08-24-thanos-object-storage-now-default-for-loki/</link><pubDate>Mon, 24 Aug 2026 21:13:00 +0000</pubDate><guid>https://grafana.com/whats-next/2026-08-06-thanos-object-storage-now-default-for-loki</guid><content><![CDATA[<p>The Loki release 3.4 introduce new object storage clients based on the <a href="https://github.com/thanos-io/objstore" target="_blank" rel="noopener noreferrer">Thanos Object Storage Client Go module</a>.  For several Loki releases this was opt-in and only took effect only when <code>-use-thanos-objstore</code> was set to true.   In Loki 4.0 <code>-use-thanos-objstore</code> is set to `true` by default.</p>
<p>One of the reasons for making this change is to have a consistent  storage configuration across Grafana Loki, Mimir and other telemetry  databases from Grafana Labs.</p>
]]></content><description>&lt;p>The Loki release 3.4 introduce new object storage clients based on the &lt;a href="https://github.com/thanos-io/objstore" target="_blank" rel="noopener noreferrer">Thanos Object Storage Client Go module&lt;/a>. For several Loki releases this was opt-in and only took effect only when &lt;code>-use-thanos-objstore&lt;/code> was set to true. In Loki 4.0 &lt;code>-use-thanos-objstore&lt;/code> is set to `true` by default.&lt;/p></description><availability/><documentationURL xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple" xlink:href="https://grafana.com/docs/loki/latest/setup/migrate/migrate-storage-clients/">Migrate to Thanos storage clients</documentationURL><tag>Logs</tag><selfManagedEdition>OSS</selfManagedEdition><selfManagedReleaseVersion>Loki v4.0.0</selfManagedReleaseVersion><changeType>breaking-change</changeType></item><item><title>Loki table manager removed</title><link>https://grafana.com/whats-next/2026-08-24-loki-table-manager-removed/</link><pubDate>Mon, 24 Aug 2026 21:00:00 +0000</pubDate><guid>https://grafana.com/whats-next/2026-08-06-loki-table-manager-removed</guid><content>&lt;p>We deprecated mulit-storage backends in Loki 3.0 and they have been removed for Loki 4.0.   Table manager is only needed if you are using a multi-store &lt;a href="/docs/loki/latest/configure/storage/">backend&lt;/a>. Starting with Loki 4.0, the single store TSDB is the only supported Loki index.  TSDB has been the recommended Loki index since Loki v2.8, and it does not need the table manager.&lt;/p>
</content><description>&lt;p>We deprecated mulit-storage backends in Loki 3.0 and they have been removed for Loki 4.0. Table manager is only needed if you are using a multi-store &lt;a href="/docs/loki/latest/configure/storage/">backend&lt;/a>. Starting with Loki 4.0, the single store TSDB is the only supported Loki index. TSDB has been the recommended Loki index since Loki v2.8, and it does not need the table manager.&lt;/p></description><availability/><documentationURL xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple" xlink:href="https://grafana.com/docs/loki/latest/setup/upgrade/">Loki Upgrade documentation</documentationURL><tag>Logs</tag><selfManagedEdition>OSS</selfManagedEdition><selfManagedReleaseVersion>Loki v4.0.0</selfManagedReleaseVersion><changeType>deprecation-notice</changeType></item><item><title>Loki SSD deployment no longer available</title><link>https://grafana.com/whats-next/2026-08-24-loki-ssd-deployment-no-longer-available/</link><pubDate>Mon, 24 Aug 2026 20:50:00 +0000</pubDate><guid>https://grafana.com/whats-next/2026-07-22-loki-ssd-deployment-no-longer-available</guid><content><![CDATA[<p>Simple Scalable Deployment mode is being deprecated and removed in Loki 4.0. The <code>write</code>, <code>read</code>, and <code>backend</code> targets, as well as the configuration option <code>-legacy-read-mode</code> will not be available any more and Loki will fail to start if used. <br />
Users must migrate to monolithic mode, distributed mode, or the new HA Monolithic mode being introduced in Loki 4.0.</p>
]]></content><description>&lt;p>Simple Scalable Deployment mode is being deprecated and removed in Loki 4.0. The &lt;code>write&lt;/code>, &lt;code>read&lt;/code>, and &lt;code>backend&lt;/code> targets, as well as the configuration option &lt;code>-legacy-read-mode&lt;/code> will not be available any more and Loki will fail to start if used. &lt;br />
Users must migrate to monolithic mode, distributed mode, or the new HA Monolithic mode being introduced in Loki 4.0.&lt;/p></description><availability/><documentationURL xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple" xlink:href="https://grafana.com/docs/loki/v3.7.x/get-started/deployment-modes/#simple-scalable">SSD Documentation</documentationURL><tag>Logs</tag><selfManagedEdition>OSS</selfManagedEdition><selfManagedReleaseVersion>Loki v4.0.0</selfManagedReleaseVersion><changeType>deprecation-notice</changeType></item><item><title>CSV and JSON API data sources: support ends February 1, 2027</title><link>https://grafana.com/whats-next/2026-08-21-csv-and-json-api-data-sources-support-ends-february-1-2027/</link><pubDate>Fri, 21 Aug 2026 12:00:00 +0000</pubDate><guid>https://grafana.com/whats-next/2026-08-21-csv-and-json-api-data-sources-support-ends-february-1-2027</guid><content><![CDATA[<p>The CSV and JSON API data sources are deprecated. Both plugins move into a critical-security-updates-only phase: they keep receiving critical security fixes, but no new features or non-security bug fixes. Support for both data sources ends February 1, 2027.</p>
<h2 id="why-were-changing-it">Why we&rsquo;re changing it</h2>
<p>The <a href="/grafana/plugins/yesoreyeram-infinity-datasource/">Infinity data source</a> covers the same CSV and JSON workflows as these two plugins, and adds support for authentication methods, alerting, and other backend operations that the CSV and JSON API data sources don&rsquo;t support. Consolidating on Infinity gives you one actively developed data source for URL and file-based data instead of two narrower plugins.</p>
<h2 id="what-is-not-changing">What is not changing</h2>
<p>Your existing dashboards and queries built on the CSV or JSON API data sources keep working exactly as they do today. Neither plugin is removed on February 1, 2027: only non-security updates stop. Critical security fixes continue for both plugins after that date.</p>
<h2 id="what-to-check-before-this-rolls-out">What to check before this rolls out</h2>
<ul>
<li>If you use the CSV data source, migrate to the <a href="/grafana/plugins/yesoreyeram-infinity-datasource/">Infinity data source</a> before February 1, 2027. The <a href="/docs/learning-paths/infinity-csv/">Infinity data source CSV learning path</a> walks through using Infinity for CSV workflows.</li>
<li>If you use the JSON API data source, migrate to the <a href="/grafana/plugins/yesoreyeram-infinity-datasource/">Infinity data source</a> before February 1, 2027. The <a href="/docs/learning-paths/infinity-json/">Infinity data source JSON learning path</a> walks through using Infinity for JSON workflows.</li>
<li>If you use neither data source, no action is needed.</li>
</ul>
]]></content><description>&lt;p>The CSV and JSON API data sources are deprecated. Both plugins move into a critical-security-updates-only phase: they keep receiving critical security fixes, but no new features or non-security bug fixes. Support for both data sources ends February 1, 2027.&lt;/p></description><availability/><documentationURL xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple" xlink:href="https://grafana.com/docs/learning-paths/infinity-csv/">Infinity data source CSV learning path</documentationURL><documentationURL xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple" xlink:href="https://grafana.com/docs/learning-paths/infinity-json/">Infinity data source JSON learning path</documentationURL><tag>Data sources</tag><tag>Breaking change</tag><selfManagedEdition>OSS</selfManagedEdition><selfManagedEdition>Enterprise</selfManagedEdition><selfManagedReleaseVersion>No self-managed release</selfManagedReleaseVersion><effectiveDate>Mon, 01 Feb 2027 00:00:00 +0000</effectiveDate><changeType>deprecation-notice</changeType></item><item><title>Parca data source: support ends January 2, 2027</title><link>https://grafana.com/whats-next/2026-08-21-parca-data-source-support-ends-january-2-2027/</link><pubDate>Fri, 21 Aug 2026 12:00:00 +0000</pubDate><guid>https://grafana.com/whats-next/2026-08-21-parca-data-source-support-ends-january-2-2027</guid><content><![CDATA[<p>The Parca data source is deprecated. The plugin moves into a critical-security-updates-only phase: it keeps receiving critical security fixes, but no new features or non-security bug fixes. Support ends January 2, 2027.</p>
<h2 id="why-were-changing-it">Why we&rsquo;re changing it</h2>
<p>Parca has low usage relative to other continuous profiling data sources. <a href="/docs/grafana/latest/datasources/pyroscope/">Grafana Pyroscope</a> (self-managed) and <a href="/docs/grafana-cloud/monitor-applications/profiles/">Grafana Cloud Profiles</a> (Grafana Cloud) are the supported paths forward. Both use the same flame graph panel you already use to visualize Parca profiles, and Cloud Profiles adds Profiles Drilldown for exploring profiles without building a dashboard first.</p>
<h2 id="what-is-not-changing">What is not changing</h2>
<p>Your existing dashboards built on the Parca data source keep working exactly as they do today. The plugin is not removed on January 2, 2027: only non-security updates stop. Critical security fixes continue after that date.</p>
<h2 id="what-to-check-before-this-rolls-out">What to check before this rolls out</h2>
<ul>
<li>If you use the Parca data source, plan a migration to <a href="/docs/grafana/latest/datasources/pyroscope/">Grafana Pyroscope</a> if you&rsquo;re self-managed, or <a href="/docs/grafana-cloud/monitor-applications/profiles/">Grafana Cloud Profiles</a> if you&rsquo;re on Grafana Cloud, before January 2, 2027.</li>
<li>If this deprecation will cause issues for you, <a href="https://grafana.ideas.aha.io" target="_blank" rel="noopener noreferrer">share your feedback</a> so the team can gauge impact before support ends. If Aha! isn&rsquo;t an option for you, post in the <a href="https://community.grafana.com/" target="_blank" rel="noopener noreferrer">Grafana community forum</a> instead.</li>
<li>If you use neither data source, no action is needed.</li>
</ul>
]]></content><description>&lt;p>The Parca data source is deprecated. The plugin moves into a critical-security-updates-only phase: it keeps receiving critical security fixes, but no new features or non-security bug fixes. Support ends January 2, 2027.&lt;/p></description><availability/><documentationURL xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple" xlink:href="https://grafana.com/docs/grafana/latest/datasources/pyroscope/">Grafana Pyroscope data source documentation</documentationURL><documentationURL xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple" xlink:href="https://grafana.com/docs/grafana-cloud/monitor-applications/profiles/">Grafana Cloud Profiles documentation</documentationURL><tag>Data sources</tag><tag>Breaking change</tag><tag>Profiles</tag><selfManagedEdition>OSS</selfManagedEdition><selfManagedEdition>Enterprise</selfManagedEdition><selfManagedReleaseVersion>No self-managed release</selfManagedReleaseVersion><effectiveDate>Sat, 02 Jan 2027 00:00:00 +0000</effectiveDate><changeType>deprecation-notice</changeType></item><item><title>Kubernetes Monitoring will give AI agents access to its queries</title><link>https://grafana.com/whats-next/2026-08-04-kubernetes-monitoring-will-give-ai-agents-access-to-its-queries/</link><pubDate>Tue, 04 Aug 2026 12:00:00 +0000</pubDate><guid>https://grafana.com/whats-next/2026-08-04-kubernetes-monitoring-will-give-ai-agents-access-to-its-queries</guid><content><![CDATA[<p>Kubernetes Monitoring will let you give an AI agent access to the queries behind its own pages, such as the ones that count Nodes, total the CPU used by a namespace, and calculate cost. A new <strong>AI agent access</strong> tab in the Configuration page will hold a prompt you copy into your agent&rsquo;s configuration.</p>
<p>An agent that uses these queries returns the same numbers you see on the page. Without access to these queries, the agent can get incorrect results. Ask an agent to count the Nodes in a Cluster that has three, and it can answer six, because more than one source reports each Node.</p>
<p>An agent gets no permissions of its own. It signs in with a token, reads exactly the data that token allows, and can&rsquo;t create, change, or delete anything.</p>
]]></content><description>&lt;p>Kubernetes Monitoring will let you give an AI agent access to the queries behind its own pages, such as the ones that count Nodes, total the CPU used by a namespace, and calculate cost. A new &lt;strong>AI agent access&lt;/strong> tab in the Configuration page will hold a prompt you copy into your agent&amp;rsquo;s configuration.&lt;/p></description><availability/><documentationURL xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple" xlink:href="https://grafana.com/docs/grafana-cloud/monitor-infrastructure/kubernetes-monitoring/configuration/control-access/">Control access with roles</documentationURL><documentationURL xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple" xlink:href="https://grafana.com/docs/grafana-cloud/monitor-infrastructure/kubernetes-monitoring/configuration/activate/">Activate Kubernetes Monitoring</documentationURL><tag>Kubernetes Monitoring</tag><tag>AI</tag><selfManagedEdition>None</selfManagedEdition><selfManagedReleaseVersion>No self-managed release</selfManagedReleaseVersion><changeType>behavior-change</changeType></item><item><title>gcx v1.0.0: command renames, config file format changes, opt-out usage statistics</title><link>https://grafana.com/whats-next/2026-07-28-gcx-v100--command-renames--config-file-format-changes--opt-out-usage-statistics/</link><pubDate>Tue, 28 Jul 2026 08:07:00 +0000</pubDate><guid>https://grafana.com/whats-next/2026-07-27-gcx-renames-commands-across-all-providers-changes-its-config-format-and-turns-on-anonymous-usage-statistics</guid><content><![CDATA[<p>If you upgrade gcx from v0.4.x or earlier, there are breaking changes to be aware of:</p>
<p><strong>1. Commands are renamed across many providers, with no aliases.</strong> Old spellings fail as unknown commands. Behaviour, flags, positional arguments, output schemas, and exit codes are unchanged, only the names moved. The aim is to make a more predictable and understandable command surface. Here are all the changes:</p>
<section class="expand-table-wrapper"><div class="responsive-table-wrapper">
    <table>
      <thead>
          <tr>
              <th>Old command</th>
              <th>New command</th>
          </tr>
      </thead>
      <tbody>
          <tr>
              <td><code>gcx aio11y …</code> (entire tree)</td>
              <td><code>gcx agento11y …</code></td>
          </tr>
          <tr>
              <td><code>gcx agento11y agents versions &lt;name&gt;</code></td>
              <td><code>gcx agento11y agents list-versions &lt;name&gt;</code></td>
          </tr>
          <tr>
              <td><code>gcx agento11y collections conversations list &lt;id&gt;</code></td>
              <td><code>gcx agento11y collections list-conversations &lt;id&gt;</code></td>
          </tr>
          <tr>
              <td><code>gcx agento11y collections conversations add &lt;id&gt; &lt;saved-id&gt;…</code></td>
              <td><code>gcx agento11y collections add-conversations &lt;id&gt; &lt;saved-id&gt;…</code></td>
          </tr>
          <tr>
              <td><code>gcx agento11y collections conversations remove &lt;id&gt; &lt;saved-id&gt;</code></td>
              <td><code>gcx agento11y collections remove-conversation &lt;id&gt; &lt;saved-id&gt;</code></td>
          </tr>
          <tr>
              <td><code>gcx agento11y evaluators create</code></td>
              <td><code>gcx agento11y evaluators upsert</code></td>
          </tr>
          <tr>
              <td><code>gcx agento11y experiments scores &lt;run-id&gt;</code></td>
              <td><code>gcx agento11y experiments list-scores &lt;run-id&gt;</code></td>
          </tr>
          <tr>
              <td><code>gcx agento11y judge models</code></td>
              <td><code>gcx agento11y judge list-models</code></td>
          </tr>
          <tr>
              <td><code>gcx agento11y judge providers</code></td>
              <td><code>gcx agento11y judge list-providers</code></td>
          </tr>
          <tr>
              <td><code>gcx agento11y scores list &lt;generation-id&gt;</code></td>
              <td><code>gcx agento11y generations list-scores &lt;generation-id&gt;</code></td>
          </tr>
          <tr>
              <td><code>gcx agento11y templates versions &lt;id&gt;</code></td>
              <td><code>gcx agento11y templates list-versions &lt;id&gt;</code></td>
          </tr>
          <tr>
              <td><code>gcx alert templates create</code> / <code>update</code> / <code>apply</code> (aliases)</td>
              <td><code>gcx alert templates upsert</code></td>
          </tr>
          <tr>
              <td><code>gcx appo11y services labels &lt;service&gt;</code></td>
              <td><code>gcx appo11y services list-labels &lt;service&gt;</code></td>
          </tr>
          <tr>
              <td><code>gcx assistant investigations tools &lt;id&gt;</code></td>
              <td><code>gcx assistant investigations list-tool-calls &lt;id&gt;</code></td>
          </tr>
          <tr>
              <td><code>gcx assistant investigations chat &lt;id&gt;</code></td>
              <td><code>gcx assistant investigations list-messages &lt;id&gt;</code></td>
          </tr>
          <tr>
              <td><code>gcx cloud stacks regions</code></td>
              <td><code>gcx cloud stacks list-regions</code></td>
          </tr>
          <tr>
              <td><code>gcx dashboards versions list &lt;name&gt;</code></td>
              <td><code>gcx dashboards list-versions &lt;name&gt;</code></td>
          </tr>
          <tr>
              <td><code>gcx datasources influxdb field-keys</code></td>
              <td><code>gcx datasources influxdb list-field-keys</code></td>
          </tr>
          <tr>
              <td><code>gcx datasources influxdb measurements</code></td>
              <td><code>gcx datasources influxdb list-measurements</code></td>
          </tr>
          <tr>
              <td><code>gcx datasources influxdb tag-keys</code></td>
              <td><code>gcx datasources influxdb list-tag-keys</code></td>
          </tr>
          <tr>
              <td><code>gcx datasources influxdb tag-values --key &lt;k&gt;</code></td>
              <td><code>gcx datasources influxdb list-tag-values --key &lt;k&gt;</code></td>
          </tr>
          <tr>
              <td><code>gcx dev lint rules</code></td>
              <td><code>gcx dev lint list-rules</code></td>
          </tr>
          <tr>
              <td><code>gcx fleet tenant limits</code></td>
              <td><code>gcx fleet tenant get-limits</code></td>
          </tr>
          <tr>
              <td><code>gcx frontend apps show-sourcemaps &lt;app&gt;</code></td>
              <td><code>gcx frontend apps list-sourcemaps &lt;app&gt;</code></td>
          </tr>
          <tr>
              <td><code>gcx frontend apps remove-sourcemap &lt;app&gt; &lt;bundle&gt;…</code></td>
              <td><code>gcx frontend apps delete-sourcemap &lt;app&gt; &lt;bundle&gt;…</code></td>
          </tr>
          <tr>
              <td><code>gcx irm incidents activity list &lt;incident-id&gt;</code></td>
              <td><code>gcx irm incidents list-activity &lt;incident-id&gt;</code></td>
          </tr>
          <tr>
              <td><code>gcx irm incidents contexts list &lt;incident-id&gt;</code> (and <code>context</code>/<code>ctx</code> aliases)</td>
              <td><code>gcx irm incidents list-contexts &lt;incident-id&gt;</code></td>
          </tr>
          <tr>
              <td><code>gcx irm oncall schedules final-shifts &lt;schedule-id&gt;</code></td>
              <td><code>gcx irm oncall schedules list-final-shifts &lt;schedule-id&gt;</code></td>
          </tr>
          <tr>
              <td><code>gcx k6 load-zones allowed-load-zones list &lt;project-id&gt;</code></td>
              <td><code>gcx k6 projects list-allowed-load-zones &lt;project-id&gt;</code></td>
          </tr>
          <tr>
              <td><code>gcx k6 load-zones allowed-load-zones update &lt;project-id&gt;</code></td>
              <td><code>gcx k6 projects update-allowed-load-zones &lt;project-id&gt;</code></td>
          </tr>
          <tr>
              <td><code>gcx k6 load-zones allowed-projects list &lt;load-zone-id&gt;</code></td>
              <td><code>gcx k6 load-zones list-allowed-projects &lt;load-zone-id&gt;</code></td>
          </tr>
          <tr>
              <td><code>gcx k6 load-zones allowed-projects update &lt;load-zone-id&gt;</code></td>
              <td><code>gcx k6 load-zones update-allowed-projects &lt;load-zone-id&gt;</code></td>
          </tr>
          <tr>
              <td><code>gcx k6 schedules delete &lt;load-test-id&gt;</code></td>
              <td><code>gcx k6 load-tests delete-schedule &lt;load-test-id&gt;</code></td>
          </tr>
          <tr>
              <td><code>gcx k6 run …</code> (alias)</td>
              <td><code>gcx k6 runs …</code></td>
          </tr>
          <tr>
              <td><code>gcx kg entities create</code></td>
              <td><code>gcx kg entities upsert</code></td>
          </tr>
          <tr>
              <td><code>gcx kg relationships create</code></td>
              <td><code>gcx kg relationships upsert</code></td>
          </tr>
          <tr>
              <td><code>gcx kg prom-rules create</code></td>
              <td><code>gcx kg prom-rules upsert</code></td>
          </tr>
          <tr>
              <td><code>gcx kg model-rules create</code></td>
              <td><code>gcx kg model-rules upsert</code></td>
          </tr>
          <tr>
              <td><code>gcx kg suppressions create</code></td>
              <td><code>gcx kg suppressions upsert</code></td>
          </tr>
          <tr>
              <td><code>gcx kg summary</code></td>
              <td><code>gcx kg stats</code></td>
          </tr>
          <tr>
              <td><code>gcx logs adaptive patterns show</code></td>
              <td><code>gcx logs adaptive patterns list</code></td>
          </tr>
          <tr>
              <td><code>gcx metrics adaptive recommendations show</code></td>
              <td><code>gcx metrics adaptive recommendations list</code></td>
          </tr>
          <tr>
              <td><code>gcx traces adaptive recommendations show</code></td>
              <td><code>gcx traces adaptive recommendations list</code></td>
          </tr>
          <tr>
              <td><code>gcx profiles profile-types</code></td>
              <td><code>gcx profiles list-profile-types</code></td>
          </tr>
          <tr>
              <td><code>gcx datasources pyroscope profile-types</code></td>
              <td><code>gcx datasources pyroscope list-profile-types</code></td>
          </tr>
          <tr>
              <td><code>gcx resources examples [selector]</code></td>
              <td><code>gcx resources list-examples [selector]</code></td>
          </tr>
          <tr>
              <td><code>gcx resources schemas [selector]</code></td>
              <td><code>gcx resources list-types [selector]</code></td>
          </tr>
          <tr>
              <td><code>gcx synthetic-monitoring probes token-reset &lt;id&gt;</code></td>
              <td><code>gcx synthetic-monitoring probes reset-token &lt;id&gt;</code></td>
          </tr>
      </tbody>
    </table>
  </div>
</section><p>Six <code>gcx assistant investigations</code> subcommands are removed rather than renamed, because their backends do not exist for current investigations: <code>approvals</code>, <code>todos</code>, <code>document</code>, <code>report</code>, <code>timeline</code>, and <code>regenerate-report</code>.</p>
<p>For users of the bundled agent skills: the <code>aio11y</code> and <code>aio11y-prod-setup</code> skills are renamed to <code>agento11y</code> and <code>agento11y-prod-setup</code>, <code>agento11y-eval-starter</code> is renamed to <code>agento11y-test-starter</code>, and the <code>explore-datasources</code> skill is removed.</p>
<p><strong>2. The configuration file format changes, with automatic migration.</strong> The config file is now versioned (<code>version: 1</code>) and splits into named <code>stacks</code>, named <code>cloud</code> entries, and <code>contexts</code> that reference them, so one Cloud token is stored once instead of repeated per context. Your existing config migrates automatically the first time the new binary loads it. The old config file is left in the same directory, for you to delete manually when you are ready.</p>
<p><strong>3. Output for scripts and agents follows a strict contract.</strong> We are enforcing better consistency for output formats across all commands. When gcx detects it is being driven by an AI agent and no explicit format flag is given, every finite command now emits one JSON document on stdout (its result, or a structured error whose embedded <code>exitCode</code> matches the process exit code), streaming commands emit typed JSON Lines with a terminal success or error event, and stderr is advisory only. Explicit <code>--output</code>, <code>--json</code>, and <code>--jq</code> flags always take precedent. For humans, default output is the same as before, with a few exceptions: some success responses and dry-run notices have moved from stdout to stderr, partial failures in <code>gcx resources get</code> now exit 4 instead of 1, <code>pull</code> counts file-write failures instead of reporting success, and destructive <code>logs adaptive</code>, <code>traces adaptive</code>, and <code>kg</code> commands now prompt for confirmation, so scripts calling them need <code>--force</code> or <code>--yes</code>.</p>
<p><strong>4. gcx reports anonymous usage statistics by default.</strong> gcx now  reports the shape of usage: the command path, flag names, outcome, and duration. Identifiable information such as positional argument values, flag values, URLs, stack names, and query content are never sent. The only identifier is a random per-installation ID. gcx prints a notice about usage statistics on first run. Find out more by reading <a href="/docs/grafana/latest/as-code/observability-as-code/grafana-cli/gcx/anonymous-usage-statistics/">the docs</a>.</p>
<h2 id="why-were-changing-it">Why we&rsquo;re changing it</h2>
<p>We want v1.0,0 of gcx to be stable and clean, so we needed to get any known breaking changes in before we cut v1.0.0. We think the command renames make every command name understandable and predictable. The config file refactor will make it more convenient to authenticate to multiple contexts. The opt-out usage statistics will help us understand how our users use gcx, so we can make the product better.</p>
<h2 id="what-is-not-changing">What is not changing</h2>
<p>Any command that is not in the rename list above is unchanged.</p>
<h2 id="what-to-check-before-you-upgrade">What to check before you upgrade</h2>
<ul>
<li>If you have scripts, continuous integration (CI) jobs, aliases, runbooks, or agent prompts that invoke gcx, grep them for the old spellings in the table above and update to the new names before upgrading the binary. Old paths fail immediately as unknown commands.</li>
<li>If you call <code>gcx alert templates create</code>, <code>update</code>, or <code>apply</code>, switch to <code>gcx alert templates upsert</code> and be aware it always was create-or-update: it will overwrite an existing template with the same name.</li>
<li>If you script <code>gcx assistant investigations approvals</code>, <code>todos</code>, <code>document</code>, <code>report</code>, <code>timeline</code>, or <code>regenerate-report</code>, remove those calls; they are gone and have no replacement.</li>
<li>If you script destructive <code>gcx logs adaptive</code>, <code>gcx traces adaptive</code>, or <code>gcx kg</code> delete commands, add <code>--force</code> or <code>--yes</code>; they now prompt for confirmation.</li>
<li>If a script parses gcx stdout, re-test it after upgrading: some success messages and dry-run notices moved to stderr, and partial failures in <code>gcx resources get</code> now exit 4 instead of 1.</li>
<li>If you use <code>gcx config set</code> in automation, update the paths to the literal form, for example <code>gcx config set stacks.&lt;name&gt;.grafana.server &lt;url&gt;</code>; the old context-relative paths return an error with the new path.</li>
<li>If external tooling reads or writes the gcx config file directly, update it for the <code>version: 1</code> format (named <code>stacks</code> and <code>cloud</code> entries referenced by <code>contexts</code>) before upgrading. Interactive use needs nothing: migration is automatic and writes a backup first.</li>
<li>If your organisation&rsquo;s policy requires opting out of usage reporting, set <code>GCX_TELEMETRY=disabled</code> or <code>DO_NOT_TRACK=1</code> in your environment or CI images before rolling out the new binary; run <code>GCX_TELEMETRY=log gcx &lt;command&gt;</code> to inspect exactly what would be sent. Details: <a href="/docs/grafana-cloud/gcx/anonymous-usage-statistics/">https://grafana.com/docs/grafana-cloud/gcx/anonymous-usage-statistics/</a></li>
<li>If you installed the bundled agent skills, run <code>gcx skills update</code> after upgrading so the renamed <code>agento11y*</code> skills and removed <code>explore-datasources</code> skill are reflected in your agent&rsquo;s skill set.</li>
<li>Do all of the above before upgrading past v0.4.x; if you pin gcx in CI, upgrade a dev pipeline first and run your scripts against it.</li>
</ul>
]]></content><description>&lt;p>If you upgrade gcx from v0.4.x or earlier, there are breaking changes to be aware of:&lt;/p>
&lt;p>&lt;strong>1. Commands are renamed across many providers, with no aliases.&lt;/strong> Old spellings fail as unknown commands. Behaviour, flags, positional arguments, output schemas, and exit codes are unchanged, only the names moved. The aim is to make a more predictable and understandable command surface. Here are all the changes:&lt;/p></description><availability/><documentationURL xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple" xlink:href="https://grafana.com/docs/grafana-cloud/as-code/observability-as-code/grafana-cli/gcx/migrate-configuration/">gcx manual migration guide (for if the automatic migration fails)</documentationURL><tag>AI</tag><selfManagedEdition>OSS</selfManagedEdition><selfManagedEdition>Enterprise</selfManagedEdition><selfManagedReleaseVersion>Grafana v13.0.0</selfManagedReleaseVersion><effectiveDate>Tue, 28 Jul 2026 08:07:00 +0000</effectiveDate><changeType>breaking-change</changeType></item><item><title>AI Observability is now Agent Observability: Updated branding and migration guide</title><link>https://grafana.com/whats-next/2026-07-22-ai-observability-is-now-agent-observability--updated-branding-and-migration-guide/</link><pubDate>Thu, 23 Jul 2026 12:00:00 +0000</pubDate><guid>https://grafana.com/whats-next/2026-07-20-migrating-from-sigil-sdk-to-agento11y</guid><content><![CDATA[<p>Grafana&rsquo;s AI Observability (project name: Sigil) is being renamed to Grafana Agent Observability. As the product has grown to cover full agent lifecycles — from tool use to evaluations to guardrails — the name is catching up to what it already does.</p>
<p><strong>What this means for you</strong></p>
<p>The rename requires some updates on your end to SDK packages, any custom dashboards and alerts, and RBAC permissions: We&rsquo;ve made it backwards-compatible wherever we could, and old names will keep working during a transition period (retirement scheduled for the end of October) so you can migrate on your own schedule.</p>
<p>For step-by-step instructions, see the <a href="/docs/grafana-cloud/machine-learning/agent-observability/guides/migrate-sigil-sdk-to-agento11y/">migration guide</a>.</p>
<p>Thanks for being part of this journey with us. If anything here causes friction or you need a hand, <a href="/orgs/raintank/tickets/new">reach out</a> — we&rsquo;re happy to help.</p>
]]></content><description>&lt;p>Grafana&amp;rsquo;s AI Observability (project name: Sigil) is being renamed to Grafana Agent Observability. As the product has grown to cover full agent lifecycles — from tool use to evaluations to guardrails — the name is catching up to what it already does.&lt;/p></description><availability/><documentationURL xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple" xlink:href="https://docs.google.com/document/d/1Rf5rgqo3_pUv8izAZQWlRmmxgC6AGtFyVD3Va2vE7uc/edit?tab=t.0#heading=h.gtrbre9n19x3">Migration Guide</documentationURL><tag>AI</tag><selfManagedEdition>None</selfManagedEdition><selfManagedReleaseVersion>No self-managed release</selfManagedReleaseVersion><effectiveDate>Wed, 22 Jul 2026 15:35:00 +0000</effectiveDate><changeType>breaking-change</changeType></item><item><title>The Team API now returns richer team context</title><link>https://grafana.com/whats-next/2026-07-30-the-team-api-now-returns-richer-team-context/</link><pubDate>Tue, 07 Jul 2026 10:50:00 +0000</pubDate><guid>https://grafana.com/whats-next/2026-07-07-the-team-api-now-returns-richer-team-context</guid><content><![CDATA[<p>The new Grafana Team API will return richer team context. When you query a team through the new API, the response will include the team&rsquo;s members and its external group mappings as part of the Team resource itself, so a single call will give you a complete picture of the team.</p>
<p><strong>Team members will come back with the team.</strong> Membership used to be managed through a separate TeamBinding object and was visible only to team administrators. Members will become part of the Team resource, under <code>spec.members</code>, and the <code>/teams/{name}/members</code> and <code>/users/{name}/teams</code> endpoints will read from there. Anything that reads a team will get its members in the same response.</p>
<p><strong>External group mappings will come back with the team.</strong> This is an Enterprise feature. External group mappings used to be managed only through the legacy <code>/api/teams/{uid}/groups</code> endpoint and were visible only to team administrators. They will become part of the Team resource, under <code>spec.externalGroups</code>. The field may appear on any Team as an empty list, but will only be used with Grafana Enterprise.</p>
<p><strong>One thing to update if you already use the groups endpoint.</strong> The <code>/teams/{name}/groups</code> endpoint will return a plain list of group names (<code>externalGroups: [string]</code>) instead of the previous list of <code>{name, externalGroup}</code> objects. If you have an integration that reads this endpoint, update it to handle the new response before the change reaches your instance.</p>
<p><strong>What is not changing.</strong> This affects the new Team API only. The Grafana UI will work exactly as before. The legacy <code>/api</code> endpoints that the current UI relies on will be served by the new API under the hood, but will not return the new fields. The extra data will be returned only when you query the new Team API directly. There will be no visible change in the product interface.</p>
<p><strong>Why we&rsquo;re making this change.</strong> Team membership and external group mappings are core parts of a team&rsquo;s definition. Keeping them on the Team resource makes the Team API the single source of truth, so anything that reads a team
gets a complete and consistent picture instead of stitching together separate objects and endpoints.</p>
<p><strong>What to check before this rolls out.</strong></p>
<ul>
<li>If you consume <code>/teams/{name}/groups</code>, update your client to handle the new <code>externalGroups: [string]</code> response shape.</li>
<li>After writing <code>spec.externalGroups</code>, read the values back from the server. Grafana normalizes them on save (trimmed, lowercased, sorted), so the stored form may differ from what you submitted.</li>
<li>Member and external group data that was previously visible only to team administrators will become part of the Team resource. If you treat membership or group mappings as sensitive, review who can read Team resources in your instance.</li>
</ul>
]]></content><description>&lt;p>The new Grafana Team API will return richer team context. When you query a team through the new API, the response will include the team&amp;rsquo;s members and its external group mappings as part of the Team resource itself, so a single call will give you a complete picture of the team.&lt;/p></description><availability/><tag>Authentication and authorization</tag><selfManagedEdition>OSS</selfManagedEdition><selfManagedEdition>Enterprise</selfManagedEdition><selfManagedReleaseVersion>Grafana v13.2.0</selfManagedReleaseVersion><effectiveDate>Thu, 30 Jul 2026 10:50:00 +0000</effectiveDate><changeType>breaking-change</changeType></item></channel></rss>