<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Set up GEM on Grafana Labs</title><link>https://grafana.com/docs/enterprise-metrics/v2.17.x/set-up/</link><description>Recent content in Set up GEM on Grafana Labs</description><generator>Hugo -- gohugo.io</generator><language>en</language><atom:link href="/docs/enterprise-metrics/v2.17.x/set-up/index.xml" rel="self" type="application/rss+xml"/><item><title>GEM hardware requirements</title><link>https://grafana.com/docs/enterprise-metrics/v2.17.x/set-up/hardware/</link><pubDate>Mon, 18 Aug 2025 18:19:44 +0000</pubDate><guid>https://grafana.com/docs/enterprise-metrics/v2.17.x/set-up/hardware/</guid><content><![CDATA[&lt;h1 id=&#34;gem-hardware-requirements&#34;&gt;GEM hardware requirements&lt;/h1&gt;
&lt;p&gt;This page outlines the current hardware requirements for running Grafana Enterprise Metrics (GEM). Grafana Labs reserves the right to mark a support issue as &amp;lsquo;unresolvable&amp;rsquo; if these requirements are not followed. See the &lt;a href=&#34;/legal/grafana-enterprise-slas/&#34;&gt;Grafana Labs Enterprise Support SLA&lt;/a&gt; for more details.&lt;/p&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;As of February 2025, you must run GEM on the managed Kubernetes services offered by AWS (&lt;a href=&#34;https://aws.amazon.com/eks/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Amazon Elastic Kubernetes Service&lt;/a&gt;), GCP (&lt;a href=&#34;https://cloud.google.com/kubernetes-engine&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Google Kubernetes Engine&lt;/a&gt;), or Azure (&lt;a href=&#34;https://azure.microsoft.com/en-us/products/kubernetes-service&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Azure Kubernetes Service&lt;/a&gt;). Additionally, you must use the managed object storage services offered by AWS (&lt;a href=&#34;https://aws.amazon.com/s3/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;S3&lt;/a&gt;), GCP (&lt;a href=&#34;https://cloud.google.com/storage&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;GCS&lt;/a&gt;), or Azure (&lt;a href=&#34;https://azure.microsoft.com/en-us/products/storage/blobs&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Blob Storage&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;No other deployment modes are supported.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;p&gt;Here are more details on the hardware and object storage requirements for CPU, memory, and disk for managed Kubernetes clusters.&lt;/p&gt;
&lt;h2 id=&#34;cpu-and-memory&#34;&gt;CPU and memory&lt;/h2&gt;
&lt;p&gt;You should deploy GEM on machines with a 1:4 ratio of CPU to memory, meaning that for every CPU core, there should be 4GB of memory. Grafana Labs recommends deploying GEM onto machines with 16 CPU cores and 64GB of memory. All nodes in the Kubernetes cluster running GEM should be of the same type.&lt;/p&gt;
&lt;h2 id=&#34;disk&#34;&gt;Disk&lt;/h2&gt;
&lt;p&gt;Various components of GEM, including the ingester and Alertmanager, require fast and persistent, local disk resources to be available to the host machine. For example, in the case of the ingester component, all incoming data is sent to a write-ahead log (WAL) to help withstand unexpected node termination. Additionally, a large amount of data is flushed to disk every 2 hours, by default, in preparation for uploading it to long-term object storage. The supported configurations for AWS, GCP, and Azure are as follows:&lt;/p&gt;
&lt;h3 id=&#34;amazon-web-services-aws&#34;&gt;Amazon Web Services (AWS)&lt;/h3&gt;
&lt;p&gt;GEM is tested to run with &lt;code&gt;io1&lt;/code&gt; Provisioned IOPS SSD EBS volumes. The &lt;code&gt;io1&lt;/code&gt; storage must be provisioned at &lt;code&gt;50&lt;/code&gt; IOPS per gigabyte, with a minimum of &lt;code&gt;150Gi&lt;/code&gt; allocated to ensure performant I/O.&lt;/p&gt;
&lt;h3 id=&#34;google-cloud-platform-gcp&#34;&gt;Google Cloud Platform (GCP)&lt;/h3&gt;
&lt;p&gt;GEM is tested to run with &lt;code&gt;pd-ssd&lt;/code&gt; SSD persistent disks.&lt;/p&gt;
&lt;h3 id=&#34;microsoft-azure&#34;&gt;Microsoft Azure&lt;/h3&gt;
&lt;p&gt;GEM is tested to run with &lt;code&gt;Premium SSD&lt;/code&gt; SSD persistent disks.&lt;/p&gt;
&lt;h2 id=&#34;network&#34;&gt;Network&lt;/h2&gt;
&lt;p&gt;All components of GEM require fast network access. Nodes the software runs on should be connected by 10 gigabit/second or faster network connection speed.&lt;/p&gt;
&lt;h2 id=&#34;object-storage&#34;&gt;Object storage&lt;/h2&gt;
&lt;p&gt;GEM requires object storage for configuration storage, as well as long-term data storage. AWS S3, GCP GCS, and Azure Blob storage are the only supported object stores for running GEM.&lt;/p&gt;
&lt;h3 id=&#34;amazon-web-services-aws-1&#34;&gt;Amazon Web Services (AWS)&lt;/h3&gt;
&lt;p&gt;GEM is tested to run with AWS&amp;rsquo;s S3 object storage service using the &lt;code&gt;Standard&lt;/code&gt; storage class.&lt;/p&gt;
&lt;h3 id=&#34;google-cloud-platform-gcp-1&#34;&gt;Google Cloud Platform (GCP)&lt;/h3&gt;
&lt;p&gt;GEM is tested to run with GCP&amp;rsquo;s GCS object storage service using the &lt;code&gt;STANDARD&lt;/code&gt; storage class in both regional and dual regional storage locations.&lt;/p&gt;
&lt;h3 id=&#34;microsoft-azure-1&#34;&gt;Microsoft Azure&lt;/h3&gt;
&lt;p&gt;GEM is tested to run Azure&amp;rsquo;s Blob Storage object storage service using the &lt;code&gt;Standard&lt;/code&gt; storage class with replication type &lt;code&gt;LRS&lt;/code&gt;.&lt;/p&gt;
]]></content><description>&lt;h1 id="gem-hardware-requirements">GEM hardware requirements&lt;/h1>
&lt;p>This page outlines the current hardware requirements for running Grafana Enterprise Metrics (GEM). Grafana Labs reserves the right to mark a support issue as &amp;lsquo;unresolvable&amp;rsquo; if these requirements are not followed. See the &lt;a href="/legal/grafana-enterprise-slas/">Grafana Labs Enterprise Support SLA&lt;/a> for more details.&lt;/p></description></item><item><title>Migrate to Grafana Mimir</title><link>https://grafana.com/docs/enterprise-metrics/v2.17.x/set-up/migrate/</link><pubDate>Thu, 14 Aug 2025 18:42:07 +0000</pubDate><guid>https://grafana.com/docs/enterprise-metrics/v2.17.x/set-up/migrate/</guid><content><![CDATA[&lt;!-- Note: This topic is mounted in the GEM documentation. Ensure that all updates are also applicable to GEM. --&gt;
&lt;h1 id=&#34;migrate-to-grafana-mimir&#34;&gt;Migrate to Grafana Mimir&lt;/h1&gt;
&lt;p&gt;Refer to the following migration guides when you migrate to Grafana Mimir.&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;
    &lt;a href=&#34;/docs/enterprise-metrics/v2.17.x/set-up/migrate/migrate-from-cortex/&#34;&gt;Migrate from Cortex&lt;/a&gt;&lt;/li&gt;&lt;li&gt;
    &lt;a href=&#34;/docs/enterprise-metrics/v2.17.x/set-up/migrate/migrate-from-thanos-or-prometheus/&#34;&gt;Migrate from Thanos or Prometheus&lt;/a&gt;&lt;/li&gt;&lt;li&gt;
    &lt;a href=&#34;/docs/enterprise-metrics/v2.17.x/set-up/migrate/migrate-from-thanos-to-mimir-with-thanos-sidecar/&#34;&gt;Migrate from Thanos using Thanos sidecar&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
]]></content><description>&lt;!-- Note: This topic is mounted in the GEM documentation. Ensure that all updates are also applicable to GEM. -->
&lt;h1 id="migrate-to-grafana-mimir">Migrate to Grafana Mimir&lt;/h1>
&lt;p>Refer to the following migration guides when you migrate to Grafana Mimir.&lt;/p></description></item><item><title>Deploy Mimir with Helm</title><link>https://grafana.com/docs/enterprise-metrics/v2.17.x/set-up/helm-chart/</link><pubDate>Thu, 14 Aug 2025 18:42:07 +0000</pubDate><guid>https://grafana.com/docs/enterprise-metrics/v2.17.x/set-up/helm-chart/</guid><content><![CDATA[&lt;!-- Note: This topic is mounted in the GEM documentation. Ensure that all updates are also applicable to GEM. --&gt;
&lt;h1 id=&#34;deploy-mimir-with-helm&#34;&gt;Deploy Mimir with Helm&lt;/h1&gt;
&lt;p&gt;The &lt;a href=&#34;https://github.com/grafana/mimir/blob/main/operations/helm/charts/mimir-distributed/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&lt;code&gt;mimir-distributed&lt;/code&gt; Helm chart&lt;/a&gt; for Grafana Mimir and Grafana Enterprise Metrics allows you to configure, install, and upgrade Grafana Mimir or Grafana Enterprise Metrics within a Kubernetes cluster.&lt;/p&gt;
&lt;h2 id=&#34;example-values-files&#34;&gt;Example values files&lt;/h2&gt;
&lt;p&gt;The mimir-distributed Helm chart includes the following example values files:&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;File name&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;https://github.com/grafana/mimir/blob/main/operations/helm/charts/mimir-distributed/values.yaml&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&lt;code&gt;values.yaml&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Contains default values for testing GEM in non-production environments using a test MinIO deployment for object storage.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;https://github.com/grafana/mimir/tree/main/operations/helm/charts/mimir-distributed/small.yaml&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&lt;code&gt;small.yaml&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Contains values for a higher scale than defaults, for ingestion up to approximately one million series. Not suitable for high-availability production use, due to single replicas of key components.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;a href=&#34;https://github.com/grafana/mimir/tree/main/operations/helm/charts/mimir-distributed/large.yaml&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&lt;code&gt;large.yaml&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
              &lt;td&gt;Contains values for production use for ingestion up to approximately ten million series.&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h2 id=&#34;see-also&#34;&gt;See also&lt;/h2&gt;
