Skip to content

Commit 4e68db4

Browse files
Merge pull request #45 from amd/alex_mem_update
MemoryPlugin printout update
2 parents 3df4921 + 1b56be8 commit 4e68db4

File tree

1 file changed

+27
-8
lines changed

1 file changed

+27
-8
lines changed

nodescraper/plugins/inband/memory/memory_analyzer.py

Lines changed: 27 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -47,33 +47,52 @@ def analyze_data(
4747
Args:
4848
data (MemoryDataModel): memory data to analyze.
4949
args (Optional[MemoryAnalyzerArgs], optional): memory analysis arguments. Defaults to None.
50-
5150
Returns:
5251
TaskResult: Result of the memory analysis containing the status and message.
5352
"""
53+
5454
if not args:
5555
args = MemoryAnalyzerArgs()
5656

57+
def _bytes_to_gb(n: float) -> float:
58+
return n / (1024**3)
59+
5760
free_memory = convert_to_bytes(data.mem_free)
5861
total_memory = convert_to_bytes(data.mem_total)
5962
used_memory = total_memory - free_memory
6063

61-
if total_memory > convert_to_bytes(args.memory_threshold):
62-
max_allowed_used_mem = convert_to_bytes(args.memory_threshold) * args.ratio
64+
threshold_bytes = convert_to_bytes(args.memory_threshold)
65+
66+
if total_memory > threshold_bytes:
67+
base_bytes = threshold_bytes
68+
base_source = "memory_threshold (max_expected)"
6369
else:
64-
max_allowed_used_mem = total_memory * args.ratio
70+
base_bytes = total_memory
71+
base_source = "total_memory"
72+
73+
max_allowed_used_mem = base_bytes * args.ratio
74+
75+
used_gb = _bytes_to_gb(used_memory)
76+
allowed_gb = _bytes_to_gb(max_allowed_used_mem)
77+
base_gb = _bytes_to_gb(base_bytes)
6578

6679
if used_memory < max_allowed_used_mem:
67-
self.result.message = "Memory usage is within maximum allowed used memory"
80+
self.result.message = (
81+
f"Memory usage is within limit: Used {used_gb:.2f} GB "
82+
f"(allowed {allowed_gb:.2f} GB; base={base_source} {base_gb:.2f} GB × ratio={args.ratio:.2f})"
83+
)
6884
self.result.status = ExecutionStatus.OK
6985
else:
70-
self.result.message = f"Memory usage exceeded max allowed! Used: {used_memory}, max allowed: {max_allowed_used_mem}"
86+
self.result.message = (
87+
f"Memory usage exceeded max allowed! Used {used_gb:.2f} GB, "
88+
f"max allowed {allowed_gb:.2f} GB "
89+
f"(base={base_source} {base_gb:.2f} GB × ratio={args.ratio:.2f})"
90+
)
7191
self.result.status = ExecutionStatus.ERROR
7292
self._log_event(
7393
category=EventCategory.OS,
74-
description=f"{self.result.message}, Actual: {used_memory}",
94+
description=self.result.message,
7595
priority=EventPriority.CRITICAL,
76-
console_log=True,
7796
)
7897

7998
return self.result

0 commit comments

Comments
 (0)