[hw-7] add metrics, tracing

This commit is contained in:
Никита Шубин
2025-07-26 14:15:40 +00:00
parent 342bd3f726
commit 4396bebe80
38 changed files with 717 additions and 36 deletions

View File

@@ -7,6 +7,7 @@ import (
"route256/loms/internal/domain/entity"
"route256/loms/internal/domain/model"
"route256/loms/internal/infra/tracing"
pb "route256/pkg/api/loms/v1"
@@ -56,6 +57,9 @@ func NewLomsService(orderRepo OrderRepository, stockRepo StockRepository, txMana
}
func (s *LomsService) rollbackStocks(ctx context.Context, stocks []*entity.Stock) {
ctx, span := tracing.Tracer().Start(ctx, "rollbackStocks")
defer span.End()
for _, stock := range stocks {
if err := s.stocks.StockCancel(ctx, stock); err != nil {
log.Error().Err(err).Msg("failed to rollback stock")
@@ -117,6 +121,9 @@ func (s *LomsService) createInitial(ctx context.Context, orderReq *pb.OrderCreat
}
func (s *LomsService) OrderCreate(ctx context.Context, orderReq *pb.OrderCreateRequest) (entity.ID, error) {
ctx, span := tracing.Tracer().Start(ctx, "OrderCreate")
defer span.End()
if orderReq == nil || orderReq.UserId <= 0 || len(orderReq.Items) == 0 {
return 0, model.ErrInvalidInput
}
@@ -178,6 +185,9 @@ func (s *LomsService) OrderCreate(ctx context.Context, orderReq *pb.OrderCreateR
}
func (s *LomsService) OrderInfo(ctx context.Context, orderID entity.ID) (*entity.Order, error) {
ctx, span := tracing.Tracer().Start(ctx, "OrderInfo")
defer span.End()
if orderID <= 0 {
return nil, model.ErrInvalidInput
}
@@ -186,6 +196,9 @@ func (s *LomsService) OrderInfo(ctx context.Context, orderID entity.ID) (*entity
}
func (s *LomsService) OrderPay(ctx context.Context, orderID entity.ID) error {
ctx, span := tracing.Tracer().Start(ctx, "OrderPay")
defer span.End()
if orderID <= 0 {
return model.ErrInvalidInput
}
@@ -217,6 +230,9 @@ func (s *LomsService) OrderPay(ctx context.Context, orderID entity.ID) error {
}
func (s *LomsService) OrderCancel(ctx context.Context, orderID entity.ID) error {
ctx, span := tracing.Tracer().Start(ctx, "OrderCancel")
defer span.End()
if orderID <= 0 {
return model.ErrInvalidInput
}
@@ -249,6 +265,9 @@ func (s *LomsService) OrderCancel(ctx context.Context, orderID entity.ID) error
}
func (s *LomsService) StocksInfo(ctx context.Context, sku entity.Sku) (uint32, error) {
ctx, span := tracing.Tracer().Start(ctx, "StocksInfo")
defer span.End()
if sku <= 0 {
return 0, model.ErrInvalidInput
}