Adjust keepalive health printing and ordering

This commit is contained in:
2023-02-24 10:38:24 -05:00
parent 202dc3ed59
commit 7c07fbefff
3 changed files with 79 additions and 43 deletions

View File

@ -365,7 +365,10 @@ class MonitoringInstance(object):
plugin_results.append(future.result())
for result in sorted(plugin_results, key=lambda x: x.plugin_name):
if self.config["log_keepalive_plugin_details"]:
if (
self.config["log_keepalives"]
and self.config["log_keepalive_plugin_details"]
):
self.logger.out(
result.message + f" [-{result.health_delta}]",
state="t",
@ -376,13 +379,6 @@ class MonitoringInstance(object):
if total_health < 0:
total_health = 0
if total_health > 90:
health_colour = self.logger.fmt_green
elif total_health > 50:
health_colour = self.logger.fmt_yellow
else:
health_colour = self.logger.fmt_red
self.zkhandler.write(
[
(
@ -391,10 +387,6 @@ class MonitoringInstance(object):
),
]
)
self.logger.out(
f"Node health: {health_colour}{total_health}%{self.logger.fmt_end}",
state="t",
)
def run_cleanup(self, plugin):
return plugin.cleanup()

View File

@ -67,6 +67,7 @@ class NodeInstance(object):
self.network_list = []
self.domain_list = []
# Node resources
self.health = 100
self.domains_count = 0
self.memused = 0
self.memfree = 0
@ -224,6 +225,28 @@ class NodeInstance(object):
)
self.flush_thread.start()
@self.zkhandler.zk_conn.DataWatch(
self.zkhandler.schema.path("node.monitoring.health", self.name)
)
def watch_node_health(data, stat, event=""):
if event and event.type == "DELETED":
# The key has been deleted after existing before; terminate this watcher
# because this class instance is about to be reaped in Daemon.py
return False
try:
data = data.decode("ascii")
except AttributeError:
data = 100
try:
data = int(data)
except ValueError:
pass
if data != self.health:
self.health = data
@self.zkhandler.zk_conn.DataWatch(
self.zkhandler.schema.path("node.memory.free", self.name)
)