atlasbot: add per-hardware extremes
This commit is contained in:
parent
2fe3d5b932
commit
6001876409
@ -1145,6 +1145,33 @@ def facts_context(
|
|||||||
rate=metric in ("net", "io"),
|
rate=metric in ("net", "io"),
|
||||||
)
|
)
|
||||||
lines.append(f"- lowest_{metric}: {node} ({value_fmt})")
|
lines.append(f"- lowest_{metric}: {node} ({value_fmt})")
|
||||||
|
for metric in ("cpu", "ram"):
|
||||||
|
hottest_parts: list[str] = []
|
||||||
|
lowest_parts: list[str] = []
|
||||||
|
for hw, nodes_list in sorted(by_hardware.items()):
|
||||||
|
entries = []
|
||||||
|
for entry in usage_table:
|
||||||
|
node = entry.get("node")
|
||||||
|
if node in nodes_list and entry.get(metric) is not None:
|
||||||
|
try:
|
||||||
|
value = float(entry.get(metric))
|
||||||
|
except (TypeError, ValueError):
|
||||||
|
continue
|
||||||
|
entries.append((node, value))
|
||||||
|
if not entries:
|
||||||
|
continue
|
||||||
|
max_node, max_val = max(entries, key=lambda item: item[1])
|
||||||
|
min_node, min_val = min(entries, key=lambda item: item[1])
|
||||||
|
hottest_parts.append(
|
||||||
|
f"{hw}={max_node} ({_format_metric_value(str(max_val), percent=True)})"
|
||||||
|
)
|
||||||
|
lowest_parts.append(
|
||||||
|
f"{hw}={min_node} ({_format_metric_value(str(min_val), percent=True)})"
|
||||||
|
)
|
||||||
|
if hottest_parts:
|
||||||
|
lines.append(f"- hottest_{metric}_by_hardware: {', '.join(hottest_parts)}")
|
||||||
|
if lowest_parts:
|
||||||
|
lines.append(f"- lowest_{metric}_by_hardware: {', '.join(lowest_parts)}")
|
||||||
|
|
||||||
if nodes_in_query:
|
if nodes_in_query:
|
||||||
lines.append("- node_details:")
|
lines.append("- node_details:")
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user