&lt;p&gt;To deploy Mimir using the &lt;code&gt;mimir-distributed&lt;/code&gt; Helm chart, see &lt;a href=&#34;/docs/helm-charts/mimir-distributed/latest/get-started-helm-charts/&#34;&gt;Get started with Grafana Mimir using the Helm chart&lt;/a&gt;.&lt;/p&gt;
]]></content><description>&lt;!-- Note: This topic is mounted in the GEM documentation. Ensure that all updates are also applicable to GEM. -->
&lt;h1 id="deploy-mimir-with-helm">Deploy Mimir with Helm&lt;/h1>
&lt;p>The &lt;a href="https://github.com/grafana/mimir/blob/main/operations/helm/charts/mimir-distributed/" target="_blank" rel="noopener noreferrer">&lt;code>mimir-distributed&lt;/code> Helm chart&lt;/a> for Grafana Mimir and Grafana Enterprise Metrics allows you to configure, install, and upgrade Grafana Mimir or Grafana Enterprise Metrics within a Kubernetes cluster.&lt;/p></description></item><item><title>Set up the GEM plugin for Grafana</title><link>https://grafana.com/docs/enterprise-metrics/v2.17.x/set-up/set-up-gem-plugin-grafana/</link><pubDate>Wed, 10 Jun 2026 16:15:01 +0000</pubDate><guid>https://grafana.com/docs/enterprise-metrics/v2.17.x/set-up/set-up-gem-plugin-grafana/</guid><content><![CDATA[&lt;h1 id=&#34;set-up-the-gem-plugin-for-grafana&#34;&gt;Set up the GEM plugin for Grafana&lt;/h1&gt;


&lt;div data-shared=&#34;gex-eol-note.md&#34;&gt;
            

