<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Understand your cardinality on Grafana Labs</title><link>https://grafana.com/docs/learning-hub/labeling-strategy/02-understand-cardinality/</link><description>Recent content in Understand your cardinality on Grafana Labs</description><generator>Hugo -- gohugo.io</generator><language>en</language><atom:link href="/docs/learning-hub/labeling-strategy/02-understand-cardinality/index.xml" rel="self" type="application/rss+xml"/><item><title>What you're billed for</title><link>https://grafana.com/docs/learning-hub/labeling-strategy/02-understand-cardinality/04-what-youre-billed-for/</link><pubDate>Thu, 06 Aug 2026 10:05:27 -0400</pubDate><guid>https://grafana.com/docs/learning-hub/labeling-strategy/02-understand-cardinality/04-what-youre-billed-for/</guid><content><![CDATA[&lt;h2 id=&#34;whats-cardinality&#34;&gt;What&amp;rsquo;s cardinality?&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Cardinality&lt;/strong&gt; is the number of distinct values an attribute can have. In observability, it determines how many unique series and streams your labels create, and that number can significantly impact your cost and performance.&lt;/p&gt;
&lt;h2 id=&#34;what-youre-actually-billed-for&#34;&gt;What you&amp;rsquo;re actually billed for&lt;/h2&gt;
&lt;p&gt;A common misconception is that metrics billing is per metric name. It isn&amp;rsquo;t. A &lt;strong&gt;time series&lt;/strong&gt; is a metric name plus one unique combination of label key-value pairs, and each series that receives data within the last 20 minutes counts as an &lt;strong&gt;active series&lt;/strong&gt;. Grafana Cloud bills metrics on the 95th percentile of your active series count over the billing period, so one metric name with many label combinations can cost far more than dozens of well labeled metrics. The 95th percentile means the top 5% of your usage measurements are excluded before billing, so a brief spike doesn&amp;rsquo;t set your bill, but a level you sustain does. For example, if you normally run 6,000 active series but spike to 30,000 for 24 hours, you&amp;rsquo;re still billed close to the 6,000-series rate, because the 24 hour spike is within the forgiven top 5% of the month.&lt;/p&gt;
&lt;p&gt;Logs work the same way structurally, though cost attribution is different because it&amp;rsquo;s purely based on the volume of data processed and ingested. The logs that share one unique label combination form a &lt;strong&gt;log stream&lt;/strong&gt;.&lt;/p&gt;

&lt;div class=&#34;learning-hub-image&#34;&gt;
  &lt;a href=&#34;series-anatomy.svg&#34; title=&#34;Anatomy of a time series and a log stream, showing that each unique combination of label values creates one series or stream&#34;&gt;
    &lt;img
      class=&#34;lazyload d-inline-block&#34;
      data-src=&#34;series-anatomy.svg&#34;
      alt=&#34;Anatomy of a time series and a log stream, showing that each unique combination of label values creates one series or stream&#34; width=&#34;800&#34; height=&#34;440&#34;/&gt;
    &lt;div class=&#34;learning-hub-image__zoom&#34;&gt;
      &lt;svg width=&#34;24&#34; height=&#34;24&#34; viewBox=&#34;0 0 24 24&#34; fill=&#34;none&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
        &lt;path d=&#34;M21 21L15 15M17 10C17 13.866 13.866 17 10 17C6.13401 17 3 13.866 3 10C3 6.13401 6.13401 3 10 3C13.866 3 17 6.13401 17 10Z&#34; stroke=&#34;currentColor&#34; stroke-width=&#34;2&#34; stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34;/&gt;
        &lt;path d=&#34;M10 7V13M7 10H13&#34; stroke=&#34;currentColor&#34; stroke-width=&#34;2&#34; stroke-linecap=&#34;round&#34;/&gt;
      &lt;/svg&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;

]]></content><description>&lt;h2 id="whats-cardinality">What&amp;rsquo;s cardinality?&lt;/h2>
&lt;p>&lt;strong>Cardinality&lt;/strong> is the number of distinct values an attribute can have. In observability, it determines how many unique series and streams your labels create, and that number can significantly impact your cost and performance.&lt;/p></description></item><item><title>Labels multiply series</title><link>https://grafana.com/docs/learning-hub/labeling-strategy/02-understand-cardinality/05-labels-multiply-series/</link><pubDate>Thu, 06 Aug 2026 10:05:27 -0400</pubDate><guid>https://grafana.com/docs/learning-hub/labeling-strategy/02-understand-cardinality/05-labels-multiply-series/</guid><content><![CDATA[&lt;h2 id=&#34;labels-multiply-series&#34;&gt;Labels multiply series&lt;/h2&gt;
&lt;p&gt;Labels don&amp;rsquo;t add series, they multiply them. A &lt;code&gt;status&lt;/code&gt; label with 3 values combined with an &lt;code&gt;action&lt;/code&gt; label with 5 values produces 15 unique series from what looks like one metric. Add an &lt;code&gt;endpoint&lt;/code&gt; label with 3 values and you&amp;rsquo;re at 45. Every label you add multiplies the count by that label&amp;rsquo;s number of values.&lt;/p&gt;

