diff mbox series

[ovs-dev] raft: Avoid annoying debug logs if raft is connected.

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

Commit Message

Ilya Maximets Oct. 26, 2020, 12:34 a.m. UTC
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(-)

Comments

Han Zhou Oct. 26, 2020, 1:03 a.m. UTC | #1
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>
Ilya Maximets Oct. 27, 2020, 12:41 p.m. UTC | #2
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 mbox series

Patch

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;
 }