[#1210] reputation: Improve debug logs

Signed-off-by: Pavel Karpy <carpawell@nspcc.ru>
This commit is contained in:
Pavel Karpy 2021-03-01 22:01:45 +03:00 committed by Alex Vanin
parent 0adb29c035
commit 13af4e6046
17 changed files with 188 additions and 60 deletions

View file

@ -108,7 +108,7 @@ func (c *announceContext) announce() {
return
}
c.log.Debug("announcement successfully finished")
c.log.Debug("trust announcement successfully finished")
}
func (c *Controller) acquireAnnouncement(prm StartPrm) *announceContext {
@ -163,9 +163,9 @@ func (c *commonContext) freeAnnouncement() {
c.ctrl.announceMtx.Unlock()
if stopped {
c.log.Debug("announcement successfully interrupted")
c.log.Debug("trust announcement successfully interrupted")
} else {
c.log.Debug("announcement is not started or already interrupted")
c.log.Debug("trust announcement is not started or already interrupted")
}
}
@ -254,9 +254,9 @@ func (c *commonContext) freeReport() {
c.ctrl.reportMtx.Unlock()
if stopped {
c.log.Debug("announcement successfully interrupted")
c.log.Debug("trust announcement successfully interrupted")
} else {
c.log.Debug("announcement is not started or already interrupted")
c.log.Debug("trust announcement is not started or already interrupted")
}
}

View file

@ -2,6 +2,7 @@ package common
import (
"bytes"
"encoding/hex"
"fmt"
"github.com/nspcc-dev/hrw"
@ -58,6 +59,11 @@ func NewManagerBuilder(prm ManagersPrm, opts ...MngOption) ManagerBuilder {
// BuildManagers sorts nodes in NetMap with HRW algorithms and
// takes the next node after the current one as the only manager.
func (mb *managerBuilder) BuildManagers(epoch uint64, p reputation.PeerID) ([]ServerInfo, error) {
mb.log.Debug("start building managers",
zap.Uint64("epoch", epoch),
zap.String("peer", hex.EncodeToString(p.Bytes())),
)
nm, err := mb.nmSrc.GetNetMapByEpoch(epoch)
if err != nil {
return nil, err

View file

@ -43,6 +43,11 @@ func (c *Calculator) Calculate(prm CalculatePrm) {
iter := ctx.I()
log := c.opts.log.With(
zap.Uint64("epoch", ctx.Epoch()),
zap.Uint32("iteration", iter),
)
if iter == 0 {
c.sendInitialValues(ctx)
return
@ -54,7 +59,7 @@ func (c *Calculator) Calculate(prm CalculatePrm) {
consumersIter, err := c.prm.DaughterTrustSource.InitConsumersIterator(ctx)
if err != nil {
c.opts.log.Debug("consumers trust iterator's init failure",
log.Debug("consumers trust iterator's init failure",
zap.String("error", err.Error()),
)
@ -74,7 +79,7 @@ func (c *Calculator) Calculate(prm CalculatePrm) {
})
})
if err != nil {
c.opts.log.Debug("worker pool submit failure",
log.Debug("worker pool submit failure",
zap.String("error", err.Error()),
)
}
@ -83,7 +88,7 @@ func (c *Calculator) Calculate(prm CalculatePrm) {
return nil
})
if err != nil {
c.opts.log.Debug("iterate daughters failed",
log.Debug("iterate daughter's consumers failed",
zap.String("error", err.Error()),
)
}
@ -156,7 +161,7 @@ func (c *Calculator) iterateDaughter(p iterDaughterPrm) {
if p.lastIter {
finalWriter, err := c.prm.FinalResultTarget.InitIntermediateWriter(p.ctx)
if err != nil {
c.opts.log.Debug("init intermediate writer failure",
c.opts.log.Debug("init writer failure",
zap.String("error", err.Error()),
)
@ -176,7 +181,7 @@ func (c *Calculator) iterateDaughter(p iterDaughterPrm) {
} else {
intermediateWriter, err := c.prm.IntermediateValueTarget.InitWriter(p.ctx)
if err != nil {
c.opts.log.Debug("init intermediate writer failure",
c.opts.log.Debug("init writer failure",
zap.String("error", err.Error()),
)
@ -197,7 +202,7 @@ func (c *Calculator) iterateDaughter(p iterDaughterPrm) {
err := intermediateWriter.Write(trust)
if err != nil {
c.opts.log.Debug("write intermediate value failure",
c.opts.log.Debug("write value failure",
zap.String("error", err.Error()),
)
}
@ -213,7 +218,7 @@ func (c *Calculator) iterateDaughter(p iterDaughterPrm) {
err = intermediateWriter.Close()
if err != nil {
c.opts.log.Error(
"could not close intermediate writer",
"could not close writer",
zap.String("error", err.Error()),
)
}
@ -232,7 +237,7 @@ func (c *Calculator) sendInitialValues(ctx Context) {
intermediateWriter, err := c.prm.IntermediateValueTarget.InitWriter(ctx)
if err != nil {
c.opts.log.Debug("init intermediate writer failure",
c.opts.log.Debug("init writer failure",
zap.String("error", err.Error()),
)
@ -259,7 +264,7 @@ func (c *Calculator) sendInitialValues(ctx Context) {
err = intermediateWriter.Write(trust)
if err != nil {
c.opts.log.Debug("write intermediate value failure",
c.opts.log.Debug("write value failure",
zap.String("error", err.Error()),
)
@ -277,7 +282,7 @@ func (c *Calculator) sendInitialValues(ctx Context) {
err = intermediateWriter.Close()
if err != nil {
c.opts.log.Debug("could not close intermediate writer",
c.opts.log.Debug("could not close writer",
zap.String("error", err.Error()),
)
}

View file

@ -4,6 +4,7 @@ import (
"fmt"
"github.com/nspcc-dev/neofs-node/pkg/services/reputation/common"
"github.com/nspcc-dev/neofs-node/pkg/util/logger"
)
// Prm groups the required parameters of the Builder's constructor.
@ -16,6 +17,8 @@ type Prm struct {
//
// Must not be nil.
ManagerBuilder common.ManagerBuilder
Log *logger.Logger
}
// Builder represents component that routes node to its managers.
@ -26,6 +29,7 @@ type Prm struct {
// the Builder is immediately ready to work through API.
type Builder struct {
managerBuilder common.ManagerBuilder
log *logger.Logger
}
const invalidPrmValFmt = "invalid parameter %s (%T):%v"
@ -44,9 +48,12 @@ func New(prm Prm) *Builder {
switch {
case prm.ManagerBuilder == nil:
panicOnPrmValue("ManagerBuilder", prm.ManagerBuilder)
case prm.Log == nil:
panicOnPrmValue("Logger", prm.Log)
}
return &Builder{
managerBuilder: prm.ManagerBuilder,
log: prm.Log,
}
}

View file

@ -5,13 +5,21 @@ import (
"github.com/nspcc-dev/neofs-node/pkg/services/reputation"
"github.com/nspcc-dev/neofs-node/pkg/services/reputation/common"
"go.uber.org/zap"
)
// NextStage builds Manager list for trusted node and returns it directly.
//
// If passed route has more than one point, then endpoint of the route is reached.
func (b *Builder) NextStage(epoch uint64, t reputation.Trust, passed []common.ServerInfo) ([]common.ServerInfo, error) {
if len(passed) > 1 {
passedLen := len(passed)
b.log.Debug("building next stage for trust route",
zap.Uint64("epoch", epoch),
zap.Int("passed_length", passedLen),
)
if passedLen > 1 {
return nil, nil
}

View file

@ -4,6 +4,7 @@ import (
"fmt"
"github.com/nspcc-dev/neofs-node/pkg/services/reputation/common"
"github.com/nspcc-dev/neofs-node/pkg/util/logger"
)
// Prm groups the required parameters of the Builder's constructor.
@ -16,6 +17,8 @@ type Prm struct {
//
// Must not be nil.
ManagerBuilder common.ManagerBuilder
Log *logger.Logger
}
// Builder represents component that routes node to its managers.
@ -26,6 +29,7 @@ type Prm struct {
// the Builder is immediately ready to work through API.
type Builder struct {
managerBuilder common.ManagerBuilder
log *logger.Logger
}
const invalidPrmValFmt = "invalid parameter %s (%T):%v"
@ -44,9 +48,12 @@ func New(prm Prm) *Builder {
switch {
case prm.ManagerBuilder == nil:
panicOnPrmValue("ManagerBuilder", prm.ManagerBuilder)
case prm.Log == nil:
panicOnPrmValue("Logger", prm.Log)
}
return &Builder{
managerBuilder: prm.ManagerBuilder,
log: prm.Log,
}
}

View file

@ -5,13 +5,21 @@ import (
"github.com/nspcc-dev/neofs-node/pkg/services/reputation"
"github.com/nspcc-dev/neofs-node/pkg/services/reputation/common"
"go.uber.org/zap"
)
// NextStage builds Manager list for trusting node and returns it directly.
//
// If passed route has more than one point, then endpoint of the route is reached.
func (b *Builder) NextStage(epoch uint64, t reputation.Trust, passed []common.ServerInfo) ([]common.ServerInfo, error) {
if len(passed) > 1 {
passedLen := len(passed)
b.log.Debug("building next stage for local trust route",
zap.Uint64("epoch", epoch),
zap.Int("passed_length", passedLen),
)
if passedLen > 1 {
return nil, nil
}