in cost-optimization/hpa-config-recommender/src/hpaconfigrecommender/plan_workload_simulation.py [0:0]
def _is_workload_balanced(workload_df: pd.DataFrame) -> bool:
"""
Determines if the workload is balanced based on the ratio of CPU
usage standard deviation to average usage.
Args:
workload_df (pd.DataFrame): DataFrame containing the
workload metrics with "stddev_containers_cpu_usage"
and "avg_container_cpu_usage".
Returns:
A boolean indicating if the workload
is balanced (True), unbalanced (False), or None for invalid
data.
"""
if workload_df.empty:
logger.warning("Workload DataFrame is empty,")
return None
try:
avg_cpu_usage = workload_df["avg_container_cpu_usage"].mean()
stddev_cpu_usage = workload_df["stddev_containers_cpu_usage"].mean()
if avg_cpu_usage == 0:
logger.info("Division by zero in workload balancing calculation.")
return None
ratio = (2 * stddev_cpu_usage) / avg_cpu_usage
is_balanced = ratio < 0.25
logger.info(
"Workload is balanced: %s (ratio = %.3f)", is_balanced, ratio
)
return is_balanced
except KeyError as e:
logger.error("KeyError: Missing required column %s", {e})
return True