etcdserver: improve heartbeat send failures logging

Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
release-3.4
Gyuho Lee 2019-04-19 10:58:17 -07:00
parent 85594ae99c
commit 877f11bed8
1 changed files with 3 additions and 1 deletions

View File

@ -17,6 +17,7 @@ package etcdserver
import ( import (
"encoding/json" "encoding/json"
"expvar" "expvar"
"fmt"
"log" "log"
"sort" "sort"
"sync" "sync"
@ -357,12 +358,13 @@ func (r *raftNode) processMessages(ms []raftpb.Message) []raftpb.Message {
if r.lg != nil { if r.lg != nil {
r.lg.Warn( r.lg.Warn(
"leader failed to send out heartbeat on time; took too long, leader is overloaded likely from slow disk", "leader failed to send out heartbeat on time; took too long, leader is overloaded likely from slow disk",
zap.String("to", fmt.Sprintf("%x", ms[i].To)),
zap.Duration("heartbeat-interval", r.heartbeat), zap.Duration("heartbeat-interval", r.heartbeat),
zap.Duration("expected-duration", 2*r.heartbeat), zap.Duration("expected-duration", 2*r.heartbeat),
zap.Duration("exceeded-duration", exceed), zap.Duration("exceeded-duration", exceed),
) )
} else { } else {
plog.Warningf("failed to send out heartbeat on time (exceeded the %v timeout for %v)", r.heartbeat, exceed) plog.Warningf("failed to send out heartbeat on time (exceeded the %v timeout for %v, to %x)", r.heartbeat, exceed, ms[i].To)
plog.Warningf("server is likely overloaded") plog.Warningf("server is likely overloaded")
} }
heartbeatSendFailures.Inc() heartbeatSendFailures.Inc()