<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>article Metric differences between Dynatrace classic and platform in Troubleshooting</title>
    <link>https://community.dynatrace.com/t5/Troubleshooting/Metric-differences-between-Dynatrace-classic-and-platform/ta-p/271311</link>
    <description>&lt;DIV class="lia-message-template-content-zone"&gt;
&lt;P&gt;There are differences to be considered when querying metrics in Dynatrace classic, i.e. when using the &lt;A class="" title="https://docs.dynatrace.com/docs/discover-dynatrace/references/dynatrace-api/environment-api/metric-v2" href="https://docs.dynatrace.com/docs/discover-dynatrace/references/dynatrace-api/environment-api/metric-v2" target="_blank" rel="noopener"&gt;Metric API &lt;/A&gt;or the &lt;A class="" title="https://docs.dynatrace.com/docs/analyze-explore-automate/explorer" href="https://docs.dynatrace.com/docs/analyze-explore-automate/explorer" target="_blank" rel="noopener"&gt;Data Explorer&lt;/A&gt;, and in the Dynatrace platform, querying Grail with &lt;A class="" title="https://docs.dynatrace.com/docs/discover-dynatrace/references/dynatrace-query-language/commands/metric-commands" href="https://docs.dynatrace.com/docs/discover-dynatrace/references/dynatrace-query-language/commands/metric-commands" target="_blank" rel="noopener"&gt;DQL&lt;/A&gt;. This article goes through the main differences and things to keep in mind when querying both sides.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H1 id="Metric-availability"&gt;Metric availability&lt;/H1&gt;
&lt;P&gt;Not all of the classic metrics are available on the Dynatrace platform. For an overview of the exported metrics, see the documentation page &lt;A class="" title="https://docs.dynatrace.com/docs/analyze-explore-automate/metrics/built-in-metrics-on-grail" href="https://docs.dynatrace.com/docs/analyze-explore-automate/metrics/built-in-metrics-on-grail" target="_blank" rel="noopener"&gt;Built-in Metrics on Grail&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H1 id="Metric-key-mapping"&gt;Metric key mapping&lt;/H1&gt;
&lt;P&gt;Depending on the metric type, the metric key in the platform might be different than its correspondent classic metric. All mapping rules, including examples, can be found at the top section of &lt;A class="" title="https://docs.dynatrace.com/docs/analyze-explore-automate/metrics/built-in-metrics-on-grail" href="https://docs.dynatrace.com/docs/analyze-explore-automate/metrics/built-in-metrics-on-grail" target="_blank" rel="noopener"&gt;Built-in Metrics on Grail&lt;/A&gt;. In a nutshell, the main points are:&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Built-in metrics&lt;/STRONG&gt;&lt;A class="" title="https://dynatrace.stackenterprise.co/articles/10086#heading-built-in-metrics" href="https://dynatrace.stackenterprise.co/articles/10086#heading-built-in-metrics" target="_blank" rel="noopener"&gt;&lt;STRONG&gt;​&lt;/STRONG&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;In the platform, built-in metric keys were renamed to start with &lt;CODE class="code cc-1tbex3z" data-renderer-mark="true"&gt;dt.&lt;/CODE&gt; instead of &lt;CODE class="code cc-1tbex3z" data-renderer-mark="true"&gt;builtin:&lt;/CODE&gt;. Moreover, the keys in the platform use snake casing. &lt;A title="https://docs.dynatrace.com/docs/analyze-explore-automate/metrics/built-in-metrics-on-grail" href="https://docs.dynatrace.com/docs/analyze-explore-automate/metrics/built-in-metrics-on-grail" target="_blank" rel="noopener"&gt;Built-in Metrics on Grail&lt;/A&gt; also contains one-to-one mappings for the built-in metrics which can be just replaced by the new name or migration guides for the ones which don’t have a one-to-one replacement.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Extension metrics&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Classic extension metrics with a &lt;CODE class="code cc-1tbex3z" data-renderer-mark="true"&gt;builtin:tech&lt;/CODE&gt; prefix appear in the platform with a &lt;CODE class="code cc-1tbex3z" data-renderer-mark="true"&gt;legacy.&lt;/CODE&gt; prefix instead. Classic extension metrics with an &lt;CODE class="code cc-1tbex3z" data-renderer-mark="true"&gt;ext:&lt;/CODE&gt; prefix will get the prefix removed in the platform.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Custom metrics&lt;/STRONG&gt;&lt;A class="" title="https://dynatrace.stackenterprise.co/articles/10086#heading-custom-metrics" href="https://dynatrace.stackenterprise.co/articles/10086#heading-custom-metrics" target="_blank" rel="noopener"&gt;&lt;STRONG&gt;​&lt;/STRONG&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;The keys of the metrics ingested via the Metrics v2 API, the OLTP endpoint and the EEC aren't changed. However, if their metric key is automatically suffixed with &lt;CODE class="code cc-1tbex3z" data-renderer-mark="true"&gt;.count&lt;/CODE&gt; or &lt;CODE class="code cc-1tbex3z" data-renderer-mark="true"&gt;.gauge&lt;/CODE&gt; in 2nd gen (see &lt;A class="" title="https://www.dynatrace.com/support/help/shortlink/metric-ingestion-protocol#payload" href="https://www.dynatrace.com/support/help/shortlink/metric-ingestion-protocol#payload" target="_blank" rel="noopener"&gt;here for details&lt;/A&gt;), this suffix isn't added in the platform.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Calculated service metrics&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Once classic calculated service metrics are available in the platform, (as of version 1.310), the metrics with a &lt;CODE class="code cc-1tbex3z" data-renderer-mark="true"&gt;calc:service&lt;/CODE&gt; prefix appear in the platform with a &lt;CODE class="code cc-1tbex3z" data-renderer-mark="true"&gt;service.&lt;/CODE&gt; prefix instead.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;Tip:&lt;/EM&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;
&lt;P&gt;We strongly recommend to use the &lt;A title="https://docs.dynatrace.com/docs/analyze-explore-automate/metrics/upgrade/metric-selector-conversion#automatic-converter" href="https://docs.dynatrace.com/docs/analyze-explore-automate/metrics/upgrade/metric-selector-conversion#automatic-converter" target="_blank" rel="noopener"&gt;automatic converter&lt;/A&gt; to find the correspondent platform metric key for a classic metric.&lt;/P&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H1 id="Different/missing-values"&gt;Different/missing values&lt;/H1&gt;
&lt;P&gt;There might be differences in the values returned by metric queries in Dynatrace classic in comparison to the results from equivalent queries in the platform. Possible reasons include:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2 id="Recent-time-frames"&gt;Recent time frames&lt;/H2&gt;
&lt;P&gt;For recent time frames (approximately the last 3 minutes), the metric data might be available in classic, but not in the platform, and vice versa.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2 id="Ingest-limits"&gt;Ingest limits&lt;/H2&gt;
&lt;P&gt;If the classic metrics ingestion limit is reached, data points will no longer be forwarded to Grail unless the tenant has the &lt;CODE class="code cc-1tbex3z" data-renderer-mark="true"&gt;Metrics powered by Grail&lt;/CODE&gt; &lt;A class="cc-1rn59kg" title="https://docs.dynatrace.com/docs/shortlink/dps-metrics" href="https://docs.dynatrace.com/docs/shortlink/dps-metrics" target="_blank" rel="noopener" data-testid="link-with-safety" data-renderer-mark="true"&gt;DPS capability&lt;/A&gt;. In case of rejections, more data points might be missing on the platform compared to Dynatrace classic due to internal constraints like caching. Migrating to the &lt;CODE class="code cc-1tbex3z" data-renderer-mark="true"&gt;Metrics powered by Grail&lt;/CODE&gt; DPS capability resolves this issue. Once the &lt;CODE class="code cc-1tbex3z" data-renderer-mark="true"&gt;Metrics powered by Grail&lt;/CODE&gt; capability is used, rejections will only affect the Dynatrace classic.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2 id="Query-limits"&gt;Query limits&lt;/H2&gt;
&lt;P&gt;In Dyntrace classic, you might see not all/no results if you face a metric query limit. In the example below there is no data shown because the metric query limit of 20 million datapoints is reached. On the platform, this limit is increased to 500 million datapoints.&lt;/P&gt;
&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="msaueressig_0-1742563353316.png" style="width: 999px;"&gt;&lt;img src="https://community.dynatrace.com/t5/image/serverpage/image-id/27104i57A5510C37FF6E6A/image-size/large?v=v2&amp;amp;px=999" role="button" title="msaueressig_0-1742563353316.png" alt="msaueressig_0-1742563353316.png" /&gt;&lt;/span&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2 id="Metric-semantics​"&gt;Metric semantics&lt;A class="" title="https://dynatrace.stackenterprise.co/articles/10086#heading-metric-semantics" href="https://dynatrace.stackenterprise.co/articles/10086#heading-metric-semantics" target="_blank" rel="noopener"&gt;​&lt;/A&gt;&lt;/H2&gt;
&lt;P&gt;For each classic metric there isn’t always a one-to-one corresponding metric in the platform containing exactly the same timeseries data. Metric families like service metrics and runtime metrics have metrics which are mapped to a Grail metric that has slightly different semantics.&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;Tip&lt;/EM&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;
&lt;P&gt;The &lt;A title="https://docs.dynatrace.com/docs/analyze-explore-automate/metrics/upgrade/service-metric-migration" href="https://docs.dynatrace.com/docs/analyze-explore-automate/metrics/upgrade/service-metric-migration" target="_blank" rel="noopener"&gt;Service metrics migration guide&lt;/A&gt;, the &lt;A title="https://docs.dynatrace.com/docs/analyze-explore-automate/metrics/upgrade/runtime-metric-migration" href="https://docs.dynatrace.com/docs/analyze-explore-automate/metrics/upgrade/runtime-metric-migration" target="_blank" rel="noopener"&gt;Runtime metrics migration guide&lt;/A&gt; (requires OneAgent 1.283+) and &lt;A title="https://docs.dynatrace.com/docs/analyze-explore-automate/metrics/upgrade/calculated-service-metrics-upgrade" href="https://docs.dynatrace.com/docs/analyze-explore-automate/metrics/upgrade/calculated-service-metrics-upgrade" target="_blank" rel="noopener"&gt;Calculated service metrics&lt;/A&gt; guide provide detailed information about such cases.&lt;/P&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2 id="Different-collect/report-mechanism-at-the-agent-side"&gt;Different collect/report mechanism in OneAgent&amp;nbsp;&lt;/H2&gt;
&lt;P&gt;For some metric families, the classic metrics and the platform metrics are collected and reported by a different mechanism at the OneAgent side. This could lead to slightly different values for correspondent metrics in classic/platform. Such metric families are:&lt;/P&gt;
&lt;UL class=""&gt;
&lt;LI&gt;
&lt;P data-renderer-start-pos="4232"&gt;&lt;A class="cc-1rn59kg" title="https://docs.dynatrace.com/docs/shortlink/built-in-metrics-on-grail#processes" href="https://docs.dynatrace.com/docs/shortlink/built-in-metrics-on-grail#processes" target="_blank" rel="noopener" data-testid="link-with-safety" data-renderer-mark="true"&gt;Process metrics &lt;/A&gt;(aka “Generic technology metrics” in classic) (starting with the &lt;CODE class="code cc-1tbex3z" data-renderer-mark="true"&gt;builtin:tech.generic&lt;/CODE&gt; prefix)&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P data-renderer-start-pos="4345"&gt;&lt;A class="cc-1rn59kg" title="https://docs.dynatrace.com/docs/shortlink/built-in-metrics-on-grail#java" href="https://docs.dynatrace.com/docs/shortlink/built-in-metrics-on-grail#java" target="_blank" rel="noopener" data-testid="link-with-safety" data-renderer-mark="true"&gt;Java metrics &lt;/A&gt;(starting with the &lt;CODE class="code cc-1tbex3z" data-renderer-mark="true"&gt;builtin:tech.jvm&lt;/CODE&gt; prefix)&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P data-renderer-start-pos="4405"&gt;&lt;A class="cc-1rn59kg" title="https://docs.dynatrace.com/docs/shortlink/built-in-metrics-on-grail#infrastructure" href="https://docs.dynatrace.com/docs/shortlink/built-in-metrics-on-grail#infrastructure" target="_blank" rel="noopener" data-testid="link-with-safety" data-renderer-mark="true"&gt;Infrastructure metrics&lt;/A&gt; (starting with the &lt;CODE class="code cc-1tbex3z" data-renderer-mark="true"&gt;builtin:host&lt;/CODE&gt; prefix)&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P data-renderer-start-pos="4471"&gt;&lt;A class="cc-1rn59kg" title="https://docs.dynatrace.com/docs/shortlink/built-in-metrics-on-grail#nginx" href="https://docs.dynatrace.com/docs/shortlink/built-in-metrics-on-grail#nginx" target="_blank" rel="noopener" data-testid="link-with-safety" data-renderer-mark="true"&gt;Webserver metrics&lt;/A&gt; (starting with the &lt;CODE class="code cc-1tbex3z" data-renderer-mark="true"&gt;builtin:tech.webserver&lt;/CODE&gt; prefix)&lt;/P&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2 id="Metric-selector-operators"&gt;Metric selector operators&lt;/H2&gt;
&lt;P&gt;Not all metric selector operators available in Dynatrace classic have a correspondent function in DQL. The &lt;A class="" title="https://docs.dynatrace.com/docs/analyze-explore-automate/metrics/upgrade/metric-selector-conversion#metric-selector-conversion-guide" href="https://docs.dynatrace.com/docs/analyze-explore-automate/metrics/upgrade/metric-selector-conversion#metric-selector-conversion-guide" target="_blank" rel="noopener"&gt;Metric selector conversion guide&lt;/A&gt; documents what is available. As a best practice, the &lt;A title="https://docs.dynatrace.com/docs/analyze-explore-automate/metrics/upgrade/metric-selector-conversion#automatic-converter" href="https://docs.dynatrace.com/docs/analyze-explore-automate/metrics/upgrade/metric-selector-conversion#automatic-converter" target="_blank" rel="noopener"&gt;automatic converter&lt;/A&gt; should be used to find the most appropriate replacement function(s) in DQL for a classic metric selector.&lt;/P&gt;
&lt;P&gt;It’s worth mentioning that some operations have a slightly different behavior in the platform. Here are some differences to be considered.&lt;/P&gt;
&lt;H3 id="splitBy"&gt;splitBy&lt;/H3&gt;
&lt;P data-renderer-start-pos="5039"&gt;The classic &lt;CODE class="code cc-1tbex3z" data-renderer-mark="true"&gt;:splitBy&lt;/CODE&gt; operator is covered by the &lt;A class="cc-1rn59kg" title="https://docs.dynatrace.com/docs/shortlink/metrics-selector-conversion#group-by" href="https://docs.dynatrace.com/docs/shortlink/metrics-selector-conversion#group-by" target="_blank" rel="noopener" data-testid="link-with-safety" data-renderer-mark="true"&gt;by:&lt;/A&gt; parameter in DQL.&lt;/P&gt;
&lt;P data-renderer-start-pos="5110"&gt;One basic difference is that in classic, the &lt;CODE class="code cc-1tbex3z" data-renderer-mark="true"&gt;splitBy&lt;/CODE&gt; is also a filter, meaning it will filter out dimension tuples where the splitted dimension is &lt;CODE class="code cc-1tbex3z" data-renderer-mark="true"&gt;null&lt;/CODE&gt;. That is not the case for &lt;CODE class="code cc-1tbex3z" data-renderer-mark="true"&gt;by:&lt;/CODE&gt; in in DQL.&lt;/P&gt;
&lt;H3 id="percentile"&gt;percentile&lt;/H3&gt;
&lt;P&gt;As documented in the &lt;A class="cc-1rn59kg" title="https://docs.dynatrace.com/docs/shortlink/metrics-selector-conversion#troubleshooting-converted-dql" href="https://docs.dynatrace.com/docs/shortlink/metrics-selector-conversion#troubleshooting-converted-dql" target="_blank" rel="noopener" data-testid="link-with-safety" data-renderer-mark="true"&gt;convertion troubleshooting section&lt;/A&gt;, the classic &lt;CODE class="code cc-1tbex3z" data-renderer-mark="true"&gt;:percentile&lt;/CODE&gt; operator will return different values as Grail’s &lt;A class="cc-1rn59kg" title="https://docs.dynatrace.com/docs/discover-dynatrace/references/dynatrace-query-language/commands/metric-commands" href="https://docs.dynatrace.com/docs/discover-dynatrace/references/dynatrace-query-language/commands/metric-commands" target="_blank" rel="noopener" data-testid="link-with-safety" data-renderer-mark="true"&gt;percentile aggregation function&lt;/A&gt;, because DQL uses a more efficient algorithm.&lt;/P&gt;
&lt;H3 id="rollup"&gt;rollup&lt;/H3&gt;
&lt;P&gt;The classic &lt;CODE class="code cc-1tbex3z" data-renderer-mark="true"&gt;:rollup&lt;/CODE&gt; operator is covered by &lt;A class="cc-1rn59kg" title="https://docs.dynatrace.com/docs/shortlink/metrics-selector-conversion#rollup-transformation" href="https://docs.dynatrace.com/docs/shortlink/metrics-selector-conversion#rollup-transformation" target="_blank" rel="noopener" data-testid="link-with-safety" data-renderer-mark="true"&gt;array functions&lt;/A&gt; in DQL. However the array functions have different semantics and will return different results.&lt;/P&gt;
&lt;H3 id="count"&gt;count&lt;/H3&gt;
&lt;P&gt;&lt;SPAN&gt;As documented in the &lt;/SPAN&gt;&lt;A href="https://docs.dynatrace.com/docs/shortlink/metrics-selector-conversion#count-aggregation" target="_blank" rel="noopener"&gt;&lt;SPAN&gt;count aggregation section&lt;/SPAN&gt;&lt;/A&gt;&lt;SPAN&gt;, the classic&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN class=""&gt;&lt;SPAN&gt;&lt;CODE class="code cc-1tbex3z" data-renderer-mark="true"&gt;:count&lt;/CODE&gt; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;operator is not always simply converted to the &lt;SPAN class=""&gt;&lt;CODE class="code cc-1tbex3z" data-renderer-mark="true"&gt;count()&lt;/CODE&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt; DQL aggregation function. Depending on the metric metadata,&amp;nbsp;&lt;CODE class="code cc-1tbex3z" data-renderer-mark="true"&gt;:count&lt;/CODE&gt; &lt;/SPAN&gt;&lt;SPAN&gt;could return the &lt;/SPAN&gt;&lt;EM&gt;&lt;SPAN&gt;number of observations&lt;/SPAN&gt;&lt;/EM&gt;&lt;SPAN&gt; reported to a metric in Dynatrace classic. In this case the equivalent DQL function is &lt;SPAN class=""&gt;&lt;CODE class="code cc-1tbex3z" data-renderer-mark="true"&gt;sum(..., rollup: total)&lt;/CODE&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;/P&gt;
&lt;H3 id="extra-“rollup:-sum”-in-avg,-min,-max"&gt;extra “rollup: sum” in avg, min, max&lt;/H3&gt;
&lt;P&gt;The classic &lt;CODE class="code cc-1tbex3z" data-renderer-mark="true"&gt;:avg&lt;/CODE&gt; operator is not always simply converted to a plain &lt;CODE class="code cc-1tbex3z" data-renderer-mark="true"&gt;avg()&lt;/CODE&gt; DQL aggregation function. The same applies to &lt;CODE class="code cc-1tbex3z" data-renderer-mark="true"&gt;:min&lt;/CODE&gt; and &lt;CODE class="code cc-1tbex3z" data-renderer-mark="true"&gt;:max&lt;/CODE&gt;. Depending on its metadata, there are metrics which have only the &lt;CODE class="code cc-1tbex3z" data-renderer-mark="true"&gt;value&lt;/CODE&gt; aggregation available. For such metrics, in Dynatrace classic, the &lt;CODE class="code cc-1tbex3z" data-renderer-mark="true"&gt;:avg&lt;/CODE&gt; operator even requires a &lt;CODE class="code cc-1tbex3z" data-renderer-mark="true"&gt;splitBy()&lt;/CODE&gt;preceding it:&lt;CODE class="code cc-1tbex3z" data-renderer-mark="true"&gt;metric_name:splitBy():avg&lt;/CODE&gt;. The equivalent DQL for such a classic metric selector requires a rollup parameter be added to the DQL function &lt;CODE class="code cc-1tbex3z" data-renderer-mark="true"&gt;avg(..., rollup: sum)&lt;/CODE&gt;.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Example:&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;The classic metric &lt;CODE class="code cc-1tbex3z" data-renderer-mark="true"&gt;builtin:billing.foundation_and_discovery.usage&lt;/CODE&gt; has only the value aggregation available:&lt;/P&gt;
&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="msaueressig_2-1742563570394.png" style="width: 999px;"&gt;&lt;img src="https://community.dynatrace.com/t5/image/serverpage/image-id/27105iDC25AE2668E6B2F8/image-size/large?v=v2&amp;amp;px=999" role="button" title="msaueressig_2-1742563570394.png" alt="msaueressig_2-1742563570394.png" /&gt;&lt;/span&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P data-renderer-start-pos="6684"&gt;The equivalent DQL for the classic metric selector &lt;CODE class="code cc-1tbex3z" data-renderer-mark="true"&gt;builtin:billing.foundation_and_discovery.usage:splitBy():avg&lt;/CODE&gt; would be:&lt;/P&gt;
&lt;P data-renderer-start-pos="6807"&gt;&lt;CODE class="code cc-1tbex3z" data-renderer-mark="true"&gt;timeseries usage = avg(dt.billing.foundation_and_discovery.usage, rollup: sum)&lt;/CODE&gt;&lt;/P&gt;
&lt;/DIV&gt;</description>
    <pubDate>Mon, 12 May 2025 12:47:49 GMT</pubDate>
    <dc:creator>msaueressig</dc:creator>
    <dc:date>2025-05-12T12:47:49Z</dc:date>
    <item>
      <title>Metric differences between Dynatrace classic and platform</title>
      <link>https://community.dynatrace.com/t5/Troubleshooting/Metric-differences-between-Dynatrace-classic-and-platform/ta-p/271311</link>
      <description>&lt;DIV class="lia-message-template-content-zone"&gt;
