Skip to content

Commit 02bd42f

Browse files
committed
Skip logging peer events unless leadership changes
The default logger only outputs peer events when something changed: either the peer became leader or lost the leader. Closes #1274
1 parent 3ae8122 commit 02bd42f

File tree

1 file changed

+22
-19
lines changed

1 file changed

+22
-19
lines changed

lib/oban/telemetry.ex

Lines changed: 22 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ defmodule Oban.Telemetry do
5555
Raised exceptions are passes as is, crashes are wrapped in an `Oban.CrashError`, timeouts in
5656
`Oban.TimeoutError`, and all other errors are normalized into an `Oban.PerformError`.
5757
58-
* `:stacktrace` — the `t:Exception.stacktrace/0` for crashes or raised exceptions. Failures from
58+
* `:stacktrace` — the `t:Exception.stacktrace/0` for crashes or raised exceptions. Failures from
5959
manual error returns won't contain any application code entries and may have an empty
6060
stacktrace.
6161
@@ -524,25 +524,28 @@ defmodule Oban.Telemetry do
524524
end
525525

526526
def handle_event([:oban, :peer, :election, :stop], _measure, meta, opts) do
527-
log(opts, fn ->
528-
%{leader: leader, was_leader: was_leader} = meta
529-
530-
message =
531-
cond do
532-
leader and was_leader -> "peer remained leader"
533-
leader and not was_leader -> "peer became leader"
534-
not leader and was_leader -> "peer is no longer leader"
535-
true -> "peer is not leader"
536-
end
527+
%{leader: leader, was_leader: was_leader} = meta
537528

538-
%{
539-
event: "peer:election",
540-
leader: leader,
541-
message: message,
542-
node: meta.conf.node,
543-
was_leader: was_leader
544-
}
545-
end)
529+
message =
530+
cond do
531+
leader and not was_leader -> "peer became leader"
532+
not leader and was_leader -> "peer is no longer leader"
533+
true -> :ignore
534+
end
535+
536+
if message != :ignore do
537+
log(opts, fn ->
538+
%{
539+
event: "peer:election",
540+
leader: leader,
541+
message: message,
542+
node: meta.conf.node,
543+
was_leader: was_leader
544+
}
545+
end)
546+
else
547+
:ok
548+
end
546549
end
547550

548551
def handle_event([:oban, :plugin, :exception], measure, meta, opts) do

0 commit comments

Comments
 (0)