chg: plugin(percpu) - show times based on host OS

This commit is contained in:
Bharath Vignesh J K 2024-07-01 10:27:33 +05:30
parent 46abd4b4c9
commit 6af2340c5c
2 changed files with 23 additions and 4 deletions

View File

@ -38,6 +38,8 @@ class PerCpuPercentInfo(TypedDict):
steal: Optional[float] steal: Optional[float]
guest: Optional[float] guest: Optional[float]
guest_nice: Optional[float] guest_nice: Optional[float]
dpc: Optional[float]
interrupt: Optional[float]
class CpuPercent: class CpuPercent:
@ -146,6 +148,8 @@ class CpuPercent:
'steal': cpu_times.steal if hasattr(cpu_times, 'steal') else None, 'steal': cpu_times.steal if hasattr(cpu_times, 'steal') else None,
'guest': cpu_times.guest if hasattr(cpu_times, 'guest') else None, 'guest': cpu_times.guest if hasattr(cpu_times, 'guest') else None,
'guest_nice': cpu_times.steal if hasattr(cpu_times, 'guest_nice') else None, 'guest_nice': cpu_times.steal if hasattr(cpu_times, 'guest_nice') else None,
'dpc': cpu_times.dpc if hasattr(cpu_times, 'dpc') else None,
'interrupt': cpu_times.interrupt if hasattr(cpu_times, 'interrupt') else None,
} }
for cpu_number, cpu_times in psutil_percpu for cpu_number, cpu_times in psutil_percpu
] ]

View File

@ -9,6 +9,7 @@
"""Per-CPU plugin.""" """Per-CPU plugin."""
from glances.cpu_percent import cpu_percent from glances.cpu_percent import cpu_percent
from glances.globals import BSD, LINUX, MACOS, WINDOWS
from glances.plugins.plugin.model import GlancesPluginModel from glances.plugins.plugin.model import GlancesPluginModel
# Fields description # Fields description
@ -76,6 +77,14 @@ guest operating systems under the control of the Linux kernel.',
'description': '*(Linux)*: percent of time spent handling software interrupts.', 'description': '*(Linux)*: percent of time spent handling software interrupts.',
'unit': 'percent', 'unit': 'percent',
}, },
'dpc': {
'description': '*(Windows)*: percent of time spent handling deferred procedure calls.',
'unit': 'percent',
},
'interrupt': {
'description': '*(Windows)*: percent of time spent handling software interrupts.',
'unit': 'percent',
},
} }
# Define the history items list # Define the history items list
@ -140,11 +149,17 @@ class PluginModel(GlancesPluginModel):
if not self.stats or not self.args.percpu or self.is_disabled(): if not self.stats or not self.args.percpu or self.is_disabled():
return ret return ret
# Define the default header # Define the headers based on OS
all_headers = ['user', 'system', 'idle', 'iowait', 'steal'] header = ['user', 'system']
# Determine applicable headers if LINUX:
header = [h for h in all_headers if self.stats[0].get(h) is not None] header.extend(['iowait', 'idle', 'irq', 'nice', 'steal', 'guest'])
elif MACOS:
header.extend(['idle', 'nice'])
elif BSD:
header.extend(['idle', 'irq', 'nice'])
elif WINDOWS:
header.extend(['dpc', 'interrupt'])
# Build the string message # Build the string message
if self.is_disabled('quicklook'): if self.is_disabled('quicklook'):