perf:优化链路追踪

This commit is contained in:
hardstylewyl 2025-04-16 15:04:24 +08:00
parent 3754558dce
commit c4a880c7f3
2 changed files with 11 additions and 14 deletions

View File

@ -550,10 +550,8 @@ public class TrackPushEventHandler : ITransientDependency, ICapSubscribe
//轨迹推送失败(被拦截) //轨迹推送失败(被拦截)
private void TrackPushFailedPublicTopic(string failedMessage, TrackPushEvent @event, OrderEntity order) private void TrackPushFailedPublicTopic(string failedMessage, TrackPushEvent @event, OrderEntity order)
{ {
using var activity = ActivityHelper.CreateSpanActivity("TrackPushFailedPublicTopic"); using var activity = ActivityHelper.CreateSpanActivity($"TrackPushFailedPublicTopic-{order.OrderNo}");
activity.SetTag("failedMessage", failedMessage); activity.SetTag("failedMessage", failedMessage);
activity.SetTag("order", order.ToJson());
activity.SetTag("@event", @event.ToJson());
_broadcastingService.TrackPushFailedPubilcTopic(new TrackPushRecordDto _broadcastingService.TrackPushFailedPubilcTopic(new TrackPushRecordDto
{ {
SubSystemCode = @event.SubSystemCode, SubSystemCode = @event.SubSystemCode,
@ -586,7 +584,7 @@ public class TrackPushEventHandler : ITransientDependency, ICapSubscribe
List<dynamic> pushOrUpdateInputs List<dynamic> pushOrUpdateInputs
) )
{ {
using var activity = ActivityHelper.CreateSpanActivity("TrackPushFailedPublicTopic"); using var activity = ActivityHelper.CreateSpanActivity("TrackPushFailedPublicTopic-All");
activity.SetTag("failedMessage", failedMessage.ToJson()); activity.SetTag("failedMessage", failedMessage.ToJson());
activity.SetTag("@event", @event.ToJson()); activity.SetTag("@event", @event.ToJson());
foreach (var pushInput in pushOrUpdateInputs) foreach (var pushInput in pushOrUpdateInputs)

View File

@ -272,6 +272,10 @@ public class TrackUpsertEventHandler : ITransientDependency, ICapSubscribe
var insertTracks = new List<TrackDetailsIndex>(); var insertTracks = new List<TrackDetailsIndex>();
var updateTracks = new List<TrackDetailsIndex>(); var updateTracks = new List<TrackDetailsIndex>();
var operationRecords = new List<OrderOperationRecordIndex>(); var operationRecords = new List<OrderOperationRecordIndex>();
var traceLog = new Dictionary<string, object>
{
{ "@event", @event.ToJson() }
};
foreach (var order in @event.OrderIdentifiers) foreach (var order in @event.OrderIdentifiers)
{ {
// fast path: by update with es id case // fast path: by update with es id case
@ -308,15 +312,12 @@ public class TrackUpsertEventHandler : ITransientDependency, ICapSubscribe
// 修改了extra,要校验修改后的extra是否存在 // 修改了extra,要校验修改后的extra是否存在
|| (!string.IsNullOrWhiteSpace(@event.NewExtra) && x.Extra == @event.NewExtra)).ToList(); || (!string.IsNullOrWhiteSpace(@event.NewExtra) && x.Extra == @event.NewExtra)).ToList();
using var activity = ActivityHelper.CreateSpanActivity("TrackUpsertEventHandler.UpsertTrackAsync");
if (@event.IsAdd) if (@event.IsAdd)
{ {
if (existTracks.Count > 0) if (existTracks.Count > 0)
{ {
_logger.LogInformation("订单已经存在不允许重复的轨迹,不允许重复添加:{@event}", @event); _logger.LogInformation("订单已经存在不允许重复的轨迹,不允许重复添加:{@event}", @event);
activity.SetTag("errorMsg", "订单已经存在不允许重复的轨迹,不允许重复添加"); traceLog.Add($"OrderNo-{order.OrderNo}", "订单已经存在不允许重复的轨迹,不允许重复添加");
activity.SetTag("order", order.ToJson());
activity.SetTag("@event", @event.ToJson());
continue; continue;
} }
@ -328,18 +329,14 @@ public class TrackUpsertEventHandler : ITransientDependency, ICapSubscribe
if (existTracks.Count == 0) if (existTracks.Count == 0)
{ {
_logger.LogInformation("订单不存在轨迹,不允许修改:{@event}", @event); _logger.LogInformation("订单不存在轨迹,不允许修改:{@event}", @event);
activity.SetTag("errorMsg", "订单不存在轨迹,不允许修改"); traceLog.Add($"OrderNo-{order.OrderNo}", "订单不存在轨迹,不允许修改");
activity.SetTag("order", order.ToJson());
activity.SetTag("@event", @event.ToJson());
continue; continue;
} }
if (existTracks.Count > 1) if (existTracks.Count > 1)
{ {
_logger.LogInformation("订单存在多条轨迹不允许修改:{@event}", @event); _logger.LogInformation("订单存在多条轨迹不允许修改:{@event}", @event);
activity.SetTag("errorMsg", "订单存在多条轨迹不允许修改"); traceLog.Add($"OrderNo-{order.OrderNo}", "订单存在多条轨迹不允许修改");
activity.SetTag("order", order.ToJson());
activity.SetTag("@event", @event.ToJson());
continue; continue;
} }
@ -352,6 +349,8 @@ public class TrackUpsertEventHandler : ITransientDependency, ICapSubscribe
canNextOrderIds.Add(order.OrderId); canNextOrderIds.Add(order.OrderId);
} }
ActivityHelper.StartSpanActivity("UpsertTrackAsync", traceLog);
if (updateTracks.Any()) if (updateTracks.Any())
{ {
// 批量差异化更新轨迹 // 批量差异化更新轨迹