Skip to content

Commit

Permalink
Log repeated "no action" messages at a DEBUG level
Browse files Browse the repository at this point in the history
Many people have to tune Patroni log level to WARNING, since messages like "no action: I am (patroni1), the leader with the lock" are emitted every HA loop run at an INFO level. Those are noisy and not terribly useful, as Patroni emits a different message anyway when the status quo changes.

This commit changes the default behavior by showing the "no action" message as an INFO for the first time, demoting subsequent repeated "no action" messages to DEBUG.
  • Loading branch information
alexeyklyukin committed Sep 17, 2024
1 parent cb8ae49 commit 489af50
Showing 1 changed file with 11 additions and 1 deletion.
12 changes: 11 additions & 1 deletion patroni/__main__.py
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,8 @@ def __init__(self, config: 'Config') -> None:
self.next_run = time.time()
self.scheduled_restart: Dict[str, Any] = {}

self._last_cycle_info = ""

def ensure_dcs_access(self, sleep_time: int = 5) -> 'Cluster':
"""Continuously attempt to retrieve cluster from DCS with delay.
Expand Down Expand Up @@ -209,7 +211,15 @@ def _run_cycle(self) -> None:
the change and cache the new dynamic configuration values in ``patroni.dynamic.json`` file under Postgres data
directory.
"""
logger.info(self.ha.run_cycle())

info: str = self.ha.run_cycle()
# if we report no action, show this message as INFO only when emitted for the first time
# demote it to DEBUG afterwards as long as it repeats
log_ha_action = logger.info
if info.startswith('no action.') or info.startswith('PAUSE: no action.') and self._last_cycle_info == info:
log_ha_action = logger.debug

log_ha_action(info)

if self.dcs.cluster and self.dcs.cluster.config and self.dcs.cluster.config.data \
and self.config.set_dynamic_configuration(self.dcs.cluster.config):
Expand Down

0 comments on commit 489af50

Please sign in to comment.