Message ID | 20201026003457.196856-1-i.maximets@ovn.org |
---|---|
State | Accepted |
Headers | show |
Series | [ovs-dev] raft: Avoid annoying debug logs if raft is connected. | expand |
On Sun, Oct 25, 2020 at 5:35 PM Ilya Maximets <i.maximets@ovn.org> wrote: > > If debug logs enabled, "raft_is_connected: true" printed on every > call to raft_is_connected() which is way too frequently. > These messages are not very informative and only litters the log. > > Let's log only disconnected state in a rate-limited way and only > log positive case once at the moment cluster becomes connected. > > Fixes: 923f01cad678 ("raft.c: Set candidate_retrying if no leader elected since last election.") > Signed-off-by: Ilya Maximets <i.maximets@ovn.org> > --- > ovsdb/raft.c | 11 ++++++++++- > 1 file changed, 10 insertions(+), 1 deletion(-) > > diff --git a/ovsdb/raft.c b/ovsdb/raft.c > index 728d60175..657eed813 100644 > --- a/ovsdb/raft.c > +++ b/ovsdb/raft.c > @@ -1044,13 +1044,22 @@ raft_get_memory_usage(const struct raft *raft, struct simap *usage) > bool > raft_is_connected(const struct raft *raft) > { > + static bool last_state = false; > bool ret = (!raft->candidate_retrying > && !raft->joining > && !raft->leaving > && !raft->left > && !raft->failed > && raft->ever_had_leader); > - VLOG_DBG("raft_is_connected: %s\n", ret? "true": "false"); > + > + if (!ret) { > + static struct vlog_rate_limit rl = VLOG_RATE_LIMIT_INIT(5, 5); > + VLOG_DBG_RL(&rl, "raft_is_connected: false"); > + } else if (!last_state) { > + VLOG_DBG("raft_is_connected: true"); > + } > + last_state = ret; > + > return ret; > } > > -- > 2.25.4 > Acked-by: Han Zhou <hzhou@ovn.org>
On 10/26/20 2:03 AM, Han Zhou wrote: > > > On Sun, Oct 25, 2020 at 5:35 PM Ilya Maximets <i.maximets@ovn.org <mailto:i.maximets@ovn.org>> wrote: >> >> If debug logs enabled, "raft_is_connected: true" printed on every >> call to raft_is_connected() which is way too frequently. >> These messages are not very informative and only litters the log. >> >> Let's log only disconnected state in a rate-limited way and only >> log positive case once at the moment cluster becomes connected. >> >> Fixes: 923f01cad678 ("raft.c: Set candidate_retrying if no leader elected since last election.") >> Signed-off-by: Ilya Maximets <i.maximets@ovn.org <mailto:i.maximets@ovn.org>> >> --- >> ovsdb/raft.c | 11 ++++++++++- >> 1 file changed, 10 insertions(+), 1 deletion(-) >> >> diff --git a/ovsdb/raft.c b/ovsdb/raft.c >> index 728d60175..657eed813 100644 >> --- a/ovsdb/raft.c >> +++ b/ovsdb/raft.c >> @@ -1044,13 +1044,22 @@ raft_get_memory_usage(const struct raft *raft, struct simap *usage) >> bool >> raft_is_connected(const struct raft *raft) >> { >> + static bool last_state = false; >> bool ret = (!raft->candidate_retrying >> && !raft->joining >> && !raft->leaving >> && !raft->left >> && !raft->failed >> && raft->ever_had_leader); >> - VLOG_DBG("raft_is_connected: %s\n", ret? "true": "false"); >> + >> + if (!ret) { >> + static struct vlog_rate_limit rl = VLOG_RATE_LIMIT_INIT(5, 5); >> + VLOG_DBG_RL(&rl, "raft_is_connected: false"); >> + } else if (!last_state) { >> + VLOG_DBG("raft_is_connected: true"); >> + } >> + last_state = ret; >> + >> return ret; >> } >> >> -- >> 2.25.4 >> > Acked-by: Han Zhou <hzhou@ovn.org <mailto:hzhou@ovn.org>> > Thanks! Applied to master and backported down to 2.12. Best regards, Ilya Maximets.
diff --git a/ovsdb/raft.c b/ovsdb/raft.c index 728d60175..657eed813 100644 --- a/ovsdb/raft.c +++ b/ovsdb/raft.c @@ -1044,13 +1044,22 @@ raft_get_memory_usage(const struct raft *raft, struct simap *usage) bool raft_is_connected(const struct raft *raft) { + static bool last_state = false; bool ret = (!raft->candidate_retrying && !raft->joining && !raft->leaving && !raft->left && !raft->failed && raft->ever_had_leader); - VLOG_DBG("raft_is_connected: %s\n", ret? "true": "false"); + + if (!ret) { + static struct vlog_rate_limit rl = VLOG_RATE_LIMIT_INIT(5, 5); + VLOG_DBG_RL(&rl, "raft_is_connected: false"); + } else if (!last_state) { + VLOG_DBG("raft_is_connected: true"); + } + last_state = ret; + return ret; }
If debug logs enabled, "raft_is_connected: true" printed on every call to raft_is_connected() which is way too frequently. These messages are not very informative and only litters the log. Let's log only disconnected state in a rate-limited way and only log positive case once at the moment cluster becomes connected. Fixes: 923f01cad678 ("raft.c: Set candidate_retrying if no leader elected since last election.") Signed-off-by: Ilya Maximets <i.maximets@ovn.org> --- ovsdb/raft.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-)