you can read all info over API directly from rigs and then do as you pleased..
req_dict = {"id":0,"jsonrpc":"2.0","method":"miner_getstat2"}
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
try:
s.settimeout(g_timeout_s)
s.connect((ip_address, server_port))
req_byte = json.dumps(req_dict, separators=(',', ':')).encode('ascii')+b'\n'
s.send(req_byte)
resp_byte = s.recv(1024)
s.close()
resp_text = json.loads(resp_byte.decode('ASCII'))
except:
#print (f"{rig_name:s}: no response within {int(timeout_s):d}sec period")
print (f"{rig_name:s}: not responding")
return 0
I use it to monitor bad shares/gpu too:

Excellent.. I've just got to wrap my head around how best to implement the calls and if possible figure out how to automate based on some kind of triggers.
**if possible **
Constantly monitor pool ping latency times and then if fall outside agreed spec then switch up pools -- That's basically my challenge.
Thanks for excellent pointer tho much appreciated !