&lt;div class=&#34;learning-hub-image&#34;&gt;
  &lt;a href=&#34;label-multiplication.svg&#34; title=&#34;Two rows showing label value counts multiplying. 3 status values times 5 action values equals 15 series, and adding a 3-value endpoint label grows the total to 45 series&#34;&gt;
    &lt;img
      class=&#34;lazyload d-inline-block&#34;
      data-src=&#34;label-multiplication.svg&#34;
      alt=&#34;Two rows showing label value counts multiplying. 3 status values times 5 action values equals 15 series, and adding a 3-value endpoint label grows the total to 45 series&#34; width=&#34;800&#34; height=&#34;460&#34;/&gt;
    &lt;div class=&#34;learning-hub-image__zoom&#34;&gt;
      &lt;svg width=&#34;24&#34; height=&#34;24&#34; viewBox=&#34;0 0 24 24&#34; fill=&#34;none&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
        &lt;path d=&#34;M21 21L15 15M17 10C17 13.866 13.866 17 10 17C6.13401 17 3 13.866 3 10C3 6.13401 6.13401 3 10 3C13.866 3 17 6.13401 17 10Z&#34; stroke=&#34;currentColor&#34; stroke-width=&#34;2&#34; stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34;/&gt;
        &lt;path d=&#34;M10 7V13M7 10H13&#34; stroke=&#34;currentColor&#34; stroke-width=&#34;2&#34; stroke-linecap=&#34;round&#34;/&gt;
      &lt;/svg&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;

]]></content><description>&lt;h2 id="labels-multiply-series">Labels multiply series&lt;/h2>
&lt;p>Labels don&amp;rsquo;t add series, they multiply them. A &lt;code>status&lt;/code> label with 3 values combined with an &lt;code>action&lt;/code> label with 5 values produces 15 unique series from what looks like one metric. Add an &lt;code>endpoint&lt;/code> label with 3 values and you&amp;rsquo;re at 45. Every label you add multiplies the count by that label&amp;rsquo;s number of values.&lt;/p></description></item><item><title>Cardinality affects cost and performance</title><link>https://grafana.com/docs/learning-hub/labeling-strategy/02-understand-cardinality/06-cost-and-performance/</link><pubDate>Thu, 06 Aug 2026 10:05:27 -0400</pubDate><guid>https://grafana.com/docs/learning-hub/labeling-strategy/02-understand-cardinality/06-cost-and-performance/</guid><content><![CDATA[&lt;h2 id=&#34;cardinality-affects-cost-and-performance&#34;&gt;Cardinality affects cost and performance&lt;/h2&gt;
&lt;p&gt;High cardinality affects both your bill and query performance, but metrics and logs are billed differently.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Metrics cost:&lt;/strong&gt; Grafana Cloud bills metrics on active series, so every unique label combination is a billing unit, whether or not anyone queries it.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Logs cost:&lt;/strong&gt; Grafana Cloud bills logs on GB processed and ingested, not per stream. High stream cardinality doesn&amp;rsquo;t add a direct per-stream charge, but it can inflate query costs because larger indexes and more chunks mean bigger scans.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Performance:&lt;/strong&gt; For logs, many streams mean a large index and many small chunks, which slows queries down. Loki, the Grafana Cloud Logs backend, is designed for low-cardinality labels and limits index labels to 15 by default.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;High-cardinality attributes to watch for include user IDs, request or trace IDs, IP addresses, Kubernetes pod names, and timestamps. Any of these used as a label value creates a new series or stream for every unique value.&lt;/p&gt;
]]></content><description>&lt;h2 id="cardinality-affects-cost-and-performance">Cardinality affects cost and performance&lt;/h2>
&lt;p>High cardinality affects both your bill and query performance, but metrics and logs are billed differently.&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Metrics cost:&lt;/strong> Grafana Cloud bills metrics on active series, so every unique label combination is a billing unit, whether or not anyone queries it.&lt;/li>
&lt;li>&lt;strong>Logs cost:&lt;/strong> Grafana Cloud bills logs on GB processed and ingested, not per stream. High stream cardinality doesn&amp;rsquo;t add a direct per-stream charge, but it can inflate query costs because larger indexes and more chunks mean bigger scans.&lt;/li>
&lt;li>&lt;strong>Performance:&lt;/strong> For logs, many streams mean a large index and many small chunks, which slows queries down. Loki, the Grafana Cloud Logs backend, is designed for low-cardinality labels and limits index labels to 15 by default.&lt;/li>
&lt;/ul>
&lt;p>High-cardinality attributes to watch for include user IDs, request or trace IDs, IP addresses, Kubernetes pod names, and timestamps. Any of these used as a label value creates a new series or stream for every unique value.&lt;/p></description></item><item><title>Explore your cardinality</title><link>https://grafana.com/docs/learning-hub/labeling-strategy/02-understand-cardinality/07-explore-your-cardinality/</link><pubDate>Thu, 06 Aug 2026 10:05:27 -0400</pubDate><guid>https://grafana.com/docs/learning-hub/labeling-strategy/02-understand-cardinality/07-explore-your-cardinality/</guid><content><![CDATA[&lt;h2 id=&#34;interactive-guide-explore-your-cardinality&#34;&gt;Interactive guide: Explore your cardinality&lt;/h2&gt;
&lt;p&gt;The &lt;strong&gt;Cardinality&lt;/strong&gt; tab in the Cost Management and Billing app shows up to 30 days of historical cardinality for your stack, highlights metrics that are new or unused, and links to remediation actions.&lt;/p&gt;
&lt;p&gt;Access to the Cardinality tab requires the &lt;code&gt;grafana-cmab-app.cardinality:read&lt;/code&gt; permission. Refer to &lt;a href=&#34;/docs/grafana-cloud/cost-management-and-billing/set-up/cost-management-billing-rbac/&#34;&gt;Manage access to the Cost Management and Billing app&lt;/a&gt;. If your stack is new or isn&amp;rsquo;t receiving metrics yet, the tables will be empty or sparse.&lt;/p&gt;











  
  







  




