<?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>topic ✅ Pro Tip: Why CPU throttling, CPU limits, and CPU requests may show no data in Kubernetes workloads in Dynatrace tips</title>
    <link>https://community.dynatrace.com/t5/Dynatrace-tips/Pro-Tip-Why-CPU-throttling-CPU-limits-and-CPU-requests-may-show/m-p/283458#M1717</link>
    <description>&lt;P&gt;When viewing Kubernetes workload metrics in most observability tools, you might sometimes notice that &lt;STRONG&gt;CPU throttling&lt;/STRONG&gt;, &lt;STRONG&gt;CPU limits&lt;/STRONG&gt;, and &lt;STRONG&gt;CPU requests&lt;/STRONG&gt; appear blank or show no data for certain workloads — while other workloads display them fine.&lt;/P&gt;&lt;P&gt;This behavior is generally expected and can be explained by how these metrics are collected in Kubernetes environments.&lt;/P&gt;&lt;HR /&gt;&lt;H3&gt;&lt;STRONG&gt;1. Pod activity and metric reporting&lt;/STRONG&gt;&lt;/H3&gt;&lt;UL&gt;&lt;LI&gt;CPU throttling data comes from Kubernetes &lt;FONT face="courier new,courier"&gt;cgroup&lt;/FONT&gt; metrics (&lt;FONT face="courier new,courier"&gt;container_cpu_cfs_throttled_periods_total vs. container_cpu_cfs_periods_total&lt;/FONT&gt;) exposed via &lt;STRONG&gt;kubelet/cAdvisor&lt;/STRONG&gt;.&lt;/LI&gt;&lt;LI&gt;If a pod is idle (no incoming requests, no CPU usage), the throttled periods remain 0. In such cases, CPU throttling charts will be empty because there’s nothing to report.&lt;/LI&gt;&lt;LI&gt;Many observability agents optimize collection by marking inactive pods and reducing metric polling until activity resumes.&lt;/LI&gt;&lt;/UL&gt;&lt;HR /&gt;&lt;H3&gt;&lt;STRONG&gt;2. CPU limits and CPU requests not defined&lt;/STRONG&gt;&lt;/H3&gt;&lt;UL&gt;&lt;LI&gt;These values are pulled from the Kubernetes API based on the container spec.&lt;/LI&gt;&lt;LI&gt;If &lt;FONT face="courier new,courier"&gt;resources.requests.cpu&lt;/FONT&gt; and &lt;FONT face="courier new,courier"&gt;resources.limits.cpu&lt;/FONT&gt; are not defined in the pod/deployment YAML, the fields will remain blank in your observability tool.&lt;/LI&gt;&lt;/UL&gt;&lt;HR /&gt;&lt;H3&gt;&lt;STRONG&gt;3. It’s not always a connectivity issue&lt;/STRONG&gt;&lt;/H3&gt;&lt;UL&gt;&lt;LI&gt;&lt;P&gt;If an observability agent was unable to connect to the node or &lt;FONT face="courier new,courier"&gt;kubelet&lt;/FONT&gt;, you’d typically see an explicit alert for that in the platform.&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P&gt;If there’s no such alert, missing CPU throttling data is usually due to lack of CPU activity or undefined resource requests/limits — not a failed connection.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;HR /&gt;&lt;H3&gt;&lt;STRONG&gt;4. How to verify&lt;/STRONG&gt;&lt;/H3&gt;&lt;OL&gt;&lt;LI&gt;&lt;P&gt;Inspect the pod spec:&lt;/P&gt;&lt;DIV class=""&gt;&lt;PRE&gt;&lt;SPAN&gt;kubectl get pod &amp;lt;name&amp;gt; -o yaml&lt;/SPAN&gt;&lt;/PRE&gt;&lt;/DIV&gt;&lt;P&gt;Check for &lt;FONT face="courier new,courier"&gt;resources.limits.cpu&lt;/FONT&gt; and &lt;FONT face="courier new,courier"&gt;resources.requests.cpu.&lt;/FONT&gt;&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;Send synthetic load to the pod and re-check CPU throttling metrics.&lt;/LI&gt;&lt;LI&gt;Ensure kubelet/cAdvisor endpoints are reachable from your observability agents.&lt;/LI&gt;&lt;/OL&gt;&lt;HR /&gt;&lt;P&gt;&lt;STRONG&gt;Takeaway:&lt;/STRONG&gt;&lt;BR /&gt;If CPU throttling shows no data and CPU limits/requests are blank:&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;&lt;STRONG&gt;Idle pod&lt;/STRONG&gt; → no throttling data to display.&lt;/LI&gt;&lt;LI&gt;&lt;STRONG&gt;No limits/requests defined&lt;/STRONG&gt; → blank fields in your observability UI.&lt;/LI&gt;&lt;LI&gt;This is expected behavior across most Kubernetes observability tools.&lt;/LI&gt;&lt;/UL&gt;</description>
    <pubDate>Mon, 11 Aug 2025 07:10:49 GMT</pubDate>
    <dc:creator>theharithsa</dc:creator>
    <dc:date>2025-08-11T07:10:49Z</dc:date>
    <item>
      <title>✅ Pro Tip: Why CPU throttling, CPU limits, and CPU requests may show no data in Kubernetes workloads</title>
      <link>https://community.dynatrace.com/t5/Dynatrace-tips/Pro-Tip-Why-CPU-throttling-CPU-limits-and-CPU-requests-may-show/m-p/283458#M1717</link>
      <description>&lt;P&gt;When viewing Kubernetes workload metrics in most observability tools, you might sometimes notice that &lt;STRONG&gt;CPU throttling&lt;/STRONG&gt;, &lt;STRONG&gt;CPU limits&lt;/STRONG&gt;, and &lt;STRONG&gt;CPU requests&lt;/STRONG&gt; appear blank or show no data for certain workloads — while other workloads display them fine.&lt;/P&gt;&lt;P&gt;This behavior is generally expected and can be explained by how these metrics are collected in Kubernetes environments.&lt;/P&gt;&lt;HR /&gt;&lt;H3&gt;&lt;STRONG&gt;1. Pod activity and metric reporting&lt;/STRONG&gt;&lt;/H3&gt;&lt;UL&gt;&lt;LI&gt;CPU throttling data comes from Kubernetes &lt;FONT face="courier new,courier"&gt;cgroup&lt;/FONT&gt; metrics (&lt;FONT face="courier new,courier"&gt;container_cpu_cfs_throttled_periods_total vs. container_cpu_cfs_periods_total&lt;/FONT&gt;) exposed via &lt;STRONG&gt;kubelet/cAdvisor&lt;/STRONG&gt;.&lt;/LI&gt;&lt;LI&gt;If a pod is idle (no incoming requests, no CPU usage), the throttled periods remain 0. In such cases, CPU throttling charts will be empty because there’s nothing to report.&lt;/LI&gt;&lt;LI&gt;Many observability agents optimize collection by marking inactive pods and reducing metric polling until activity resumes.&lt;/LI&gt;&lt;/UL&gt;&lt;HR /&gt;&lt;H3&gt;&lt;STRONG&gt;2. CPU limits and CPU requests not defined&lt;/STRONG&gt;&lt;/H3&gt;&lt;UL&gt;&lt;LI&gt;These values are pulled from the Kubernetes API based on the container spec.&lt;/LI&gt;&lt;LI&gt;If &lt;FONT face="courier new,courier"&gt;resources.requests.cpu&lt;/FONT&gt; and &lt;FONT face="courier new,courier"&gt;resources.limits.cpu&lt;/FONT&gt; are not defined in the pod/deployment YAML, the fields will remain blank in your observability tool.&lt;/LI&gt;&lt;/UL&gt;&lt;HR /&gt;&lt;H3&gt;&lt;STRONG&gt;3. It’s not always a connectivity issue&lt;/STRONG&gt;&lt;/H3&gt;&lt;UL&gt;&lt;LI&gt;&lt;P&gt;If an observability agent was unable to connect to the node or &lt;FONT face="courier new,courier"&gt;kubelet&lt;/FONT&gt;, you’d typically see an explicit alert for that in the platform.&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P&gt;If there’s no such alert, missing CPU throttling data is usually due to lack of CPU activity or undefined resource requests/limits — not a failed connection.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;HR /&gt;&lt;H3&gt;&lt;STRONG&gt;4. How to verify&lt;/STRONG&gt;&lt;/H3&gt;&lt;OL&gt;&lt;LI&gt;&lt;P&gt;Inspect the pod spec:&lt;/P&gt;&lt;DIV class=""&gt;&lt;PRE&gt;&lt;SPAN&gt;kubectl get pod &amp;lt;name&amp;gt; -o yaml&lt;/SPAN&gt;&lt;/PRE&gt;&lt;/DIV&gt;&lt;P&gt;Check for &lt;FONT face="courier new,courier"&gt;resources.limits.cpu&lt;/FONT&gt; and &lt;FONT face="courier new,courier"&gt;resources.requests.cpu.&lt;/FONT&gt;&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;Send synthetic load to the pod and re-check CPU throttling metrics.&lt;/LI&gt;&lt;LI&gt;Ensure kubelet/cAdvisor endpoints are reachable from your observability agents.&lt;/LI&gt;&lt;/OL&gt;&lt;HR /&gt;&lt;P&gt;&lt;STRONG&gt;Takeaway:&lt;/STRONG&gt;&lt;BR /&gt;If CPU throttling shows no data and CPU limits/requests are blank:&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;&lt;STRONG&gt;Idle pod&lt;/STRONG&gt; → no throttling data to display.&lt;/LI&gt;&lt;LI&gt;&lt;STRONG&gt;No limits/requests defined&lt;/STRONG&gt; → blank fields in your observability UI.&lt;/LI&gt;&lt;LI&gt;This is expected behavior across most Kubernetes observability tools.&lt;/LI&gt;&lt;/UL&gt;</description>
      <pubDate>Mon, 11 Aug 2025 07:10:49 GMT</pubDate>
      <guid>https://community.dynatrace.com/t5/Dynatrace-tips/Pro-Tip-Why-CPU-throttling-CPU-limits-and-CPU-requests-may-show/m-p/283458#M1717</guid>
      <dc:creator>theharithsa</dc:creator>
      <dc:date>2025-08-11T07:10:49Z</dc:date>
    </item>
  </channel>
</rss>

