diff --git a/core/task.go b/core/task.go index 1d997fc..0dd908f 100644 --- a/core/task.go +++ b/core/task.go @@ -36,7 +36,7 @@ func HandleTask(ctx context.Context, device config.DeviceMapping, task dto.Task) log.Printf("获取文件列表失败, DeviceNo: %s, 错误: %v\n", device.DeviceNo, err) return nil, err } - files := util.FilterAndSortFiles(fileList, task.StartTime, task.EndTime) + files := util.FilterAndSortFiles(subCtx, fileList, task.StartTime, task.EndTime) if len(files) == 0 { span.SetStatus(codes.Error, "没有找到文件") return nil, fmt.Errorf("没有找到文件") diff --git a/util/file_filter.go b/util/file_filter.go index 9c8b76d..e623bb6 100644 --- a/util/file_filter.go +++ b/util/file_filter.go @@ -2,11 +2,16 @@ package util import ( "ZhenTuLocalPassiveAdapter/dto" + "context" + "go.opentelemetry.io/otel/attribute" "sort" "time" ) -func FilterAndSortFiles(fileList []dto.File, beginDt, endDt time.Time) []dto.File { +func FilterAndSortFiles(ctx context.Context, fileList []dto.File, beginDt, endDt time.Time) []dto.File { + _, span := tracer.Start(ctx, "FilterAndSortFiles") + defer span.End() + span.SetAttributes(attribute.Int("files.count", len(fileList))) var filteredFiles []dto.File for _, file := range fileList { @@ -37,6 +42,6 @@ func FilterAndSortFiles(fileList []dto.File, beginDt, endDt time.Time) []dto.Fil sort.Slice(filteredFiles, func(i, j int) bool { return filteredFiles[i].StartTime.Unix() <= filteredFiles[j].StartTime.Unix() }) - + span.SetAttributes(attribute.String("files.filtered", ToJson(filteredFiles))) return filteredFiles }