&lt;P&gt;There are differences to be considered when querying metrics in Dynatrace classic, i.e. when using the &lt;A class="" title="https://docs.dynatrace.com/docs/discover-dynatrace/references/dynatrace-api/environment-api/metric-v2" href="https://docs.dynatrace.com/docs/discover-dynatrace/references/dynatrace-api/environment-api/metric-v2" target="_blank" rel="noopener"&gt;Metric API &lt;/A&gt;or the &lt;A class="" title="https://docs.dynatrace.com/docs/analyze-explore-automate/explorer" href="https://docs.dynatrace.com/docs/analyze-explore-automate/explorer" target="_blank" rel="noopener"&gt;Data Explorer&lt;/A&gt;, and in the Dynatrace platform, querying Grail with &lt;A class="" title="https://docs.dynatrace.com/docs/discover-dynatrace/references/dynatrace-query-language/commands/metric-commands" href="https://docs.dynatrace.com/docs/discover-dynatrace/references/dynatrace-query-language/commands/metric-commands" target="_blank" rel="noopener"&gt;DQL&lt;/A&gt;. This article goes through the main differences and things to keep in mind when querying both sides.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H1 id="Metric-availability"&gt;Metric availability&lt;/H1&gt;
&lt;P&gt;Not all of the classic metrics are available on the Dynatrace platform. For an overview of the exported metrics, see the documentation page &lt;A class="" title="https://docs.dynatrace.com/docs/analyze-explore-automate/metrics/built-in-metrics-on-grail" href="https://docs.dynatrace.com/docs/analyze-explore-automate/metrics/built-in-metrics-on-grail" target="_blank" rel="noopener"&gt;Built-in Metrics on Grail&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H1 id="Metric-key-mapping"&gt;Metric key mapping&lt;/H1&gt;
&lt;P&gt;Depending on the metric type, the metric key in the platform might be different than its correspondent classic metric. All mapping rules, including examples, can be found at the top section of &lt;A class="" title="https://docs.dynatrace.com/docs/analyze-explore-automate/metrics/built-in-metrics-on-grail" href="https://docs.dynatrace.com/docs/analyze-explore-automate/metrics/built-in-metrics-on-grail" target="_blank" rel="noopener"&gt;Built-in Metrics on Grail&lt;/A&gt;. In a nutshell, the main points are:&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Built-in metrics&lt;/STRONG&gt;&lt;A class="" title="https://dynatrace.stackenterprise.co/articles/10086#heading-built-in-metrics" href="https://dynatrace.stackenterprise.co/articles/10086#heading-built-in-metrics" target="_blank" rel="noopener"&gt;&lt;STRONG&gt;​&lt;/STRONG&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;In the platform, built-in metric keys were renamed to start with &lt;CODE class="code cc-1tbex3z" data-renderer-mark="true"&gt;dt.&lt;/CODE&gt; instead of &lt;CODE class="code cc-1tbex3z" data-renderer-mark="true"&gt;builtin:&lt;/CODE&gt;. Moreover, the keys in the platform use snake casing. &lt;A title="https://docs.dynatrace.com/docs/analyze-explore-automate/metrics/built-in-metrics-on-grail" href="https://docs.dynatrace.com/docs/analyze-explore-automate/metrics/built-in-metrics-on-grail" target="_blank" rel="noopener"&gt;Built-in Metrics on Grail&lt;/A&gt; also contains one-to-one mappings for the built-in metrics which can be just replaced by the new name or migration guides for the ones which don’t have a one-to-one replacement.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Extension metrics&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Classic extension metrics with a &lt;CODE class="code cc-1tbex3z" data-renderer-mark="true"&gt;builtin:tech&lt;/CODE&gt; prefix appear in the platform with a &lt;CODE class="code cc-1tbex3z" data-renderer-mark="true"&gt;legacy.&lt;/CODE&gt; prefix instead. Classic extension metrics with an &lt;CODE class="code cc-1tbex3z" data-renderer-mark="true"&gt;ext:&lt;/CODE&gt; prefix will get the prefix removed in the platform.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Custom metrics&lt;/STRONG&gt;&lt;A class="" title="https://dynatrace.stackenterprise.co/articles/10086#heading-custom-metrics" href="https://dynatrace.stackenterprise.co/articles/10086#heading-custom-metrics" target="_blank" rel="noopener"&gt;&lt;STRONG&gt;​&lt;/STRONG&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;The keys of the metrics ingested via the Metrics v2 API, the OLTP endpoint and the EEC aren't changed. However, if their metric key is automatically suffixed with &lt;CODE class="code cc-1tbex3z" data-renderer-mark="true"&gt;.count&lt;/CODE&gt; or &lt;CODE class="code cc-1tbex3z" data-renderer-mark="true"&gt;.gauge&lt;/CODE&gt; in 2nd gen (see &lt;A class="" title="https://www.dynatrace.com/support/help/shortlink/metric-ingestion-protocol#payload" href="https://www.dynatrace.com/support/help/shortlink/metric-ingestion-protocol#payload" target="_blank" rel="noopener"&gt;here for details&lt;/A&gt;), this suffix isn't added in the platform.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Calculated service metrics&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Once classic calculated service metrics are available in the platform, (as of version 1.310), the metrics with a &lt;CODE class="code cc-1tbex3z" data-renderer-mark="true"&gt;calc:service&lt;/CODE&gt; prefix appear in the platform with a &lt;CODE class="code cc-1tbex3z" data-renderer-mark="true"&gt;service.&lt;/CODE&gt; prefix instead.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;Tip:&lt;/EM&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;
&lt;P&gt;We strongly recommend to use the &lt;A title="https://docs.dynatrace.com/docs/analyze-explore-automate/metrics/upgrade/metric-selector-conversion#automatic-converter" href="https://docs.dynatrace.com/docs/analyze-explore-automate/metrics/upgrade/metric-selector-conversion#automatic-converter" target="_blank" rel="noopener"&gt;automatic converter&lt;/A&gt; to find the correspondent platform metric key for a classic metric.&lt;/P&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H1 id="Different/missing-values"&gt;Different/missing values&lt;/H1&gt;
&lt;P&gt;There might be differences in the values returned by metric queries in Dynatrace classic in comparison to the results from equivalent queries in the platform. Possible reasons include:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2 id="Recent-time-frames"&gt;Recent time frames&lt;/H2&gt;
&lt;P&gt;For recent time frames (approximately the last 3 minutes), the metric data might be available in classic, but not in the platform, and vice versa.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2 id="Ingest-limits"&gt;Ingest limits&lt;/H2&gt;
&lt;P&gt;If the classic metrics ingestion limit is reached, data points will no longer be forwarded to Grail unless the tenant has the &lt;CODE class="code cc-1tbex3z" data-renderer-mark="true"&gt;Metrics powered by Grail&lt;/CODE&gt; &lt;A class="cc-1rn59kg" title="https://docs.dynatrace.com/docs/shortlink/dps-metrics" href="https://docs.dynatrace.com/docs/shortlink/dps-metrics" target="_blank" rel="noopener" data-testid="link-with-safety" data-renderer-mark="true"&gt;DPS capability&lt;/A&gt;. In case of rejections, more data points might be missing on the platform compared to Dynatrace classic due to internal constraints like caching. Migrating to the &lt;CODE class="code cc-1tbex3z" data-renderer-mark="true"&gt;Metrics powered by Grail&lt;/CODE&gt; DPS capability resolves this issue. Once the &lt;CODE class="code cc-1tbex3z" data-renderer-mark="true"&gt;Metrics powered by Grail&lt;/CODE&gt; capability is used, rejections will only affect the Dynatrace classic.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2 id="Query-limits"&gt;Query limits&lt;/H2&gt;
&lt;P&gt;In Dyntrace classic, you might see not all/no results if you face a metric query limit. In the example below there is no data shown because the metric query limit of 20 million datapoints is reached. On the platform, this limit is increased to 500 million datapoints.&lt;/P&gt;
&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="msaueressig_0-1742563353316.png" style="width: 999px;"&gt;&lt;img src="https://community.dynatrace.com/t5/image/serverpage/image-id/27104i57A5510C37FF6E6A/image-size/large?v=v2&amp;amp;px=999" role="button" title="msaueressig_0-1742563353316.png" alt="msaueressig_0-1742563353316.png" /&gt;&lt;/span&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2 id="Metric-semantics​"&gt;Metric semantics&lt;A class="" title="https://dynatrace.stackenterprise.co/articles/10086#heading-metric-semantics" href="https://dynatrace.stackenterprise.co/articles/10086#heading-metric-semantics" target="_blank" rel="noopener"&gt;​&lt;/A&gt;&lt;/H2&gt;
&lt;P&gt;For each classic metric there isn’t always a one-to-one corresponding metric in the platform containing exactly the same timeseries data. Metric families like service metrics and runtime metrics have metrics which are mapped to a Grail metric that has slightly different semantics.&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;Tip&lt;/EM&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;
&lt;P&gt;The &lt;A title="https://docs.dynatrace.com/docs/analyze-explore-automate/metrics/upgrade/service-metric-migration" href="https://docs.dynatrace.com/docs/analyze-explore-automate/metrics/upgrade/service-metric-migration" target="_blank" rel="noopener"&gt;Service metrics migration guide&lt;/A&gt;, the &lt;A title="https://docs.dynatrace.com/docs/analyze-explore-automate/metrics/upgrade/runtime-metric-migration" href="https://docs.dynatrace.com/docs/analyze-explore-automate/metrics/upgrade/runtime-metric-migration" target="_blank" rel="noopener"&gt;Runtime metrics migration guide&lt;/A&gt; (requires OneAgent 1.283+) and &lt;A title="https://docs.dynatrace.com/docs/analyze-explore-automate/metrics/upgrade/calculated-service-metrics-upgrade" href="https://docs.dynatrace.com/docs/analyze-explore-automate/metrics/upgrade/calculated-service-metrics-upgrade" target="_blank" rel="noopener"&gt;Calculated service metrics&lt;/A&gt; guide provide detailed information about such cases.&lt;/P&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2 id="Different-collect/report-mechanism-at-the-agent-side"&gt;Different collect/report mechanism in OneAgent&amp;nbsp;&lt;/H2&gt;
&lt;P&gt;For some metric families, the classic metrics and the platform metrics are collected and reported by a different mechanism at the OneAgent side. This could lead to slightly different values for correspondent metrics in classic/platform. Such metric families are:&lt;/P&gt;
&lt;UL class=""&gt;
&lt;LI&gt;
&lt;P data-renderer-start-pos="4232"&gt;&lt;A class="cc-1rn59kg" title="https://docs.dynatrace.com/docs/shortlink/built-in-metrics-on-grail#processes" href="https://docs.dynatrace.com/docs/shortlink/built-in-metrics-on-grail#processes" target="_blank" rel="noopener" data-testid="link-with-safety" data-renderer-mark="true"&gt;Process metrics &lt;/A&gt;(aka “Generic technology metrics” in classic) (starting with the &lt;CODE class="code cc-1tbex3z" data-renderer-mark="true"&gt;builtin:tech.generic&lt;/CODE&gt; prefix)&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P data-renderer-start-pos="4345"&gt;&lt;A class="cc-1rn59kg" title="https://docs.dynatrace.com/docs/shortlink/built-in-metrics-on-grail#java" href="https://docs.dynatrace.com/docs/shortlink/built-in-metrics-on-grail#java" target="_blank" rel="noopener" data-testid="link-with-safety" data-renderer-mark="true"&gt;Java metrics &lt;/A&gt;(starting with the &lt;CODE class="code cc-1tbex3z" data-renderer-mark="true"&gt;builtin:tech.jvm&lt;/CODE&gt; prefix)&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P data-renderer-start-pos="4405"&gt;&lt;A class="cc-1rn59kg" title="https://docs.dynatrace.com/docs/shortlink/built-in-metrics-on-grail#infrastructure" href="https://docs.dynatrace.com/docs/shortlink/built-in-metrics-on-grail#infrastructure" target="_blank" rel="noopener" data-testid="link-with-safety" data-renderer-mark="true"&gt;Infrastructure metrics&lt;/A&gt; (starting with the &lt;CODE class="code cc-1tbex3z" data-renderer-mark="true"&gt;builtin:host&lt;/CODE&gt; prefix)&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P data-renderer-start-pos="4471"&gt;&lt;A class="cc-1rn59kg" title="https://docs.dynatrace.com/docs/shortlink/built-in-metrics-on-grail#nginx" href="https://docs.dynatrace.com/docs/shortlink/built-in-metrics-on-grail#nginx" target="_blank" rel="noopener" data-testid="link-with-safety" data-renderer-mark="true"&gt;Webserver metrics&lt;/A&gt; (starting with the &lt;CODE class="code cc-1tbex3z" data-renderer-mark="true"&gt;builtin:tech.webserver&lt;/CODE&gt; prefix)&lt;/P&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2 id="Metric-selector-operators"&gt;Metric selector operators&lt;/H2&gt;
&lt;P&gt;Not all metric selector operators available in Dynatrace classic have a correspondent function in DQL. The &lt;A class="" title="https://docs.dynatrace.com/docs/analyze-explore-automate/metrics/upgrade/metric-selector-conversion#metric-selector-conversion-guide" href="https://docs.dynatrace.com/docs/analyze-explore-automate/metrics/upgrade/metric-selector-conversion#metric-selector-conversion-guide" target="_blank" rel="noopener"&gt;Metric selector conversion guide&lt;/A&gt; documents what is available. As a best practice, the &lt;A title="https://docs.dynatrace.com/docs/analyze-explore-automate/metrics/upgrade/metric-selector-conversion#automatic-converter" href="https://docs.dynatrace.com/docs/analyze-explore-automate/metrics/upgrade/metric-selector-conversion#automatic-converter" target="_blank" rel="noopener"&gt;automatic converter&lt;/A&gt; should be used to find the most appropriate replacement function(s) in DQL for a classic metric selector.&lt;/P&gt;
&lt;P&gt;It’s worth mentioning that some operations have a slightly different behavior in the platform. Here are some differences to be considered.&lt;/P&gt;
&lt;H3 id="splitBy"&gt;splitBy&lt;/H3&gt;
&lt;P data-renderer-start-pos="5039"&gt;The classic &lt;CODE class="code cc-1tbex3z" data-renderer-mark="true"&gt;:splitBy&lt;/CODE&gt; operator is covered by the &lt;A class="cc-1rn59kg" title="https://docs.dynatrace.com/docs/shortlink/metrics-selector-conversion#group-by" href="https://docs.dynatrace.com/docs/shortlink/metrics-selector-conversion#group-by" target="_blank" rel="noopener" data-testid="link-with-safety" data-renderer-mark="true"&gt;by:&lt;/A&gt; parameter in DQL.&lt;/P&gt;
&lt;P data-renderer-start-pos="5110"&gt;One basic difference is that in classic, the &lt;CODE class="code cc-1tbex3z" data-renderer-mark="true"&gt;splitBy&lt;/CODE&gt; is also a filter, meaning it will filter out dimension tuples where the splitted dimension is &lt;CODE class="code cc-1tbex3z" data-renderer-mark="true"&gt;null&lt;/CODE&gt;. That is not the case for &lt;CODE class="code cc-1tbex3z" data-renderer-mark="true"&gt;by:&lt;/CODE&gt; in in DQL.&lt;/P&gt;
&lt;H3 id="percentile"&gt;percentile&lt;/H3&gt;
&lt;P&gt;As documented in the &lt;A class="cc-1rn59kg" title="https://docs.dynatrace.com/docs/shortlink/metrics-selector-conversion#troubleshooting-converted-dql" href="https://docs.dynatrace.com/docs/shortlink/metrics-selector-conversion#troubleshooting-converted-dql" target="_blank" rel="noopener" data-testid="link-with-safety" data-renderer-mark="true"&gt;convertion troubleshooting section&lt;/A&gt;, the classic &lt;CODE class="code cc-1tbex3z" data-renderer-mark="true"&gt;:percentile&lt;/CODE&gt; operator will return different values as Grail’s &lt;A class="cc-1rn59kg" title="https://docs.dynatrace.com/docs/discover-dynatrace/references/dynatrace-query-language/commands/metric-commands" href="https://docs.dynatrace.com/docs/discover-dynatrace/references/dynatrace-query-language/commands/metric-commands" target="_blank" rel="noopener" data-testid="link-with-safety" data-renderer-mark="true"&gt;percentile aggregation function&lt;/A&gt;, because DQL uses a more efficient algorithm.&lt;/P&gt;
&lt;H3 id="rollup"&gt;rollup&lt;/H3&gt;
&lt;P&gt;The classic &lt;CODE class="code cc-1tbex3z" data-renderer-mark="true"&gt;:rollup&lt;/CODE&gt; operator is covered by &lt;A class="cc-1rn59kg" title="https://docs.dynatrace.com/docs/shortlink/metrics-selector-conversion#rollup-transformation" href="https://docs.dynatrace.com/docs/shortlink/metrics-selector-conversion#rollup-transformation" target="_blank" rel="noopener" data-testid="link-with-safety" data-renderer-mark="true"&gt;array functions&lt;/A&gt; in DQL. However the array functions have different semantics and will return different results.&lt;/P&gt;
&lt;H3 id="count"&gt;count&lt;/H3&gt;
&lt;P&gt;&lt;SPAN&gt;As documented in the &lt;/SPAN&gt;&lt;A href="https://docs.dynatrace.com/docs/shortlink/metrics-selector-conversion#count-aggregation" target="_blank" rel="noopener"&gt;&lt;SPAN&gt;count aggregation section&lt;/SPAN&gt;&lt;/A&gt;&lt;SPAN&gt;, the classic&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN class=""&gt;&lt;SPAN&gt;&lt;CODE class="code cc-1tbex3z" data-renderer-mark="true"&gt;:count&lt;/CODE&gt; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;operator is not always simply converted to the &lt;SPAN class=""&gt;&lt;CODE class="code cc-1tbex3z" data-renderer-mark="true"&gt;count()&lt;/CODE&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt; DQL aggregation function. Depending on the metric metadata,&amp;nbsp;&lt;CODE class="code cc-1tbex3z" data-renderer-mark="true"&gt;:count&lt;/CODE&gt; &lt;/SPAN&gt;&lt;SPAN&gt;could return the &lt;/SPAN&gt;&lt;EM&gt;&lt;SPAN&gt;number of observations&lt;/SPAN&gt;&lt;/EM&gt;&lt;SPAN&gt; reported to a metric in Dynatrace classic. In this case the equivalent DQL function is &lt;SPAN class=""&gt;&lt;CODE class="code cc-1tbex3z" data-renderer-mark="true"&gt;sum(..., rollup: total)&lt;/CODE&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;/P&gt;
&lt;H3 id="extra-“rollup:-sum”-in-avg,-min,-max"&gt;extra “rollup: sum” in avg, min, max&lt;/H3&gt;
&lt;P&gt;The classic &lt;CODE class="code cc-1tbex3z" data-renderer-mark="true"&gt;:avg&lt;/CODE&gt; operator is not always simply converted to a plain &lt;CODE class="code cc-1tbex3z" data-renderer-mark="true"&gt;avg()&lt;/CODE&gt; DQL aggregation function. The same applies to &lt;CODE class="code cc-1tbex3z" data-renderer-mark="true"&gt;:min&lt;/CODE&gt; and &lt;CODE class="code cc-1tbex3z" data-renderer-mark="true"&gt;:max&lt;/CODE&gt;. Depending on its metadata, there are metrics which have only the &lt;CODE class="code cc-1tbex3z" data-renderer-mark="true"&gt;value&lt;/CODE&gt; aggregation available. For such metrics, in Dynatrace classic, the &lt;CODE class="code cc-1tbex3z" data-renderer-mark="true"&gt;:avg&lt;/CODE&gt; operator even requires a &lt;CODE class="code cc-1tbex3z" data-renderer-mark="true"&gt;splitBy()&lt;/CODE&gt;preceding it:&lt;CODE class="code cc-1tbex3z" data-renderer-mark="true"&gt;metric_name:splitBy():avg&lt;/CODE&gt;. The equivalent DQL for such a classic metric selector requires a rollup parameter be added to the DQL function &lt;CODE class="code cc-1tbex3z" data-renderer-mark="true"&gt;avg(..., rollup: sum)&lt;/CODE&gt;.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Example:&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;The classic metric &lt;CODE class="code cc-1tbex3z" data-renderer-mark="true"&gt;builtin:billing.foundation_and_discovery.usage&lt;/CODE&gt; has only the value aggregation available:&lt;/P&gt;
&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="msaueressig_2-1742563570394.png" style="width: 999px;"&gt;&lt;img src="https://community.dynatrace.com/t5/image/serverpage/image-id/27105iDC25AE2668E6B2F8/image-size/large?v=v2&amp;amp;px=999" role="button" title="msaueressig_2-1742563570394.png" alt="msaueressig_2-1742563570394.png" /&gt;&lt;/span&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P data-renderer-start-pos="6684"&gt;The equivalent DQL for the classic metric selector &lt;CODE class="code cc-1tbex3z" data-renderer-mark="true"&gt;builtin:billing.foundation_and_discovery.usage:splitBy():avg&lt;/CODE&gt; would be:&lt;/P&gt;
&lt;P data-renderer-start-pos="6807"&gt;&lt;CODE class="code cc-1tbex3z" data-renderer-mark="true"&gt;timeseries usage = avg(dt.billing.foundation_and_discovery.usage, rollup: sum)&lt;/CODE&gt;&lt;/P&gt;
&lt;/DIV&gt;</description>
      <pubDate>Mon, 12 May 2025 12:47:49 GMT</pubDate>
      <guid>https://community.dynatrace.com/t5/Troubleshooting/Metric-differences-between-Dynatrace-classic-and-platform/ta-p/271311</guid>
      <dc:creator>msaueressig</dc:creator>
      <dc:date>2025-05-12T12:47:49Z</dc:date>
    </item>
  </channel>
</rss>

