forked from TrueCloudLab/frostfs-node
[#242] node: Add tracing spans
Add tracing spans for PUT requests. Add tracing spans for DELETE requests. Add tracing spans for SELECT requests. Signed-off-by: Dmitrii Stepanov <d.stepanov@yadro.com>
This commit is contained in:
parent
200fc8b882
commit
d62c6e4ce6
122 changed files with 863 additions and 417 deletions
|
@ -5,6 +5,7 @@ import (
|
|||
"fmt"
|
||||
|
||||
"git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/object"
|
||||
"git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/pkg/tracing"
|
||||
"git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/rpc"
|
||||
rawclient "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/rpc/client"
|
||||
sessionV2 "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/session"
|
||||
|
@ -15,6 +16,8 @@ import (
|
|||
internalclient "git.frostfs.info/TrueCloudLab/frostfs-node/pkg/services/object/internal/client"
|
||||
putsvc "git.frostfs.info/TrueCloudLab/frostfs-node/pkg/services/object/put"
|
||||
"git.frostfs.info/TrueCloudLab/frostfs-node/pkg/services/object/util"
|
||||
"go.opentelemetry.io/otel/attribute"
|
||||
"go.opentelemetry.io/otel/trace"
|
||||
)
|
||||
|
||||
type streamer struct {
|
||||
|
@ -34,6 +37,9 @@ type sizes struct {
|
|||
}
|
||||
|
||||
func (s *streamer) Send(ctx context.Context, req *object.PutRequest) (err error) {
|
||||
ctx, span := tracing.StartSpanFromContext(ctx, "putv2.streamer.Send")
|
||||
defer span.End()
|
||||
|
||||
switch v := req.GetBody().GetObjectPart().(type) {
|
||||
case *object.PutObjectPartInit:
|
||||
var initPrm *putsvc.PutInitPrm
|
||||
|
@ -43,7 +49,7 @@ func (s *streamer) Send(ctx context.Context, req *object.PutRequest) (err error)
|
|||
return err
|
||||
}
|
||||
|
||||
if err = s.stream.Init(initPrm); err != nil {
|
||||
if err = s.stream.Init(ctx, initPrm); err != nil {
|
||||
err = fmt.Errorf("(%T) could not init object put stream: %w", s, err)
|
||||
}
|
||||
|
||||
|
@ -105,6 +111,9 @@ func (s *streamer) Send(ctx context.Context, req *object.PutRequest) (err error)
|
|||
}
|
||||
|
||||
func (s *streamer) CloseAndRecv(ctx context.Context) (*object.PutResponse, error) {
|
||||
ctx, span := tracing.StartSpanFromContext(ctx, "putv2.streamer.CloseAndRecv")
|
||||
defer span.End()
|
||||
|
||||
if s.saveChunks {
|
||||
// check payload size correctness
|
||||
if s.writtenPayload != s.payloadSz {
|
||||
|
@ -121,6 +130,9 @@ func (s *streamer) CloseAndRecv(ctx context.Context) (*object.PutResponse, error
|
|||
}
|
||||
|
||||
func (s *streamer) relayRequest(ctx context.Context, info client.NodeInfo, c client.MultiAddressClient) error {
|
||||
ctx, span := tracing.StartSpanFromContext(ctx, "putv2.streamer.relayRequest")
|
||||
defer span.End()
|
||||
|
||||
// open stream
|
||||
resp := new(object.PutResponse)
|
||||
|
||||
|
@ -129,6 +141,12 @@ func (s *streamer) relayRequest(ctx context.Context, info client.NodeInfo, c cli
|
|||
var firstErr error
|
||||
|
||||
info.AddressGroup().IterateAddresses(func(addr network.Address) (stop bool) {
|
||||
ctx, span := tracing.StartSpanFromContext(ctx, "putv2.streamer.iterateAddress",
|
||||
trace.WithAttributes(
|
||||
attribute.String("address", addr.String()),
|
||||
))
|
||||
defer span.End()
|
||||
|
||||
var err error
|
||||
|
||||
defer func() {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue