diff --git a/internal/frostfs/services/tree_client_grpc.go b/internal/frostfs/services/tree_client_grpc.go index fda70db..70a0e30 100644 --- a/internal/frostfs/services/tree_client_grpc.go +++ b/internal/frostfs/services/tree_client_grpc.go @@ -144,8 +144,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 { @@ -180,8 +183,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 { @@ -221,8 +227,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 { @@ -253,8 +262,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 { @@ -293,7 +305,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) } @@ -319,7 +334,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) } @@ -327,7 +345,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) @@ -336,7 +354,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