&lt;div class=&#34;admonition admonition-warning&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Warning&lt;/p&gt;&lt;p&gt;Grafana Enterprise Metrics (GEM), Grafana Enterprise Logs (GEL), and Grafana Enterprise Traces (GET) have entered Long-Term Support (LTS):&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;GEM LTS version is 2.17.&lt;/li&gt;
&lt;li&gt;GEL LTS version is 3.6.&lt;/li&gt;
&lt;li&gt;GET LTS version is 2.8.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Existing customers will continue to receive support, bug fixes, and security fixes, but no new features, through Feb. 1, 2029, when GEM, GEL, and GET will reach End-of-Life (EOL).&lt;/p&gt;
&lt;p&gt;If you have questions, contact your account manager.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;/div&gt;

        
&lt;h2 id=&#34;requirements&#34;&gt;Requirements&lt;/h2&gt;
&lt;p&gt;Grafana Enterprise 9.5 or higher.&lt;/p&gt;
&lt;p&gt;Refer to &lt;a href=&#34;/docs/grafana/latest/installation/kubernetes/#deploy-grafana-enterprise-on-kubernetes&#34;&gt;Deploy Grafana Enterprise on Kubernetes&lt;/a&gt; if you are using Kubernetes. Otherwise, refer to &lt;a href=&#34;/docs/grafana/latest/installation/&#34;&gt;Install Grafana&lt;/a&gt; for more information.&lt;/p&gt;
&lt;h2 id=&#34;install-the-plugin-in-your-gem-instance&#34;&gt;Install the plugin in your GEM instance&lt;/h2&gt;
&lt;p&gt;There are multiple ways to install the plugin to your local Grafana Enterprise instance. For more information, refer to &lt;a href=&#34;/grafana/plugins/grafana-metrics-enterprise-app/?tab=installation&#34;&gt;Grafana Enterprise Metrics app installation&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;enable-and-configure-the-plugin&#34;&gt;Enable and configure the plugin&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;Log in to your Grafana Enterprise Metrics.&lt;/li&gt;
&lt;li&gt;Go to the Config/Plugins page and select the Grafana Enterprise Metrics plugin from list.&lt;/li&gt;
&lt;li&gt;From the configuration page of the plugin, enable the plugin by clicking on the &lt;strong&gt;Enable plugin&lt;/strong&gt; button.&lt;/li&gt;
&lt;li&gt;Provide the necessary API settings so that the plugin can connect to your cluster:&lt;/li&gt;
&lt;/ol&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Access Token&lt;/strong&gt;: Enter the admin-scoped access token that you generated when setting up your GEM cluster.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Enterprise Metrics URL&lt;/strong&gt;: Enter the URL of your GEM cluster. For single-process clusters, this is any node in the cluster. For microservice deployments, this URL is the GEM gateway.&lt;/p&gt;
&lt;figure
      class=&#34;figure-wrapper figure-wrapper__lightbox w-100p &#34;
      style=&#34;max-width: 900px;&#34;
      itemprop=&#34;associatedMedia&#34;
      itemscope=&#34;&#34;
      itemtype=&#34;http://schema.org/ImageObject&#34;
    &gt;&lt;a
          class=&#34;lightbox-link captioned&#34;
          href=&#34;../grafana-plugin-config-page.png&#34;
          itemprop=&#34;contentUrl&#34;
        &gt;&lt;div class=&#34;img-wrapper w-100p h-auto&#34;&gt;&lt;img
            class=&#34;lazyload mb-0&#34;
            data-src=&#34;../grafana-plugin-config-page.png&#34;alt=&#34;Configuration GEM plugin page&#34;title=&#34;Configuration GEM plugin page&#34;/&gt;
          &lt;noscript&gt;
            &lt;img
              src=&#34;../grafana-plugin-config-page.png&#34;
              alt=&#34;Configuration GEM plugin page&#34;title=&#34;Configuration GEM plugin page&#34;/&gt;
          &lt;/noscript&gt;&lt;/div&gt;&lt;figcaption class=&#34;w-100p caption text-gray-13  &#34;&gt;Configuration GEM plugin page&lt;/figcaption&gt;&lt;/a&gt;&lt;/figure&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ol&gt;
&lt;li&gt;Click &lt;strong&gt;Save API settings&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Verify that the plugin loads and can communicate with the GEM admin API endpoints.&lt;/li&gt;
&lt;li&gt;Navigate to the Grafana Enterprise Metrics plugin through the main menu to see the default access policy under the &lt;strong&gt;Access policies&lt;/strong&gt; tab.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&#34;configure-the-plugin-via-provisioning&#34;&gt;Configure the plugin via provisioning&lt;/h3&gt;
&lt;p&gt;You can alternatively manage the GEM plugin via a &lt;a href=&#34;/docs/grafana/latest/administration/provisioning/#plugins&#34;&gt;plugin config&lt;/a&gt;.&lt;/p&gt;
&lt;details&gt;
&lt;h4 id=&#34;example-gem-plugin-configuration-file&#34;&gt;Example GEM plugin configuration file&lt;/h4&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;apiVersion: 1

apps:
  # &amp;lt;string&amp;gt; the type of app, plugin identifier. Required
  - type: grafana-metrics-enterprise-app
    # &amp;lt;int&amp;gt; Org ID. Default to 1, unless org_name is specified
    org_id: 1
    # &amp;lt;string&amp;gt; Org name. Overrides org_id unless org_id not specified
    org_name: Main Org.
    # &amp;lt;bool&amp;gt; disable the app. Default to false.
    disabled: false
    # &amp;lt;map&amp;gt; fields that will be converted to json and stored in jsonData.
    jsonData:
      # key/value pairs of string to object
      backendUrl: http://[...]
    # &amp;lt;map&amp;gt; fields that will be converted to json, encrypted and stored in secureJsonData.
    secureJsonData:
      # &amp;lt;string&amp;gt;
      accessToken: [...]&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h4 id=&#34;optional-policiesonly-field&#34;&gt;Optional &lt;code&gt;policiesOnly&lt;/code&gt; field&lt;/h4&gt;
&lt;p&gt;For a simpler user experience that only shows the &amp;ldquo;Access policies&amp;rdquo; page, you can include the following in the &lt;code&gt;jsonData&lt;/code&gt; configuration:&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;jsonData:
  policiesOnly: true&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;This simpler mode of operation only gives access to the ability to create access policies and tokens. It requires setting up the environment to include
at least one tenant.&lt;/p&gt;
&lt;h4 id=&#34;legacy-base64encodedaccesstoken-field&#34;&gt;Legacy &lt;code&gt;base64EncodedAccessToken&lt;/code&gt; field&lt;/h4&gt;
&lt;p&gt;Prior to version 6.0.0 of the plugin, a &lt;code&gt;base64EncodedAccessToken&lt;/code&gt; field was required for authentication.
This has been replaced with the simpler &lt;code&gt;accessToken&lt;/code&gt;.&lt;/p&gt;
&lt;details&gt;
  The following is provided for troubleshooting purposes, or for users of versions
  earlier than 6.0.0.
&lt;p&gt;Moving forward, use &lt;code&gt;accessToken&lt;/code&gt; in your configuration.&lt;/p&gt;
&lt;p&gt;If both &lt;code&gt;base64EncodedAccessToken&lt;/code&gt; and &lt;code&gt;accessToken&lt;/code&gt; are present in the &lt;code&gt;jsonData&lt;/code&gt;, the &lt;code&gt;base64EncodedAccessToken&lt;/code&gt; is ignored in versions 6.0.0 and later.&lt;/p&gt;
&lt;p&gt;The format of the &lt;code&gt;base64EncodedAccessToken&lt;/code&gt; token is a base64-encoded representation of a user-token pair, separated by colon. For example, &lt;code&gt;$USER:$TOKEN&lt;/code&gt;.
If you&amp;rsquo;ve set your GEM token as the &lt;code&gt;TOKEN&lt;/code&gt; environment variable,
and you&amp;rsquo;ve also set a &lt;code&gt;USER&lt;/code&gt; environment variable, then you can generate a compatible &lt;code&gt;base64EncodedAccessToken&lt;/code&gt; token in the following format:&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;sh&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-sh&#34;&gt;#USER INTENTIONALLY LEFT BLANK, INDICATING THE &amp;#34;ADMIN&amp;#34; USER
USER=
TOKEN=exampleTokenForBase64EncodedAccessToken
echo $USER:$TOKEN | tr -d &amp;#39;[:space:]&amp;#39; | base64 -w0&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Though &lt;code&gt;$USER&lt;/code&gt; is typically blank, you can opt to leave it in the expression to ensure that the &lt;code&gt;:&lt;/code&gt; character is present.
The following is a more direct way of obtaining the same result:&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;sh&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-sh&#34;&gt;echo :$TOKEN | tr -d &amp;#39;[:space:]&amp;#39; | base64 -w0&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;These examples both result in the following &lt;code&gt;base64EncodedAccessToken&lt;/code&gt; string:&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;OmV4YW1wbGVUb2tlbkZvckJhc2U2NEVuY29kZWRBY2Nlc3NUb2tlbgo=&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;You can apply the encoded token string to the configuration under &lt;code&gt;secureJsonData&lt;/code&gt;:&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;secureJsonData:
  # &amp;lt;string&amp;gt; a base64 encoding of $USER:$TOKEN
  base64EncodedAccessToken: OmV4YW1wbGVUb2tlbkZvckJhc2U2NEVuY29kZWRBY2Nlc3NUb2tlbgo=&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;/details&gt;
