Adjust psql check to avoid weird failures
This commit is contained in:
parent
9e2e749c55
commit
ddd9d9ee07
|
@ -55,7 +55,8 @@ class MonitoringPluginScript(MonitoringPlugin):
|
||||||
This step is optional and should be used sparingly.
|
This step is optional and should be used sparingly.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
pass
|
# Prepare the last coordinator state
|
||||||
|
self.last_coordinator_state = None
|
||||||
|
|
||||||
def run(self, coordinator_state=None):
|
def run(self, coordinator_state=None):
|
||||||
"""
|
"""
|
||||||
|
@ -107,11 +108,13 @@ class MonitoringPluginScript(MonitoringPlugin):
|
||||||
this_node_patronictl_status = [p for p in patronictl_status if p["Member"] == self.this_node.name][0]
|
this_node_patronictl_status = [p for p in patronictl_status if p["Member"] == self.this_node.name][0]
|
||||||
self.logger.out(f"{this_node_patronictl_status}", state="d")
|
self.logger.out(f"{this_node_patronictl_status}", state="d")
|
||||||
|
|
||||||
|
# Invalid state, nothing returned; this is a fault
|
||||||
if health_delta == 0 and not this_node_patronictl_status:
|
if health_delta == 0 and not this_node_patronictl_status:
|
||||||
health_delta = 10
|
health_delta = 10
|
||||||
message = "Unable to determine Patroni PostgreSQL node state"
|
message = "Unable to determine Patroni PostgreSQL node state"
|
||||||
|
# We want to check for a non-running Patroni, but not during or immediately after a coordinator
|
||||||
elif health_delta == 0 and this_node_patronictl_status["State"] != "running":
|
# transition. So we wait until 2 runs with the same coordinator state have been completed.
|
||||||
|
elif health_delta == 0 and self.last_coordinator_state == coordinator_state and this_node_patronictl_status["State"] != "running":
|
||||||
health_delta = 10
|
health_delta = 10
|
||||||
message = "Patroni PostgreSQL state is not running"
|
message = "Patroni PostgreSQL state is not running"
|
||||||
|
|
||||||
|
@ -129,6 +132,9 @@ class MonitoringPluginScript(MonitoringPlugin):
|
||||||
# Set the message in our local PluginResult object
|
# Set the message in our local PluginResult object
|
||||||
self.plugin_result.set_message(message)
|
self.plugin_result.set_message(message)
|
||||||
|
|
||||||
|
# Update the last coordinator state
|
||||||
|
self.last_coordinator_state = coordinator_state
|
||||||
|
|
||||||
# Return our local PluginResult object
|
# Return our local PluginResult object
|
||||||
return self.plugin_result
|
return self.plugin_result
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue