Update power-usage for mac

This commit is contained in:
Alexandru-Victor Macocian
2025-10-30 16:24:18 +01:00
parent 181931f540
commit 904de200d4
+16 -12
View File
@@ -49,23 +49,27 @@ for i in {1..6}; do
if [[ "$OS_TYPE" == "macos" ]]; then
# Use powermetrics for macOS (requires sudo)
# Sample for 1 second and extract CPU power
power_data=$(sudo powermetrics -n 1 -i 1000 --samplers cpu_power 2>/dev/null | grep "CPU Power" | head -1)
power_data=$(sudo powermetrics -n 1 -i 1000 --samplers cpu_power 2>/dev/null | grep -i "power" | head -1)
if [[ -n "$power_data" ]]; then
# Extract power value (format: "CPU Power: 1234 mW")
power_mw=$(echo "$power_data" | grep -o '[0-9]\+ mW' | grep -o '[0-9]\+')
# Try to extract power value in watts (format: "Intel energy model derived package power (CPUs+GT+SA): 4.55W")
power_watts=$(echo "$power_data" | grep -oE '[0-9]+\.[0-9]+W' | grep -oE '[0-9]+\.[0-9]+')
if [[ -n "$power_mw" ]]; then
# Convert milliwatts to watts
power_watts=$(echo "scale=6; $power_mw / 1000" | bc 2>/dev/null)
if [[ $? -eq 0 ]]; then
echo "$timestamp $power_watts" >> "$LOGFILE"
LogInformation "Power usage recorded: ${power_watts}W (iteration $i/6)"
else
LogError "Failed to calculate power in watts"
# If watts format not found, try milliwatts format (format: "CPU Power: 1234 mW")
if [[ -z "$power_watts" ]]; then
power_mw=$(echo "$power_data" | grep -oE '[0-9]+ mW' | grep -oE '[0-9]+')
if [[ -n "$power_mw" ]]; then
# Convert milliwatts to watts
power_watts=$(echo "scale=6; $power_mw / 1000" | bc 2>/dev/null)
fi
fi
if [[ -n "$power_watts" && $? -eq 0 ]]; then
echo "$timestamp $power_watts" >> "$LOGFILE"
LogInformation "Power usage recorded: ${power_watts}W (iteration $i/6)"
else
LogError "Failed to extract or calculate power value"
fi
else
LogWarning "Could not retrieve power data from powermetrics"
fi