&lt;div class=&#34;pathfinder-cta orange-outline-list br-12 border-color-orange-flat border-width-2 p-1-5 pb-1&#34; x3-data=&#34;selectStack(&#39;https://interactive-learning.grafana.net/guides/explore-cardinality/content.json&#39;)&#34;&gt;
  &lt;div class=&#34;icon-heading d-flex&#34;&gt;
    &lt;div class=&#34;icon-heading__container&#34;&gt;
  &lt;svg width=&#34;30&#34; height=&#34;30&#34; viewBox=&#34;0 0 25 26&#34; fill=&#34;none&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
  &lt;path d=&#34;M16.1401 14.4402C16.2141 14.4402 16.2852 14.4101 16.3373 14.3581C16.5355 14.1569 21.1904 9.39886 21.1904 5.0513C21.1904 2.26537 18.924 0 16.1391 0C13.3541 0 11.0878 2.26537 11.0878 5.0513C11.0878 9.39886 15.7427 14.1569 15.9419 14.3581C15.9939 14.4111 16.065 14.4402 16.1401 14.4402ZM13.5814 5.0513C13.5814 3.63882 14.7266 2.49262 16.1401 2.49262C17.5536 2.49262 18.6978 3.63781 18.6978 5.0513C18.6978 6.46478 17.5526 7.60999 16.1401 7.60999C14.7276 7.60999 13.5814 6.46478 13.5814 5.0513Z&#34; fill=&#34;#FF671D&#34;/&gt;
  &lt;path d=&#34;M24.9034 21.9305C24.0595 18.9113 17.9561 17.4147 12.5704 16.0933C9.54023 15.3496 5.76827 14.4246 5.73524 13.6037C5.72823 13.4225 5.97949 12.7398 9.52922 11.5516C9.80551 11.4585 9.96668 11.1842 9.91262 10.8989C9.85856 10.6136 9.60229 10.4164 9.318 10.4304C4.13956 10.6807 0.501743 12.1602 0.0482666 14.1993C-0.172966 15.1944 0.26149 16.749 3.58398 18.5009L4.29773 18.8763C6.54509 20.0545 8.16879 20.9064 8.1808 21.6992C8.19482 22.6502 5.93745 24.0507 3.72713 25.296C3.58398 25.3761 3.5139 25.5433 3.55495 25.7024C3.59699 25.8616 3.74014 25.9717 3.90431 25.9717H23.0354C23.1315 25.9717 23.2226 25.9337 23.2907 25.8656C24.6971 24.4581 25.2397 23.1347 24.9034 21.9305Z&#34; fill=&#34;#FBC55A&#34;/&gt;