&lt;/details&gt;
&lt;h2 id=&#34;next-steps&#34;&gt;Next steps&lt;/h2&gt;
&lt;p&gt;Now that you have correctly configured the plugin, you can move on to 
    &lt;a href=&#34;/docs/enterprise-metrics/v2.17.x/set-up/set-up-gem-tenant/&#34;&gt;setting up a GEM tenant and visualizing your data&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;install-dashboards&#34;&gt;Install dashboards&lt;/h2&gt;
&lt;p&gt;Install dashboards to add the latest versions of the cardinality and self-monitoring dashboards to your GEM instance. These dashboards help you to gain additional insight into your data in GEM.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;In your Grafana instance, go to &lt;strong&gt;Administration&lt;/strong&gt; &amp;gt; &lt;strong&gt;Plugins and data&lt;/strong&gt; &amp;gt; &lt;strong&gt;Plugins&lt;/strong&gt; &amp;gt; &lt;strong&gt;Grafana Enterprise Metrics&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Select the &lt;strong&gt;Dashboards&lt;/strong&gt; tab.&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;Install Cardinality dashboards&lt;/strong&gt;, &lt;strong&gt;Install Self-monitoring dashboards&lt;/strong&gt;, or both, depending on which dashboards you want to install.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The &lt;strong&gt;Installed dashboards&lt;/strong&gt; list updates to show the dashboards you installed. To view a dashboard, select it from the list. To reinstall the dashboards following an update, repeat the same steps.&lt;/p&gt;
&lt;h2 id=&#34;configure-a-private-certificate-authority&#34;&gt;Configure a private certificate authority&lt;/h2&gt;
&lt;p&gt;If you are running GEM in a closed environment using a self-signed certificate, you need to configure a private certificate authority. For more information, refer to &lt;a href=&#34;/docs/grafana/latest/setup-grafana/installation/helm/#configure-a-private-ca-certificate-authority&#34;&gt;Configure a Private CA (Certificate Authority)&lt;/a&gt; in the Grafana documentation.&lt;/p&gt;
&lt;h2 id=&#34;limitations&#34;&gt;Limitations&lt;/h2&gt;
&lt;p&gt;The GEM plugin for Grafana allows to manage only 1 GEM cluster, and it doesn&amp;rsquo;t support managing multiple GEM clusters with a single GEM plugin installation.
In case you need to manage multiple GEM clusters you should configure 1 GEM cluster per Grafana organization.&lt;/p&gt;
]]></content><description>&lt;h1 id="set-up-the-gem-plugin-for-grafana">Set up the GEM plugin for Grafana&lt;/h1>
&lt;div data-shared="gex-eol-note.md">
&lt;div class="admonition admonition-warning">&lt;blockquote>&lt;p class="title text-uppercase">Warning&lt;/p>&lt;p>Grafana Enterprise Metrics (GEM), Grafana Enterprise Logs (GEL), and Grafana Enterprise Traces (GET) have entered Long-Term Support (LTS):&lt;/p></description></item><item><title>Set up a GEM tenant</title><link>https://grafana.com/docs/enterprise-metrics/v2.17.x/set-up/set-up-gem-tenant/</link><pubDate>Mon, 18 Aug 2025 18:19:44 +0000</pubDate><guid>https://grafana.com/docs/enterprise-metrics/v2.17.x/set-up/set-up-gem-tenant/</guid><content><![CDATA[&lt;h1 id=&#34;set-up-a-gem-tenant&#34;&gt;Set up a GEM tenant&lt;/h1&gt;
&lt;p&gt;Create a Grafana Enterprise Metrics tenant:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to &lt;strong&gt;Grafana Enterprise Metrics&lt;/strong&gt; &amp;gt; &lt;strong&gt;Tenants&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Click on &lt;strong&gt;Create new tenant&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Choose a name for this very tenant.
For demonstration purposes, use the name &lt;code&gt;dev-tenant&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Select the cluster.&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Create tenant&lt;/strong&gt;.&lt;/li&gt;
&lt;/ol&gt;
&lt;figure
    class=&#34;figure-wrapper figure-wrapper__lightbox w-100p &#34;
    style=&#34;max-width: 900px;&#34;
    itemprop=&#34;associatedMedia&#34;
    itemscope=&#34;&#34;
    itemtype=&#34;http://schema.org/ImageObject&#34;
  &gt;&lt;a
        class=&#34;lightbox-link captioned&#34;
        href=&#34;../create-tenant.png&#34;
        itemprop=&#34;contentUrl&#34;
      &gt;&lt;div class=&#34;img-wrapper w-100p h-auto&#34;&gt;&lt;img
          class=&#34;lazyload mb-0&#34;
          data-src=&#34;../create-tenant.png&#34;alt=&#34;Create tenant&#34;title=&#34;Create tenant&#34;/&gt;
        &lt;noscript&gt;
          &lt;img
            src=&#34;../create-tenant.png&#34;
            alt=&#34;Create tenant&#34;title=&#34;Create tenant&#34;/&gt;
        &lt;/noscript&gt;&lt;/div&gt;&lt;figcaption class=&#34;w-100p caption text-gray-13  &#34;&gt;Create tenant&lt;/figcaption&gt;&lt;/a&gt;&lt;/figure&gt;
&lt;h2 id=&#34;create-an-access-policy&#34;&gt;Create an access policy&lt;/h2&gt;
&lt;p&gt;Create a data source access policy and token, which are used by Grafana Enterprise itself to access the metrics in the tenant named &lt;code&gt;dev-tenant&lt;/code&gt;:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to &lt;strong&gt;Grafana Enterprise Metrics&lt;/strong&gt; &amp;gt; &lt;strong&gt;Access policies&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Create new access policy&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Choose a name for the policy.
For demonstration purposes, use &lt;code&gt;dev-read-write-policy&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Enable the scope &lt;strong&gt;metrics:read&lt;/strong&gt; and &lt;strong&gt;metrics:write&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Select the tenant &lt;code&gt;dev-tenant&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Click on &lt;strong&gt;Create&lt;/strong&gt;.&lt;/li&gt;
&lt;/ol&gt;
&lt;figure
    class=&#34;figure-wrapper figure-wrapper__lightbox w-100p &#34;
    style=&#34;max-width: 900px;&#34;
    itemprop=&#34;associatedMedia&#34;
    itemscope=&#34;&#34;
    itemtype=&#34;http://schema.org/ImageObject&#34;
  &gt;&lt;a
        class=&#34;lightbox-link captioned&#34;
        href=&#34;../create-ap.png&#34;
        itemprop=&#34;contentUrl&#34;
      &gt;&lt;div class=&#34;img-wrapper w-100p h-auto&#34;&gt;&lt;img
          class=&#34;lazyload mb-0&#34;
          data-src=&#34;../create-ap.png&#34;alt=&#34;Create access policy&#34;title=&#34;Create access policy&#34;/&gt;
        &lt;noscript&gt;
          &lt;img
            src=&#34;../create-ap.png&#34;
            alt=&#34;Create access policy&#34;title=&#34;Create access policy&#34;/&gt;
        &lt;/noscript&gt;&lt;/div&gt;&lt;figcaption class=&#34;w-100p caption text-gray-13  &#34;&gt;Create access policy&lt;/figcaption&gt;&lt;/a&gt;&lt;/figure&gt;
