From 24390fdec86ac4c5bbd0459c69d69ee085bb739a Mon Sep 17 00:00:00 2001 From: Denis Kirillov Date: Thu, 18 May 2023 17:51:46 +0300 Subject: [PATCH] [#110] tree: Add more logs for switching tree endpoints Signed-off-by: Denis Kirillov --- internal/frostfs/services/tree_client_grpc.go | 34 ++++++++++++++----- 1 file changed, 26 insertions(+), 8 deletions(-) diff --git a/internal/frostfs/services/tree_client_grpc.go b/internal/frostfs/services/tree_client_grpc.go index 9e544c9a..46e9f618 100644 --- a/internal/frostfs/services/tree_client_grpc.go +++ b/internal/frostfs/services/tree_client_grpc.go @@ -145,8 +145,11 @@ func (c *ServiceClientGRPC) GetNodes(ctx context.Context, p *tree.GetNodesParams return nil, err } + log := c.log.With(zap.String("request_id", api.GetRequestID(ctx)), zap.String("tree", p.TreeID), + zap.String("method", "GetNodeByPath")) + var resp *grpcService.GetNodeByPathResponse - if err := c.requestWithRetry(func(client treeClient) (inErr error) { + if err := c.requestWithRetry(log, func(client treeClient) (inErr error) { resp, inErr = client.service.GetNodeByPath(ctx, request) return handleError("failed to get node by path", inErr) }); err != nil { @@ -181,8 +184,11 @@ func (c *ServiceClientGRPC) GetSubTree(ctx context.Context, bktInfo *data.Bucket return nil, err } + log := c.log.With(zap.String("request_id", api.GetRequestID(ctx)), zap.String("tree", treeID), + zap.String("method", "GetSubTree")) + var cli grpcService.TreeService_GetSubTreeClient - if err := c.requestWithRetry(func(client treeClient) (inErr error) { + if err := c.requestWithRetry(log, func(client treeClient) (inErr error) { cli, inErr = client.service.GetSubTree(ctx, request) return handleError("failed to get sub tree client", inErr) }); err != nil { @@ -222,8 +228,11 @@ func (c *ServiceClientGRPC) AddNode(ctx context.Context, bktInfo *data.BucketInf return 0, err } + log := c.log.With(zap.String("request_id", api.GetRequestID(ctx)), zap.String("tree", treeID), + zap.String("method", "Add")) + var resp *grpcService.AddResponse - if err := c.requestWithRetry(func(client treeClient) (inErr error) { + if err := c.requestWithRetry(log, func(client treeClient) (inErr error) { resp, inErr = client.service.Add(ctx, request) return handleError("failed to add node", inErr) }); err != nil { @@ -254,8 +263,11 @@ func (c *ServiceClientGRPC) AddNodeByPath(ctx context.Context, bktInfo *data.Buc return 0, err } + log := c.log.With(zap.String("request_id", api.GetRequestID(ctx)), zap.String("tree", treeID), + zap.String("method", "AddByPath")) + var resp *grpcService.AddByPathResponse - if err := c.requestWithRetry(func(client treeClient) (inErr error) { + if err := c.requestWithRetry(log, func(client treeClient) (inErr error) { resp, inErr = client.service.AddByPath(ctx, request) return handleError("failed to add node by path", inErr) }); err != nil { @@ -294,7 +306,10 @@ func (c *ServiceClientGRPC) MoveNode(ctx context.Context, bktInfo *data.BucketIn return err } - return c.requestWithRetry(func(client treeClient) error { + log := c.log.With(zap.String("request_id", api.GetRequestID(ctx)), zap.String("tree", treeID), + zap.String("method", "Move")) + + return c.requestWithRetry(log, func(client treeClient) error { if _, err := client.service.Move(ctx, request); err != nil { return handleError("failed to move node", err) } @@ -320,7 +335,10 @@ func (c *ServiceClientGRPC) RemoveNode(ctx context.Context, bktInfo *data.Bucket return err } - return c.requestWithRetry(func(client treeClient) error { + log := c.log.With(zap.String("request_id", api.GetRequestID(ctx)), zap.String("tree", treeID), + zap.String("method", "Remove")) + + return c.requestWithRetry(log, func(client treeClient) error { if _, err := client.service.Remove(ctx, request); err != nil { return handleError("failed to remove node", err) } @@ -328,7 +346,7 @@ func (c *ServiceClientGRPC) RemoveNode(ctx context.Context, bktInfo *data.Bucket }) } -func (c *ServiceClientGRPC) requestWithRetry(fn func(client treeClient) error) (err error) { +func (c *ServiceClientGRPC) requestWithRetry(log *zap.Logger, fn func(client treeClient) error) (err error) { start := int(atomic.LoadInt32(&c.startIndex)) for i := start; i < start+len(c.clients); i++ { index := i % len(c.clients) @@ -337,7 +355,7 @@ func (c *ServiceClientGRPC) requestWithRetry(fn func(client treeClient) error) ( atomic.StoreInt32(&c.startIndex, int32(index)) return err } - c.log.Debug("tree request error", zap.String("address", c.clients[index].address), zap.Error(err)) + log.Debug("tree request error", zap.String("address", c.clients[index].address), zap.Error(err)) } return err