[#1759] services/tree: Make logs more descriptive

Signed-off-by: Evgenii Stratonikov <evgeniy@morphbits.ru>
remotes/fyrchik/regions
Evgenii Stratonikov 2022-09-07 10:25:03 +03:00 committed by LeL
parent 74c861342e
commit 0140ac354b
2 changed files with 15 additions and 6 deletions

View File

@ -2,6 +2,7 @@ package tree
import (
"context"
"errors"
"fmt"
"strings"
"sync"
@ -30,6 +31,8 @@ const (
defaultReconnectInterval = time.Second * 15
)
var errRecentlyFailed = errors.New("client has recently failed")
func (c *clientCache) init() {
l, _ := simplelru.NewLRU(defaultClientCacheSize, func(key, value interface{}) {
_ = value.(*grpc.ClientConn).Close()
@ -46,8 +49,8 @@ func (c *clientCache) get(ctx context.Context, netmapAddr string) (TreeServiceCl
item := ccInt.(cacheItem)
if item.cc == nil {
if d := time.Since(item.lastTry); d < defaultReconnectInterval {
return nil, fmt.Errorf("skip connecting to %s (time since last error %s)",
netmapAddr, d)
return nil, fmt.Errorf("%w: %s till the next reconnection to %s",
errRecentlyFailed, d, netmapAddr)
}
} else {
if s := item.cc.GetState(); s == connectivity.Idle || s == connectivity.Ready {

View File

@ -4,6 +4,7 @@ import (
"context"
"crypto/sha256"
"encoding/hex"
"errors"
"fmt"
"time"
@ -56,10 +57,15 @@ func (s *Service) replicationWorker() {
})
if lastErr != nil {
s.log.Warn("failed to sent update to the node",
zap.String("last_error", lastErr.Error()),
zap.String("address", lastAddr),
zap.String("key", hex.EncodeToString(task.n.PublicKey())))
if errors.Is(lastErr, errRecentlyFailed) {
s.log.Debug("do not send update to the node",
zap.String("last_error", lastErr.Error()))
} else {
s.log.Warn("failed to sent update to the node",
zap.String("last_error", lastErr.Error()),
zap.String("address", lastAddr),
zap.String("key", hex.EncodeToString(task.n.PublicKey())))
}
}
}
}