Files
troupe-standup/wizard-work/spark/verify_metrics.py
T

55 lines
1.6 KiB
Python

#!/usr/bin/env python3
"""Verify sys_metrics.py produces valid JSON output."""
import json
import subprocess
result = subprocess.run(
['python3', '/root/.hermes/wizard-outputs/spark/sys_metrics.py'],
capture_output=True,
text=True
)
if result.returncode != 0:
print(f"FAILED: Script exited with code {result.returncode}")
exit(1)
try:
data = json.loads(result.stdout)
except json.JSONDecodeError as e:
print(f"FAILED: Invalid JSON - {e}")
exit(1)
required_keys = ['disk', 'memory', 'load_average', 'uptime_seconds']
for key in required_keys:
if key not in data:
print(f"FAILED: Missing key '{key}'")
exit(1)
# Verify disk has required fields
disk_fields = ['total', 'used', 'free', 'percent_used']
for field in disk_fields:
if field not in data['disk']:
print(f"FAILED: Disk missing field '{field}'")
exit(1)
# Verify memory has required fields
mem_fields = ['total', 'used', 'available', 'percent_used']
for field in mem_fields:
if field not in data['memory']:
print(f"FAILED: Memory missing field '{field}'")
exit(1)
# Verify load_average has required fields
load_fields = ['1min', '5min', '15min']
for field in load_fields:
if field not in data['load_average']:
print(f"FAILED: Load average missing field '{field}'")
exit(1)
print("VERIFIED: sys_metrics.py produces valid JSON with all required fields")
print(f"Keys: {list(data.keys())}")
print(f"Disk usage: {data['disk']['percent_used']}%")
print(f"Memory usage: {data['memory']['percent_used']}%")
print(f"Load average: {data['load_average']['1min']}")
print(f"Uptime: {data['uptime_seconds']} seconds")