&lt;ol&gt;
&lt;li&gt;From the newly created access policy, click &lt;strong&gt;&#43; Add token&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Name the token &lt;code&gt;dev-token&lt;/code&gt;, and click on &lt;strong&gt;Create&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;In the next window, copy the token.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;If you&amp;rsquo;re using Prometheus, you can add the following example of a remote-write configuration:&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;remote_write:
  - url: http://enterprise-metrics/api/v1/push
    basic_auth:
      username: dev-tenant
      password: ZGV2LXJlYWQtd3JpdGVyLXBvbGljeS1kZW1vLXRva2VuOjY/ezduMTVhJDQvPGMvLzQ1SzgsJjFbMQ==&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;If you&amp;rsquo;re using Grafana Alloy, you can add the following example of a remote-write configuration:&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;prometheus.remote_write &amp;#34;default&amp;#34; {
  endpoint {
    url = &amp;#34;http://enterprise-metrics/api/v1/push&amp;#34;
    basic_auth {
      username = &amp;#34;dev-tenant&amp;#34;
      password = &amp;#34;ZGV2LXJlYWQtd3JpdGVyLXBvbGljeS1kZW1vLXRva2VuOjY/ezduMTVhJDQvPGMvLzQ1SzgsJjFbMQ==&amp;#34;
      }
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h2 id=&#34;setup-remote-write-to-your-tenant&#34;&gt;Setup remote-write to your tenant&lt;/h2&gt;
&lt;p&gt;To enable writes to your cluster, add the above remote-write configuration snippet to the configuration file of an existing Prometheus or Grafana Alloy collector.&lt;/p&gt;
&lt;p&gt;If you do not have an existing metrics collector 
    &lt;a href=&#34;/docs/alloy/latest/get-started/&#34;&gt;you can get started with Grafana Alloy&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;An example agent configuration would be:&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;server:
  log_level: info
  http_listen_port: 8081

prometheus:
  wal_directory: /tmp/agent
  global:
    scrape_interval: 5s
  configs:
    - name: default
      scrape_configs:
        - job_name: enterprise-metrics
          static_configs:
            - targets: [&amp;#34;localhost:8080&amp;#34;]
        - job_name: agent
          static_configs:
            - targets: [&amp;#34;localhost:8081&amp;#34;]

integrations:
  agent:
    enabled: true
  node_exporter:
    enabled: true
  prometheus_remote_write:
    - url: http://&amp;lt;gme-hostname&amp;gt;/api/v1/push
      basic_auth:
        username: dev-tenant
        password: ZGV2LXJlYWQtd3JpdGVyLXBvbGljeS1kZW1vLXRva2VuOjY/ezduMTVhJDQvPGMvLzQ1SzgsJjFbMQ==&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h2 id=&#34;setup-your-tenant-as-a-grafana-datasource&#34;&gt;Setup your tenant as a Grafana datasource&lt;/h2&gt;
&lt;p&gt;Following that we can use this access policy and token to create a new datasource in Grafana:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to &lt;strong&gt;Configuration ≫ Data Sources&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Click on &lt;strong&gt;Add new data source&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;Prometheus&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Set the URL to &lt;code&gt;http://&amp;lt;gme-host&amp;gt;/prometheus&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Enable &lt;strong&gt;Basic Auth&lt;/strong&gt; and use &lt;strong&gt;User&lt;/strong&gt; &lt;code&gt;dev-tenant&lt;/code&gt; and as &lt;strong&gt;Password&lt;/strong&gt; the token from your clipboard.&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Save &amp;amp; Test&lt;/strong&gt;.&lt;/li&gt;
&lt;/ol&gt;
&lt;figure
    class=&#34;figure-wrapper figure-wrapper__lightbox w-100p &#34;
    style=&#34;max-width: 900px;&#34;
    itemprop=&#34;associatedMedia&#34;
    itemscope=&#34;&#34;
    itemtype=&#34;http://schema.org/ImageObject&#34;
  &gt;&lt;a
        class=&#34;lightbox-link captioned&#34;
        href=&#34;../create-datasource.png&#34;
        itemprop=&#34;contentUrl&#34;
      &gt;&lt;div class=&#34;img-wrapper w-100p h-auto&#34;&gt;&lt;img
          class=&#34;lazyload mb-0&#34;
          data-src=&#34;../create-datasource.png&#34;alt=&#34;Create datasource&#34;title=&#34;Create datasource&#34;/&gt;
        &lt;noscript&gt;
          &lt;img
            src=&#34;../create-datasource.png&#34;
            alt=&#34;Create datasource&#34;title=&#34;Create datasource&#34;/&gt;
        &lt;/noscript&gt;&lt;/div&gt;&lt;figcaption class=&#34;w-100p caption text-gray-13  &#34;&gt;Create datasource&lt;/figcaption&gt;&lt;/a&gt;&lt;/figure&gt;
&lt;h2 id=&#34;visualize-your-data&#34;&gt;Visualize your data&lt;/h2&gt;
&lt;p&gt;Once you have created a datasource you should now be able to visualize your metrics in the Grafana Explore page.&lt;/p&gt;
&lt;figure
    class=&#34;figure-wrapper figure-wrapper__lightbox w-100p &#34;
    style=&#34;max-width: 900px;&#34;
    itemprop=&#34;associatedMedia&#34;
    itemscope=&#34;&#34;
    itemtype=&#34;http://schema.org/ImageObject&#34;
  &gt;&lt;a
        class=&#34;lightbox-link captioned&#34;
        href=&#34;../visualize-data.png&#34;
        itemprop=&#34;contentUrl&#34;
      &gt;&lt;div class=&#34;img-wrapper w-100p h-auto&#34;&gt;&lt;img
          class=&#34;lazyload mb-0&#34;
          data-src=&#34;../visualize-data.png&#34;alt=&#34;Visualize data&#34;title=&#34;Visualize data&#34;/&gt;
        &lt;noscript&gt;
          &lt;img
            src=&#34;../visualize-data.png&#34;
            alt=&#34;Visualize data&#34;title=&#34;Visualize data&#34;/&gt;
        &lt;/noscript&gt;&lt;/div&gt;&lt;figcaption class=&#34;w-100p caption text-gray-13  &#34;&gt;Visualize data&lt;/figcaption&gt;&lt;/a&gt;&lt;/figure&gt;
]]></content><description>&lt;h1 id="set-up-a-gem-tenant">Set up a GEM tenant&lt;/h1>
&lt;p>Create a Grafana Enterprise Metrics tenant:&lt;/p>
&lt;ol>
&lt;li>Navigate to &lt;strong>Grafana Enterprise Metrics&lt;/strong> &amp;gt; &lt;strong>Tenants&lt;/strong>.&lt;/li>
&lt;li>Click on &lt;strong>Create new tenant&lt;/strong>.&lt;/li>
&lt;li>Choose a name for this very tenant.
For demonstration purposes, use the name &lt;code>dev-tenant&lt;/code>.&lt;/li>
&lt;li>Select the cluster.&lt;/li>
&lt;li>Click &lt;strong>Create tenant&lt;/strong>.&lt;/li>
&lt;/ol>
&lt;figure
class="figure-wrapper figure-wrapper__lightbox w-100p "
style="max-width: 900px;"
itemprop="associatedMedia"
itemscope=""
itemtype="http://schema.org/ImageObject"
>&lt;a
class="lightbox-link captioned"
href="../create-tenant.png"
itemprop="contentUrl"
>&lt;div class="img-wrapper w-100p h-auto">&lt;img
class="lazyload mb-0"
data-src="../create-tenant.png"alt="Create tenant"title="Create tenant"/>
&lt;noscript>
&lt;img
src="../create-tenant.png"
alt="Create tenant"title="Create tenant"/>
&lt;/noscript>&lt;/div>&lt;figcaption class="w-100p caption text-gray-13 ">Create tenant&lt;/figcaption>&lt;/a>&lt;/figure>
&lt;h2 id="create-an-access-policy">Create an access policy&lt;/h2>
&lt;p>Create a data source access policy and token, which are used by Grafana Enterprise itself to access the metrics in the tenant named &lt;code>dev-tenant&lt;/code>:&lt;/p></description></item><item><title>Upgrade from Grafana Enterprise Metrics 1.7</title><link>https://grafana.com/docs/enterprise-metrics/v2.17.x/set-up/migrate-from-gem-1.7/</link><pubDate>Mon, 18 Aug 2025 18:19:44 +0000</pubDate><guid>https://grafana.com/docs/enterprise-metrics/v2.17.x/set-up/migrate-from-gem-1.7/</guid><content><![CDATA[&lt;h1 id=&#34;upgrade-from-grafana-enterprise-metrics-17&#34;&gt;Upgrade from Grafana Enterprise Metrics 1.7&lt;/h1&gt;
&lt;p&gt;As an operator, you can migrate a deployment of Grafana Enterprise Metrics 1.7 to Grafana Enterprise Metrics 2.3.
The steps to do so apply to any deployment environment, and there are specific instructions for &lt;a href=&#34;#migrating-to-grafana-enterprise-metrics-23-with-helm&#34;&gt;environments deployed with Helm&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Grafana Enterprise Metrics 2.0 extends Grafana Mimir.
Grafana Enterprise Metrics 1.7 extends Cortex.
Grafana Mimir includes significant changes that simplify the deployment and continuous operation of a horizontally scalable, multi-tenant time series database with long-term storage.&lt;/p&gt;
&lt;p&gt;The following changes make Grafana Mimir easy to run:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Removed configuration parameters that don&amp;rsquo;t require tuning&lt;/li&gt;
&lt;li&gt;Renamed some parameters so that they&amp;rsquo;re more easy to understand&lt;/li&gt;
&lt;li&gt;Updated the default values of some existing parameters to work out of the box&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The 
    &lt;a href=&#34;/docs/enterprise-metrics/v2.17.x/manage/mimir-tools/mimirtool/&#34;&gt;Grafana Mimirtool&lt;/a&gt; (&lt;code&gt;mimirtool&lt;/code&gt;) automates configuration conversion for you.
It provides a simple migration by generating a Grafana Mimir configuration from a Cortex configuration.
It can also generate a Grafana Enterprise Metrics 2.3 configuration from a Grafana Enterprise Metrics 1.7 configuration.&lt;/p&gt;
&lt;h2 id=&#34;before-you-begin&#34;&gt;Before you begin&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Ensure that you are running Grafana Enterprise Metrics 1.7.X.&lt;/p&gt;
&lt;p&gt;If you are running an older version of Grafana Enterprise Metrics, upgrade to 
    &lt;a href=&#34;/docs/enterprise-metrics/v2.17.x/get-started/download-gem/#v231----november-14th-2022&#34;&gt;1.7.0&lt;/a&gt; before proceeding with the migration.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Ensure that you have installed the 
    &lt;a href=&#34;/docs/enterprise-metrics/v2.17.x/manage/monitor/monitor-mimir/installing-dashboards-and-alerts/&#34;&gt;Grafana Mimir monitoring mixin&lt;/a&gt; rules.&lt;/p&gt;
&lt;p&gt;The monitoring mixin has both alerting and recording rules to install in either Prometheus or Grafana Enterprise Metrics.
The rules replace the Cortex monitoring mixin rules and work for monitoring both Grafana Enterprise Metrics 1.7 and Grafana Enterprise Metrics 2.0.
To upload rules to the ruler using Grafana Mimirtool, refer to 
    &lt;a href=&#34;/docs/enterprise-metrics/v2.17.x/manage/mimir-tools/mimirtool/&#34;&gt;Grafana Mimirtool&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Ensure that you have installed the 
    &lt;a href=&#34;/docs/enterprise-metrics/v2.17.x/manage/monitor/monitor-mimir/installing-dashboards-and-alerts/&#34;&gt;Grafana Mimir monitoring mixin&lt;/a&gt; dashboards.&lt;/p&gt;
&lt;p&gt;The dashboards replace the Cortex monitoring mixin dashboards and work for monitoring both Grafana Enterprise Metrics 1.7 and Grafana Enterprise Metrics 2.0.
Alternatively, update the Grafana Enterprise Metrics plugin to automatically install the latest self monitoring dashboards.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;notable-changes&#34;&gt;Notable changes&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;For a full list of changes, refer to the Grafana Mimir &lt;a href=&#34;https://github.com/grafana/mimir/blob/main/CHANGELOG.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;CHANGELOG&lt;/a&gt;.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;By default, Grafana Enterprise Metrics 2.0 enables &lt;code&gt;enterprise&lt;/code&gt; authentication.
To continue using the Grafana Enterprise Metrics 1.7 default named &lt;code&gt;trust&lt;/code&gt;, use &lt;code&gt;-auth.type=trust&lt;/code&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;The Grafana Enterprise Metrics 2.0 HTTP server defaults to listening on port 8080; previous versions defaulted to listening on port 80.
The &lt;code&gt;enterprise-metrics&lt;/code&gt; Helm chart already used port 8080 and is unaffected by this change.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Grafana Enterprise Metrics 2.0 uses &lt;code&gt;anonymous&lt;/code&gt; as the default tenant ID where &lt;code&gt;-auth.multitenancy=false&lt;/code&gt;.
Previous versions used &lt;code&gt;fake&lt;/code&gt; as the default tenant ID where &lt;code&gt;-auth.enabled=false&lt;/code&gt;.
Use &lt;code&gt;-auth.no-auth-tenant=fake&lt;/code&gt; where &lt;code&gt;-auth.multitenancy=false&lt;/code&gt;, to match the default tenant ID of previous versions.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Grafana Enterprise Metrics 2.0 removes the legacy HTTP prefixes.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Query endpoints&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;Legacy&lt;/th&gt;
              &lt;th&gt;Current&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;/&amp;lt;legacy-http-prefix&amp;gt;/api/v1/query&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;lt;prometheus-http-prefix&amp;gt;/api/v1/query&lt;/code&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;/&amp;lt;legacy-http-prefix&amp;gt;/api/v1/query_range&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;lt;prometheus-http-prefix&amp;gt;/api/v1/query_range&lt;/code&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;/&amp;lt;legacy-http-prefix&amp;gt;/api/v1/query_exemplars&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;lt;prometheus-http-prefix&amp;gt;/api/v1/query_exemplars&lt;/code&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;/&amp;lt;legacy-http-prefix&amp;gt;/api/v1/series&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;lt;prometheus-http-prefix&amp;gt;/api/v1/series&lt;/code&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;/&amp;lt;legacy-http-prefix&amp;gt;/api/v1/labels&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;lt;prometheus-http-prefix&amp;gt;/api/v1/labels&lt;/code&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;/&amp;lt;legacy-http-prefix&amp;gt;/api/v1/label/{name}/values&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;lt;prometheus-http-prefix&amp;gt;/api/v1/label/{name}/values&lt;/code&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;/&amp;lt;legacy-http-prefix&amp;gt;/api/v1/metadata&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;lt;prometheus-http-prefix&amp;gt;/api/v1/metadata&lt;/code&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;/&amp;lt;legacy-http-prefix&amp;gt;/api/v1/read&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;lt;prometheus-http-prefix&amp;gt;/api/v1/read&lt;/code&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;/&amp;lt;legacy-http-prefix&amp;gt;/api/v1/cardinality/label_names&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;lt;prometheus-http-prefix&amp;gt;/api/v1/cardinality/label_names&lt;/code&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;/&amp;lt;legacy-http-prefix&amp;gt;/api/v1/cardinality/label_values&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;lt;prometheus-http-prefix&amp;gt;/api/v1/cardinality/label_values&lt;/code&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;/api/prom/user_stats&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;/api/v1/user_stats&lt;/code&gt;&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Distributor endpoints&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;Legacy endpoint&lt;/th&gt;
              &lt;th&gt;Current&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;/&amp;lt;legacy-http-prefix&amp;gt;/push&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;/api/v1/push&lt;/code&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;/all_user_stats&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;/distributor/all_user_stats&lt;/code&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;/ha-tracker&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;/distributor/ha_tracker&lt;/code&gt;&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Ingester endpoints&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;Legacy&lt;/th&gt;
              &lt;th&gt;Current&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;/ring&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;/ingester/ring&lt;/code&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;/shutdown&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;/ingester/shutdown&lt;/code&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;/flush&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;/ingester/flush&lt;/code&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;/push&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;/ingester/push&lt;/code&gt;&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Ruler endpoints&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;Legacy&lt;/th&gt;
              &lt;th&gt;Current&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;/&amp;lt;legacy-http-prefix&amp;gt;/api/v1/rules&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;lt;prometheus-http-prefix&amp;gt;/api/v1/rules&lt;/code&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;/&amp;lt;legacy-http-prefix&amp;gt;/api/v1/alerts&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;lt;prometheus-http-prefix&amp;gt;/api/v1/alerts&lt;/code&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;/&amp;lt;legacy-http-prefix&amp;gt;/rules&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;lt;prometheus-http-prefix&amp;gt;/config/v1/rules&lt;/code&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;/&amp;lt;legacy-http-prefix&amp;gt;/rules/{namespace}&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;lt;prometheus-http-prefix&amp;gt;/config/v1/rules/{namespace}&lt;/code&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;/&amp;lt;legacy-http-prefix&amp;gt;/rules/{namespace}/{groupName}&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;lt;prometheus-http-prefix&amp;gt;/config/v1/rules/{namespace}/{groupName}&lt;/code&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;/&amp;lt;legacy-http-prefix&amp;gt;/rules/{namespace}&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;lt;prometheus-http-prefix&amp;gt;/config/v1/rules/{namespace}&lt;/code&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;/&amp;lt;legacy-http-prefix&amp;gt;/rules/{namespace}/{groupName}&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;lt;prometheus-http-prefix&amp;gt;/config/v1/rules/{namespace}/{groupName}&lt;/code&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;/&amp;lt;legacy-http-prefix&amp;gt;/rules/{namespace}&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;lt;prometheus-http-prefix&amp;gt;/config/v1/rules/{namespace}&lt;/code&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;/ruler_ring&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;/ruler/ring&lt;/code&gt;&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Alertmanager endpoints&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;Legacy&lt;/th&gt;
              &lt;th&gt;Current&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;/&amp;lt;legacy-http-prefix&amp;gt;&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;/alertmanager&lt;/code&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;/status&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;/multitenant_alertmanager/status&lt;/code&gt;&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;generating-configuration-for-grafana-enterprise-metrics-23&#34;&gt;Generating configuration for Grafana Enterprise Metrics 2.3&lt;/h2&gt;
&lt;p&gt;&lt;a href=&#34;https://github.com/grafana/docs/mimir/operators-guide/tools/mimirtool&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Grafana Mimirtool&lt;/a&gt; provides the &lt;code&gt;mimirtool config convert --gem&lt;/code&gt; command for converting a Grafana Enterprise Metrics 1.7 configuration into a Grafana Enterprise Metrics 2.0 configuration.
It can convert both flags and configuration files.&lt;/p&gt;
&lt;h3 id=&#34;downloading-grafana-mimirtool&#34;&gt;Downloading Grafana Mimirtool&lt;/h3&gt;
&lt;p&gt;Download the appropriate &lt;a href=&#34;https://github.com/grafana/mimir/releases/latest&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;release asset&lt;/a&gt; for your operating system and architecture, and make it executable.
For Linux with the AMD64 architecture:&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;curl -fLo mimirtool https://github.com/grafana/mimir/releases/latest/download/mimirtool-linux-amd64
chmod &amp;#43;x mimirtool&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h3 id=&#34;using-grafana-mimirtool&#34;&gt;Using Grafana Mimirtool&lt;/h3&gt;
&lt;p&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;To ensure that the Grafana Enterprise Metrics specific configuration isn’t removed from the output, you must use the &lt;code&gt;--gem&lt;/code&gt; flag.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;
T&lt;/p&gt;
&lt;p&gt;The tool removes any configuration parameters that are no longer available in Grafana Enterprise Metrics 2.3, and it renames any configuration parameter that has a new name.
If you have explicitly set configuration parameters to a value that matches the Grafana Enterprise Metrics 1.7 default, by default, &lt;code&gt;mimirtool config convert&lt;/code&gt; doesn&amp;rsquo;t update the value.
To have &lt;code&gt;mimirtool config convert --gem&lt;/code&gt; update explicitly set values from the Grafana Enterprise Metrics 1.7 defaults to the new Grafana Enterprise Metrics 2.3 defaults, provide the &lt;code&gt;--update-defaults&lt;/code&gt; flag.
For more information about using &lt;code&gt;mimirtool&lt;/code&gt; for configuration conversion, refer to the 
    &lt;a href=&#34;/docs/enterprise-metrics/v2.17.x/manage/mimir-tools/mimirtool/&#34;&gt;Grafana Mimirtool&lt;/a&gt; configuration command named &lt;code&gt;convert&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id=&#34;migrating-to-grafana-enterprise-metrics-23-with-helm&#34;&gt;Migrating to Grafana Enterprise Metrics 2.3 with Helm&lt;/h2&gt;
&lt;p&gt;Grafana Enterprise Metrics 2.3 uses the Grafana Mimir &lt;code&gt;mimir-distributed&lt;/code&gt; Helm chart version 3.1.0.
You can update to the &lt;code&gt;mimir-distributed&lt;/code&gt; Helm chart from the &lt;code&gt;enterprise-metrics&lt;/code&gt; Helm chart.&lt;/p&gt;
&lt;h3 id=&#34;before-you-begin-1&#34;&gt;Before you begin&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Ensure that you are running the v1.9.0 release of the &lt;code&gt;enterprise-metrics&lt;/code&gt; Helm chart.&lt;/li&gt;
&lt;li&gt;Install &lt;code&gt;yq&lt;/code&gt; &lt;a href=&#34;https://github.com/mikefarah/yq&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;v4&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;To migrate to the &lt;code&gt;mimir-distributed&lt;/code&gt; Helm chart:&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Update your Helm repositories.&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;helm repo update&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Convert your existing Grafana Enterprise Metrics configuration in your Helm values file.&lt;/p&gt;
&lt;p&gt;a. Extract the Grafana Enterprise Metrics configuration from the deployed Grafana Enterprise Metrics Secret and write
the output to the &lt;code&gt;enterprise-metrics.yaml&lt;/code&gt; file.&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;kubectl get secret &amp;lt;RELEASE&amp;gt;-enterprise-metrics -n &amp;lt;namespace&amp;gt; -o json | jq -r &amp;#39;.data.&amp;#34;enterprise-metrics.yaml&amp;#34;&amp;#39; | base64 -d &amp;gt; enterprise-metrics-1.7.yaml&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;If you are using an external configuration Secret, replace &lt;code&gt;&amp;lt;RELEASE&amp;gt;-enterprise-metrics&lt;/code&gt; with the name of your Secret.&lt;/p&gt;
&lt;p&gt;b. Use &lt;code&gt;mimirtool&lt;/code&gt; to update the configuration.&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;mimirtool config convert --gem --yaml-file enterprise-metrics-1.7.yaml --yaml-out enterprise-metrics-2.3.yaml&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;c. Clean up the generated YAML configuration.&lt;/p&gt;
&lt;p&gt;You have to remove some fields that either the command &lt;code&gt;mimirtool config convert&lt;/code&gt; generates or that are coming from an old configuration,
because the mimir-distributed Helm chart has already set the default value for them. Use the following script to
clean up those fields:&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;yq -i &amp;#39;del(.activity_tracker.filepath,.alertmanager.data_dir,.compactor.data_dir,.frontend_worker.frontend_address,.ingester.ring.tokens_file_path,.ruler.alertmanager_url,.ruler.rule_path,.runtime_config.file)&amp;#39; mimir.yaml&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;d. Make sure &lt;code&gt;querier.query_ingester_within&lt;/code&gt; is greater than &lt;code&gt;querier.query_store_after&lt;/code&gt; default value in mimir 2.3.0
which is set to 12 hours by default.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&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;The Grafana Enterprise Metrics Helm chart added some configuration validation that prevents the installation to start if the value of a configuration (or combination of configurations) is invalid. Fix the configuration based on the validation errors.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;p&gt;e. At the top level of your Helm values file, put the updated configuration under the &lt;code&gt;mimir.structuredConfig&lt;/code&gt; key.&lt;/p&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;The &lt;code&gt;mimir.structuredConfig&lt;/code&gt; field, which is added in v3.0.0, allows you to override a specific configuration without needing to rewrite the whole block string literal, such as in &lt;code&gt;mimir.config&lt;/code&gt;.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;p&gt;In your Helm values file:&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;mimir:
  structuredConfig: &amp;lt;CONFIGURATION FILE CONTENTS&amp;gt;&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Example:&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;mimir:
  structuredConfig: 
    ingester:
      ring:
        num_tokens: 512&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;f. Enable enterprise configuration by setting &lt;code&gt;enterprise.enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; and &lt;code&gt;enterprise.legacyLabels&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt;.
The value &lt;code&gt;enterprise.legacyLabels&lt;/code&gt; installs resources using the same labels as the &lt;code&gt;enterprise-metrics&lt;/code&gt; Helm chart.&lt;/p&gt;
&lt;p&gt;In your Helm values file:&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;enterprise:
  enabled: true
  legacyLabels: true&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;g. Latest version MinIO changes its credential fields from combination of &lt;code&gt;accessKey&lt;/code&gt; and &lt;code&gt;secretKey&lt;/code&gt; to &lt;code&gt;rootUser&lt;/code&gt;
and &lt;code&gt;rootPassword&lt;/code&gt;. If you&amp;rsquo;re using the &lt;code&gt;enterprise-metrics&lt;/code&gt; chart MinIO for object storage, set the &lt;code&gt;minio.rootUser&lt;/code&gt;
to &lt;code&gt;enterprise-metrics&lt;/code&gt; and set the secret key or password to &lt;code&gt;rootPassword&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;In your Helm values file:&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;minio:
  rootUser: &amp;#34;enterprise-metrics&amp;#34;
  rootPassword: &amp;lt;password&amp;gt;&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Run the Helm upgrade with the &lt;code&gt;mimir-distributed&lt;/code&gt; chart.&lt;/p&gt;
&lt;p&gt;During the upgrade, requests to the gateway fail for a short period of time.
Prometheus and Grafana Agent retry failed write requests to avoid data loss.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&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;The name of the release must match your &lt;code&gt;enterprise-metrics&lt;/code&gt; Helm chart release.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&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;helm upgrade &amp;lt;RELEASE&amp;gt; grafana/mimir-distributed --version 3.1.0 -f &amp;lt;VALUES FILE&amp;gt; --set-file &amp;#39;license.contents=&amp;lt;LICENSE FILE&amp;gt;&amp;#39; [-n &amp;lt;NAMESPACE&amp;gt;] &lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;To verify that the cluster is operating correctly, use the self monitoring or monitoring mixin dashboards installed in Grafana.&lt;/p&gt;
]]></content><description>&lt;h1 id="upgrade-from-grafana-enterprise-metrics-17">Upgrade from Grafana Enterprise Metrics 1.7&lt;/h1>
&lt;p>As an operator, you can migrate a deployment of Grafana Enterprise Metrics 1.7 to Grafana Enterprise Metrics 2.3.
The steps to do so apply to any deployment environment, and there are specific instructions for &lt;a href="#migrating-to-grafana-enterprise-metrics-23-with-helm">environments deployed with Helm&lt;/a>.&lt;/p></description></item></channel></rss>