mirror of
https://github.com/markqvist/Sideband.git
synced 2025-02-10 19:58:50 -05:00
Improved RNS Transport stats
This commit is contained in:
parent
fc3e97b8fc
commit
cc87e8c109
@ -115,7 +115,7 @@ class MQTT():
|
|||||||
remote_telemeter = Telemeter.from_packed(telemetry)
|
remote_telemeter = Telemeter.from_packed(telemetry)
|
||||||
read_telemetry = remote_telemeter.read_all()
|
read_telemetry = remote_telemeter.read_all()
|
||||||
telemetry_timestamp = read_telemetry["time"]["utc"]
|
telemetry_timestamp = read_telemetry["time"]["utc"]
|
||||||
root_path = f"lxmf/telemetry/{RNS.prettyhexrep(context_dest)}"
|
root_path = f"lxmf/telemetry/{RNS.hexrep(context_dest, delimit=False)}"
|
||||||
for sensor in remote_telemeter.sensors:
|
for sensor in remote_telemeter.sensors:
|
||||||
s = remote_telemeter.sensors[sensor]
|
s = remote_telemeter.sensors[sensor]
|
||||||
topics = s.render_mqtt()
|
topics = s.render_mqtt()
|
||||||
|
@ -2505,9 +2505,13 @@ class Fuel(Sensor):
|
|||||||
|
|
||||||
class RNSTransport(Sensor):
|
class RNSTransport(Sensor):
|
||||||
SID = Sensor.SID_RNS_TRANSPORT
|
SID = Sensor.SID_RNS_TRANSPORT
|
||||||
STALE_TIME = 5
|
STALE_TIME = 1
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
|
self._last_traffic_rxb = 0
|
||||||
|
self._last_traffic_txb = 0
|
||||||
|
self._last_update = 0
|
||||||
|
self._update_lock = threading.Lock()
|
||||||
super().__init__(type(self).SID, type(self).STALE_TIME)
|
super().__init__(type(self).SID, type(self).STALE_TIME)
|
||||||
|
|
||||||
def setup_sensor(self):
|
def setup_sensor(self):
|
||||||
@ -2518,24 +2522,50 @@ class RNSTransport(Sensor):
|
|||||||
self.data = None
|
self.data = None
|
||||||
|
|
||||||
def update_data(self):
|
def update_data(self):
|
||||||
r = RNS.Reticulum.get_instance()
|
with self._update_lock:
|
||||||
ifstats = r.get_interface_stats()
|
if time.time() - self._last_update < self.STALE_TIME:
|
||||||
rss = None
|
return
|
||||||
if "rss" in ifstats:
|
|
||||||
rss = ifstats.pop("rss")
|
r = RNS.Reticulum.get_instance()
|
||||||
self.data = {
|
self._last_update = time.time()
|
||||||
"transport_enabled": RNS.Reticulum.transport_enabled(),
|
ifstats = r.get_interface_stats()
|
||||||
"transport_identity": RNS.Transport.identity.hash,
|
rss = None
|
||||||
"transport_uptime": time.time()-RNS.Transport.start_time if RNS.Reticulum.transport_enabled() else None,
|
if "rss" in ifstats:
|
||||||
"traffic_rxb": ifstats["rxb"],
|
rss = ifstats.pop("rss")
|
||||||
"traffic_txb": ifstats["txb"],
|
|
||||||
"speed_rx": ifstats["rxs"],
|
if self.last_update == 0:
|
||||||
"speed_tx": ifstats["txs"],
|
RNS.log("NO CALC DIFF")
|
||||||
"memory_used": rss,
|
rxs = ifstats["rxs"]
|
||||||
"ifstats": ifstats,
|
txs = ifstats["txs"]
|
||||||
"link_count": r.get_link_count(),
|
else:
|
||||||
"path_table": sorted(r.get_path_table(max_hops=RNS.Transport.PATHFINDER_M-1), key=lambda e: (e["interface"], e["hops"]) )
|
td = time.time()-self.last_update
|
||||||
}
|
rxd = ifstats["rxb"] - self._last_traffic_rxb
|
||||||
|
txd = ifstats["txb"] - self._last_traffic_txb
|
||||||
|
rxs = (rxd/td)*8
|
||||||
|
txs = (txd/td)*8
|
||||||
|
RNS.log(f"CALC DIFFS: td={td}, rxd={rxd}, txd={txd}")
|
||||||
|
RNS.log(f" rxs={rxs}, txs={txs}")
|
||||||
|
|
||||||
|
|
||||||
|
self._last_traffic_rxb = ifstats["rxb"]
|
||||||
|
self._last_traffic_txb = ifstats["txb"]
|
||||||
|
|
||||||
|
self.data = {
|
||||||
|
"transport_enabled": RNS.Reticulum.transport_enabled(),
|
||||||
|
"transport_identity": RNS.Transport.identity.hash,
|
||||||
|
"transport_uptime": time.time()-RNS.Transport.start_time if RNS.Reticulum.transport_enabled() else None,
|
||||||
|
"traffic_rxb": ifstats["rxb"],
|
||||||
|
"traffic_txb": ifstats["txb"],
|
||||||
|
"speed_rx": rxs,
|
||||||
|
"speed_tx": txs,
|
||||||
|
"speed_rx_inst": ifstats["rxs"],
|
||||||
|
"speed_tx_inst": ifstats["txs"],
|
||||||
|
"memory_used": rss,
|
||||||
|
"ifstats": ifstats,
|
||||||
|
"interface_count": len(ifstats["interfaces"]),
|
||||||
|
"link_count": r.get_link_count(),
|
||||||
|
"path_table": sorted(r.get_path_table(max_hops=RNS.Transport.PATHFINDER_M-1), key=lambda e: (e["interface"], e["hops"]) )
|
||||||
|
}
|
||||||
|
|
||||||
def pack(self):
|
def pack(self):
|
||||||
d = self.data
|
d = self.data
|
||||||
@ -2592,9 +2622,12 @@ class RNSTransport(Sensor):
|
|||||||
"traffic_txb": d["traffic_txb"],
|
"traffic_txb": d["traffic_txb"],
|
||||||
"speed_rx": d["speed_rx"],
|
"speed_rx": d["speed_rx"],
|
||||||
"speed_tx": d["speed_tx"],
|
"speed_tx": d["speed_tx"],
|
||||||
|
"speed_rx_inst": d["speed_rx_inst"],
|
||||||
|
"speed_tx_inst": d["speed_tx_inst"],
|
||||||
"memory_used": d["memory_used"],
|
"memory_used": d["memory_used"],
|
||||||
"path_count": len(d["path_table"]),
|
"path_count": len(d["path_table"]),
|
||||||
"link_count": d["link_count"],
|
"link_count": d["link_count"],
|
||||||
|
"interface_count": len(ifs),
|
||||||
"interfaces": ifs,
|
"interfaces": ifs,
|
||||||
"remote_transport_node_count": len(transport_nodes),
|
"remote_transport_node_count": len(transport_nodes),
|
||||||
"remote_transport_nodes": transport_nodes,
|
"remote_transport_nodes": transport_nodes,
|
||||||
@ -2632,9 +2665,12 @@ class RNSTransport(Sensor):
|
|||||||
f"{topic}/traffic_txb": v["traffic_txb"],
|
f"{topic}/traffic_txb": v["traffic_txb"],
|
||||||
f"{topic}/speed_rx": v["speed_rx"],
|
f"{topic}/speed_rx": v["speed_rx"],
|
||||||
f"{topic}/speed_tx": v["speed_tx"],
|
f"{topic}/speed_tx": v["speed_tx"],
|
||||||
|
f"{topic}/speed_rx_inst": v["speed_rx_inst"],
|
||||||
|
f"{topic}/speed_tx_inst": v["speed_tx_inst"],
|
||||||
f"{topic}/memory_used": v["memory_used"],
|
f"{topic}/memory_used": v["memory_used"],
|
||||||
f"{topic}/path_count": v["path_count"],
|
f"{topic}/path_count": v["path_count"],
|
||||||
f"{topic}/link_count": v["link_count"],
|
f"{topic}/link_count": v["link_count"],
|
||||||
|
f"{topic}/interface_count": v["interface_count"],
|
||||||
f"{topic}/remote_transport_node_count": v["remote_transport_node_count"],
|
f"{topic}/remote_transport_node_count": v["remote_transport_node_count"],
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2900,7 +2936,7 @@ class LXMFPropagation(Sensor):
|
|||||||
|
|
||||||
def mqtt_desthash(desthash):
|
def mqtt_desthash(desthash):
|
||||||
if type(desthash) == bytes:
|
if type(desthash) == bytes:
|
||||||
return RNS.prettyhexrep(desthash)
|
return RNS.hexrep(desthash, delimit=False)
|
||||||
else:
|
else:
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user