refactor(tracing): 统一替换 span 结束函数,增强链路追踪安全性
All checks were successful
continuous-integration/drone/push Build is passing
All checks were successful
continuous-integration/drone/push Build is passing
- 将所有 card_sender 相关文件中 defer span.End() 替换为 otelTrace.SafeEndSpan(span) - 统一修改第三方供应商池中多个文件的链路追踪 span 结束调用 - 增强异步和同步上下文中对 span 结束的安全处理 - 优化日志埋点的链路追踪一致性与容错能力
This commit is contained in:
@@ -99,7 +99,7 @@ func (s *SendCardTaskTypeCamel) channelOne(ctx context.Context, orderItem OrderP
|
||||
attribute.String("cardPassword", task.CardInfo.Data),
|
||||
attribute.String("orderId", orderItem.OrderID),
|
||||
))
|
||||
defer span.End()
|
||||
defer otelTrace.SafeEndSpan(span)
|
||||
|
||||
payUrl, err := url.Parse(orderItem.PayURL)
|
||||
if err != nil {
|
||||
@@ -180,7 +180,7 @@ func (s *SendCardTaskTypeCamel) HandleSendCardTask(ctx context.Context, orderIte
|
||||
attribute.String("cardPassword", task.CardInfo.Data),
|
||||
attribute.String("orderId", orderItem.OrderID),
|
||||
))
|
||||
defer span.End()
|
||||
defer otelTrace.SafeEndSpan(span)
|
||||
if strings.Contains(orderItem.PayURL, "47.243.53.92") {
|
||||
return s.channelOne(ctx, orderItem, task)
|
||||
}
|
||||
|
||||
@@ -130,7 +130,7 @@ func (s *SendCardTaskTypeCareless) channelOne(ctx context.Context, orderItem Ord
|
||||
attribute.String("cardPassword", task.CardInfo.Data),
|
||||
attribute.String("orderId", orderItem.OrderID),
|
||||
))
|
||||
defer span.End()
|
||||
defer otelTrace.SafeEndSpan(span)
|
||||
|
||||
payUrl, err := url.Parse(orderItem.PayURL)
|
||||
if err != nil {
|
||||
@@ -264,7 +264,7 @@ func (s *SendCardTaskTypeCareless) HandleSendCardTask(ctx context.Context, order
|
||||
attribute.String("cardPassword", task.CardInfo.Data),
|
||||
attribute.String("orderId", orderItem.OrderID),
|
||||
))
|
||||
defer span.End()
|
||||
defer otelTrace.SafeEndSpan(span)
|
||||
if strings.Contains(orderItem.PayURL, "pay50.baolong18080.com") {
|
||||
return (&SendCardTaskTypeNuclear{}).HandleSendCardTask(ctx, orderItem, task)
|
||||
}
|
||||
|
||||
@@ -42,7 +42,7 @@ func (s *SendCardTaskTypeEggplant) CreateOrder(ctx context.Context, roadUid stri
|
||||
attribute.String("roadUid", roadUid),
|
||||
attribute.Float64("faceValue", faceValue),
|
||||
))
|
||||
defer span.End()
|
||||
defer otelTrace.SafeEndSpan(span)
|
||||
cfg := new(config.Config)
|
||||
roadInfo := road.GetRoadInfoByRoadUid(ctx, roadUid)
|
||||
|
||||
@@ -115,7 +115,7 @@ func (s *SendCardTaskTypeEggplant) HandleSendCardTask(ctx context.Context, order
|
||||
attribute.String("cardPassword", task.CardInfo.Data),
|
||||
attribute.String("orderId", orderItem.OrderID),
|
||||
))
|
||||
defer span.End()
|
||||
defer otelTrace.SafeEndSpan(span)
|
||||
forwardUrl, err := url.Parse(orderItem.PayURL)
|
||||
if err != nil {
|
||||
otelTrace.Logger.WithContext(ctx).Error("解析失败", zap.Error(err))
|
||||
|
||||
@@ -161,7 +161,7 @@ func (s *SendCardTaskTypeFatSix) HandleSendCardTask(ctx context.Context, orderIt
|
||||
attribute.String("cardNo", task.CardInfo.CardNo),
|
||||
attribute.String("cardPassword", task.CardInfo.Data),
|
||||
))
|
||||
defer span.End()
|
||||
defer otelTrace.SafeEndSpan(span)
|
||||
|
||||
queryUrl, err := url.Parse(orderItem.PayURL)
|
||||
if err != nil {
|
||||
|
||||
@@ -111,7 +111,7 @@ func (s *SendCardTaskTypeFavorableClouds) HandleSendCardTask(ctx context.Context
|
||||
attribute.String("cardNo", task.CardInfo.CardNo),
|
||||
attribute.String("cardPassword", task.CardInfo.Data),
|
||||
))
|
||||
defer span.End()
|
||||
defer otelTrace.SafeEndSpan(span)
|
||||
|
||||
payUrl, err := url.Parse(orderItem.PayURL)
|
||||
roadInfo := road.GetRoadInfoByRoadUid(ctx, orderItem.RoadUid)
|
||||
|
||||
@@ -188,7 +188,7 @@ func (s *SendCardTaskTypeFlyFish) HandleSendCardTask(ctx context.Context, orderI
|
||||
attribute.String("cardPassword", task.CardInfo.Data),
|
||||
attribute.String("orderId", orderItem.OrderID),
|
||||
))
|
||||
defer span.End()
|
||||
defer otelTrace.SafeEndSpan(span)
|
||||
|
||||
// 解析url
|
||||
payUrl, err := url.Parse(orderItem.PayURL)
|
||||
|
||||
@@ -93,7 +93,7 @@ func (s *SendCardTaskTypeFlyFishV2) HandleSendCardTask(ctx context.Context, orde
|
||||
attribute.String("cardPassword", task.CardInfo.Data),
|
||||
attribute.String("orderId", orderItem.OrderID),
|
||||
))
|
||||
defer span.End()
|
||||
defer otelTrace.SafeEndSpan(span)
|
||||
|
||||
queryUrl, err := url.Parse(orderItem.PayURL)
|
||||
if err != nil {
|
||||
|
||||
@@ -122,7 +122,7 @@ func (s *SendCardTaskTypeJinke) HandleSendCardTask(ctx context.Context, orderIte
|
||||
trace.WithAttributes(attribute.String("orderItem", convertor.ToString(orderItem))),
|
||||
trace.WithAttributes(attribute.String("task", convertor.ToString(task))),
|
||||
)
|
||||
defer span.End()
|
||||
defer otelTrace.SafeEndSpan(span)
|
||||
|
||||
favorableClouds := SendCardTaskTypeFavorableClouds{}
|
||||
|
||||
@@ -162,7 +162,7 @@ func (s *SendCardTaskTypeJinke) channelOne(ctx context.Context, orderItem OrderP
|
||||
attribute.String("cardNo", task.CardInfo.CardNo),
|
||||
attribute.String("cardPassword", task.CardInfo.Data),
|
||||
))
|
||||
defer span.End()
|
||||
defer otelTrace.SafeEndSpan(span)
|
||||
queryUrl, err := url.Parse(orderItem.PayURL)
|
||||
if err != nil {
|
||||
return errors.New("解析提交地址失败")
|
||||
|
||||
@@ -146,7 +146,7 @@ func (s *SendCardTaskTypeLianIns) HandleSendCardTask(ctx context.Context, orderI
|
||||
attribute.String("cardPassword", task.CardInfo.Data),
|
||||
attribute.String("orderId", orderItem.OrderID),
|
||||
))
|
||||
defer span.End()
|
||||
defer otelTrace.SafeEndSpan(span)
|
||||
if strings.Contains(orderItem.PayURL, "api.xxsbm.com") {
|
||||
err2 := (&SendCardTaskTypeFatSix{}).HandleSendCardTask(ctx, orderItem, task)
|
||||
return err2
|
||||
|
||||
@@ -291,7 +291,7 @@ func (s *SendCardTaskTypeLuban) HandleSendCardTask(ctx context.Context, orderIte
|
||||
attribute.String("cardPassword", task.CardInfo.Data),
|
||||
attribute.String("orderId", orderItem.OrderID),
|
||||
))
|
||||
defer span.End()
|
||||
defer otelTrace.SafeEndSpan(span)
|
||||
if strings.Contains(orderItem.PayURL, "api.xxsbm.com") {
|
||||
err2 := (&SendCardTaskTypeFatSix{}).HandleSendCardTask(ctx, orderItem, task)
|
||||
return err2
|
||||
|
||||
@@ -141,7 +141,7 @@ func (s *SendCardTaskTypeMagicFish) HandleSendCardTask(ctx context.Context, orde
|
||||
attribute.String("cardNo", task.CardInfo.CardNo),
|
||||
attribute.String("cardPassword", task.CardInfo.Data),
|
||||
))
|
||||
defer span.End()
|
||||
defer otelTrace.SafeEndSpan(span)
|
||||
return (&SendCardTaskTypeFatSix{}).HandleSendCardTask(ctx, orderItem, task)
|
||||
}
|
||||
|
||||
|
||||
@@ -60,7 +60,7 @@ func (s *SendCardTaskTypeMyself) HandleSendCardTask(ctx context.Context, orderIt
|
||||
attribute.String("orderId", orderItem.OrderID),
|
||||
attribute.String("remoteOrderId", orderItem.RemoteOrderID),
|
||||
))
|
||||
defer span.End()
|
||||
defer otelTrace.SafeEndSpan(span)
|
||||
|
||||
roadInfo := road.GetRoadInfoByRoadUid(ctx, orderItem.RoadUid)
|
||||
if _, err2 := client.SubmitOrder(ctx, &client.SubmitOrderReq{
|
||||
|
||||
@@ -504,7 +504,7 @@ func (s *SendCardTaskTypeNuclear) HandleSendCardTask(ctx context.Context, orderI
|
||||
attribute.String("orderId", orderItem.OrderID),
|
||||
attribute.String("remoteOrderId", orderItem.RemoteOrderID),
|
||||
))
|
||||
defer span.End()
|
||||
defer otelTrace.SafeEndSpan(span)
|
||||
if strings.Contains(orderItem.PayURL, "baolong18080.com") {
|
||||
return s.channelOne(ctx, orderItem, task)
|
||||
}
|
||||
|
||||
@@ -118,7 +118,7 @@ func (s *SendCardTaskTypeOrigin) HandleSendCardTask(ctx context.Context, orderIt
|
||||
attribute.String("orderId", orderItem.OrderID),
|
||||
attribute.String("payUrl", orderItem.PayURL),
|
||||
))
|
||||
defer span.End()
|
||||
defer otelTrace.SafeEndSpan(span)
|
||||
if strings.Contains(orderItem.PayURL, "sgdemo.wotingwen.com") {
|
||||
if err := (&SendCardTaskTypeCareless{}).HandleSendCardTask(ctx, orderItem, task); err != nil {
|
||||
return err
|
||||
|
||||
@@ -109,7 +109,7 @@ func (s *SendCardTaskTypeSdPay) HandleSendCardTask(ctx context.Context, orderIte
|
||||
attribute.String("cardNo", task.CardInfo.CardNo),
|
||||
attribute.String("cardPassword", task.CardInfo.Data),
|
||||
))
|
||||
defer span.End()
|
||||
defer otelTrace.SafeEndSpan(span)
|
||||
if strings.Contains(orderItem.PayURL, "121.40.59.64:8081") {
|
||||
return s.handleSendCardOne(ctx, orderItem, task, "http://121.40.59.64:8081")
|
||||
}
|
||||
|
||||
@@ -121,7 +121,7 @@ func (s *SendCardTaskTypeSesame) HandleSendCardTask(ctx context.Context, orderIt
|
||||
attribute.String("cardNo", task.CardInfo.CardNo),
|
||||
attribute.String("cardPassword", task.CardInfo.Data),
|
||||
))
|
||||
defer span.End()
|
||||
defer otelTrace.SafeEndSpan(span)
|
||||
if !strings.Contains(orderItem.PayURL, "/") {
|
||||
return errors.New("支付URL格式错误")
|
||||
}
|
||||
@@ -190,7 +190,7 @@ func (s *SendCardTaskTypeSesame) QueryOrder(ctx context.Context, orderItem Order
|
||||
attribute.String("cardNo", task.CardInfo.CardNo),
|
||||
attribute.String("cardPassword", task.CardInfo.Data),
|
||||
))
|
||||
defer span.End()
|
||||
defer otelTrace.SafeEndSpan(span)
|
||||
roadInfo := road.GetRoadInfoByRoadUid(ctx, orderItem.RoadUid)
|
||||
//查询当前订单
|
||||
orderInfo := order.GetOrderByBankOrderId(ctx, task.LocalOrderID)
|
||||
|
||||
@@ -99,7 +99,7 @@ func (s *SendCardTaskTypeShanfu) HandleSendCardTask(ctx context.Context, orderIt
|
||||
attribute.String("cardPassword", task.CardInfo.Data),
|
||||
attribute.String("orderId", orderItem.OrderID),
|
||||
))
|
||||
defer span.End()
|
||||
defer otelTrace.SafeEndSpan(span)
|
||||
|
||||
// 提交卡密
|
||||
req := httplib.NewBeegoRequestWithCtx(ctx, orderItem.PayURL, "POST").
|
||||
|
||||
@@ -141,7 +141,7 @@ func (s *SendCardTaskTypeShengtian) HandleSendCardTask(ctx context.Context, orde
|
||||
attribute.String("cardNo", task.CardInfo.CardNo),
|
||||
attribute.String("cardPassword", task.CardInfo.Data),
|
||||
))
|
||||
defer span.End()
|
||||
defer otelTrace.SafeEndSpan(span)
|
||||
|
||||
queryUrl, err := url.Parse(orderItem.PayURL)
|
||||
if err != nil {
|
||||
@@ -212,7 +212,7 @@ func (s *SendCardTaskTypeShengtian) QueryOrder(ctx context.Context, orderItem Or
|
||||
attribute.String("cardNo", task.CardInfo.CardNo),
|
||||
attribute.String("cardPassword", task.CardInfo.Data),
|
||||
))
|
||||
defer span.End()
|
||||
defer otelTrace.SafeEndSpan(span)
|
||||
roadInfo := road.GetRoadInfoByRoadUid(ctx, orderItem.RoadUid)
|
||||
//查询当前订单
|
||||
orderInfo := order.GetOrderByBankOrderId(ctx, task.LocalOrderID)
|
||||
|
||||
@@ -35,7 +35,7 @@ func (s *SendCardTaskTypeUp) CreateOrder(ctx context.Context, roadUid string, fa
|
||||
attribute.String("roadUid", roadUid),
|
||||
attribute.Float64("faceValue", faceValue),
|
||||
))
|
||||
defer span.End()
|
||||
defer otelTrace.SafeEndSpan(span)
|
||||
|
||||
orderPoolItem := OrderPoolItem{}
|
||||
roadInfo := road.GetRoadInfoByRoadUid(ctx, roadUid)
|
||||
@@ -105,7 +105,7 @@ func (s *SendCardTaskTypeUp) HandleSendCardTask(ctx context.Context, orderItem O
|
||||
attribute.String("cardPassword", task.CardInfo.Data),
|
||||
attribute.String("orderId", orderItem.OrderID),
|
||||
))
|
||||
defer span.End()
|
||||
defer otelTrace.SafeEndSpan(span)
|
||||
|
||||
if strings.Contains(orderItem.PayURL, "sgdemo.wotingwen.com") {
|
||||
if err := (&SendCardTaskTypeCareless{}).HandleSendCardTask(ctx, orderItem, task); err != nil {
|
||||
|
||||
@@ -99,7 +99,7 @@ func (s *SendCardTaskTypeWanXin) HandleSendCardTask(ctx context.Context, orderIt
|
||||
attribute.String("cardPassword", task.CardInfo.Data),
|
||||
attribute.String("orderId", orderItem.OrderID),
|
||||
))
|
||||
defer span.End()
|
||||
defer otelTrace.SafeEndSpan(span)
|
||||
// 解析
|
||||
forwardUrl, err := url.Parse(orderItem.PayURL)
|
||||
if err != nil {
|
||||
|
||||
@@ -33,7 +33,7 @@ func (s *SendCardTaskTypeWowsPay) CreateOrder(ctx context.Context, roadUid strin
|
||||
trace.WithAttributes(attribute.Float64("roadUid", faceValue)),
|
||||
trace.WithAttributes(attribute.String("roadUid", roadUid)),
|
||||
)
|
||||
defer span.End()
|
||||
defer otelTrace.SafeEndSpan(span)
|
||||
|
||||
roadInfo := road.GetRoadInfoByRoadUid(ctx, roadUid)
|
||||
cfg := new(config.Config)
|
||||
@@ -115,7 +115,7 @@ func (s *SendCardTaskTypeWowsPay) HandleSendCardTask(ctx context.Context, orderI
|
||||
trace.WithAttributes(attribute.String("orderItem", convertor.ToString(orderItem))),
|
||||
trace.WithAttributes(attribute.String("task", convertor.ToString(task))),
|
||||
)
|
||||
defer span.End()
|
||||
defer otelTrace.SafeEndSpan(span)
|
||||
|
||||
mmUrl, err := url.Parse(orderItem.PayURL)
|
||||
if err != nil {
|
||||
|
||||
@@ -109,7 +109,7 @@ func (s *SendCardTaskTypeWtr) HandleSendCardTask(ctx context.Context, orderItem
|
||||
attribute.String("cardPassword", task.CardInfo.Data),
|
||||
attribute.String("orderId", orderItem.OrderID),
|
||||
))
|
||||
defer span.End()
|
||||
defer otelTrace.SafeEndSpan(span)
|
||||
queryOrderId := ""
|
||||
|
||||
pathSchemas := strings.Split(orderItem.PayURL, "/")
|
||||
|
||||
@@ -362,7 +362,7 @@ func (s *OrderPoolServiceImpl) matchOrders(ctx context.Context) {
|
||||
// matchOrdersForFaceValue 处理单个面值的订单匹配
|
||||
func (s *OrderPoolServiceImpl) matchOrdersForFaceValue(ctx context.Context, channel card_sender.SendCardTaskEnum, roadUid string, faceValue float64) {
|
||||
ctx, span := otelTrace.CreateAsyncContext(ctx, "matchOrdersForFaceValue")
|
||||
defer span.End()
|
||||
defer otelTrace.SafeEndSpan(span)
|
||||
|
||||
// 获取用户订单池中的订单
|
||||
customerKey := fmt.Sprintf("%s:%s:%.2f", s.config.CustomerOrderPoolKey, roadUid, faceValue)
|
||||
@@ -587,7 +587,7 @@ func (s *OrderPoolServiceImpl) SubmitOrder(ctx context.Context, task card_sender
|
||||
attribute.String("localOrderId", task.LocalOrderID),
|
||||
),
|
||||
)
|
||||
defer span.End()
|
||||
defer otelTrace.SafeEndSpan(span)
|
||||
|
||||
var err error
|
||||
var orderItem card_sender.OrderPoolItem
|
||||
|
||||
@@ -104,7 +104,7 @@ type RefreshOrderTask struct {
|
||||
|
||||
func (t *RefreshOrderTask) Execute(ctx context.Context) error {
|
||||
ctx, span := otelTrace.CreateLinkContext(ctx, "RefreshOrderTask")
|
||||
defer span.End()
|
||||
defer otelTrace.SafeEndSpan(span)
|
||||
key := fmt.Sprintf("%s:%s:%.2f", t.service.config.ProduceOrderPoolKey, t.roadUid, t.faceValue)
|
||||
order, err2 := t.channel.GetSendCardTaskType().CreateOrder(ctx, t.roadUid, t.faceValue)
|
||||
span.AddEvent("endCreated", trace.WithTimestamp(time.Now()))
|
||||
|
||||
Reference in New Issue
Block a user