CPU Utilization Metric Is Empty or Shows 0 in SQL Monitor
The CPU Utilization metric in SQL Monitor is not displayed or always shows 0.
The same SQL Monitor instance may work correctly for other SQL Server instances. For example, CPU utilization can be displayed normally on SQL Server 2016 while remaining unavailable on another server.
Cause
SQL Monitor retrieves CPU utilization data from the sys.dm_os_performance_counters dynamic management view.
If the SQL Server performance counters are disabled or not functioning correctly, the DMV returns zero values, causing the CPU Utilization metric to remain empty or display 0.
This is a known Microsoft issue that has been observed on different SQL Server versions, including SQL Server 2008 through SQL Server 2022.
The issue is not related to insufficient permissions. If the monitoring account lacked access to the DMV, SQL Monitor would report a permission error rather than displaying zero values.
Diagnostics
Run the following query on the affected SQL Server instance:

instance_name,
counter_name,
cntr_value
FROM sys.dm_os_performance_counters WITH (NOLOCK)
WHERE object_name LIKE '%Resource Pool Stats%'
AND counter_name LIKE '%CPU%'
If all values returned in the cntr_value column are equal to 0, the issue originates on the SQL Server side rather than in SQL Monitor.
Resolution
Since SQL Monitor relies on SQL Server performance counters to collect CPU usage statistics, the issue must be resolved on the SQL Server side.
Investigate the status of SQL Server performance counters or contact Microsoft Support for further assistance.