&lt;/svg&gt;
&lt;/div&gt;
    &lt;div class=&#34;no-anchor-heading&#34;&gt;
      &lt;h4&gt;Explore your cardinality&lt;/h4&gt;
    &lt;/div&gt;
  &lt;/div&gt;
  &lt;div class=&#34;mt-1&#34;&gt;
    &lt;p class=&#34;mb-1 maxw-650&#34;&gt;
      Complete this interactive guide directly in your Grafana Cloud stack with an interactive learning experience.
    &lt;/p&gt;
    &lt;div class=&#34;d-flex column-gap-1 justify-content-end&#34;&gt;
      &lt;a
        x3-bind:href=&#34;launchUrl&#34;
        class=&#34;btn btn--primary br-8&#34;
        target=&#34;_blank&#34;
        rel=&#34;noopener noreferrer&#34;
        x3-on:click=&#34;trackPathfinderClick(&#39;explore-cardinality&#39;, &#39;Explore your cardinality&#39;)&#34;&gt;
        Open in Grafana Cloud
      &lt;/a&gt;
      
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;


&lt;h2 id=&#34;three-questions-to-ask&#34;&gt;Three questions to ask&lt;/h2&gt;
&lt;p&gt;Now that you&amp;rsquo;ve used the Cardinality tab to identify which metrics and labels are contributing to your active series count, ask three questions:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Which metrics produce the most series?&lt;/strong&gt; They&amp;rsquo;re your biggest cost levers.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Which labels have the most unique values?&lt;/strong&gt; They&amp;rsquo;re the multiplication factors to challenge.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Is anything both high-cardinality and unused?&lt;/strong&gt; That&amp;rsquo;s cost with no value, and the easiest win.&lt;/li&gt;
&lt;/ul&gt;
]]></content><description>&lt;h2 id="interactive-guide-explore-your-cardinality">Interactive guide: Explore your cardinality&lt;/h2>
&lt;p>The &lt;strong>Cardinality&lt;/strong> tab in the Cost Management and Billing app shows up to 30 days of historical cardinality for your stack, highlights metrics that are new or unused, and links to remediation actions.&lt;/p></description></item><item><title>Resources</title><link>https://grafana.com/docs/learning-hub/labeling-strategy/02-understand-cardinality/08-resources/</link><pubDate>Thu, 06 Aug 2026 10:05:27 -0400</pubDate><guid>https://grafana.com/docs/learning-hub/labeling-strategy/02-understand-cardinality/08-resources/</guid><content><![CDATA[&lt;h2 id=&#34;documentation&#34;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;/docs/grafana-cloud/cost-management-and-billing/understand-usage-cost/metrics/&#34;&gt;Understand metrics usage and cost&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/docs/loki/latest/get-started/labels/cardinality/&#34;&gt;Cardinality in Loki&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/docs/grafana-cloud/cost-management-and-billing/analyze-costs/metrics-costs/prometheus-metrics-costs/historical-cardinality/&#34;&gt;Analyze historical metrics cardinality&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/docs/grafana-cloud/cost-management-and-billing/analyze-costs/metrics-costs/prometheus-metrics-costs/cardinality-management/&#34;&gt;Live cardinality management dashboards&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/docs/learning-paths/billing-usage/&#34;&gt;Understand billing and usage learning path&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;community&#34;&gt;Community&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://community.grafana.com/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Grafana Community Forums&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://slack.grafana.com/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Grafana Slack&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
]]></content><description>&lt;h2 id="documentation">Documentation&lt;/h2>
&lt;ul>
&lt;li>&lt;a href="/docs/grafana-cloud/cost-management-and-billing/understand-usage-cost/metrics/">Understand metrics usage and cost&lt;/a>&lt;/li>
&lt;li>&lt;a href="/docs/loki/latest/get-started/labels/cardinality/">Cardinality in Loki&lt;/a>&lt;/li>
&lt;li>&lt;a href="/docs/grafana-cloud/cost-management-and-billing/analyze-costs/metrics-costs/prometheus-metrics-costs/historical-cardinality/">Analyze historical metrics cardinality&lt;/a>&lt;/li>
&lt;li>&lt;a href="/docs/grafana-cloud/cost-management-and-billing/analyze-costs/metrics-costs/prometheus-metrics-costs/cardinality-management/">Live cardinality management dashboards&lt;/a>&lt;/li>
&lt;li>&lt;a href="/docs/learning-paths/billing-usage/">Understand billing and usage learning path&lt;/a>&lt;/li>
&lt;/ul>
&lt;h2 id="community">Community&lt;/h2>
&lt;ul>
&lt;li>&lt;a href="https://community.grafana.com/" target="_blank" rel="noopener noreferrer">Grafana Community Forums&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://slack.grafana.com/" target="_blank" rel="noopener noreferrer">Grafana Slack&lt;/a>&lt;/li>
&lt;/ul></description></item></channel></rss>