This is an automated email from the ASF dual-hosted git repository.

hanahmily pushed a commit to branch api/trace_id
in repository https://gitbox.apache.org/repos/asf/skywalking-banyandb.git

commit 42e8206f29744d8f0c541d33d3e43dafee644c6c
Author: Gao Hongtao <[email protected]>
AuthorDate: Fri Oct 17 20:41:52 2025 +0800

    Enhance trace proto definitions by adding span_id and trace_id fields for 
better identification
---
 api/proto/banyandb/trace/v1/query.proto            |  6 ++--
 banyand/dquery/trace.go                            |  6 ++--
 banyand/liaison/grpc/trace.go                      |  3 +-
 banyand/query/processor.go                         |  6 ++--
 docs/api-reference.md                              |  3 +-
 pkg/query/logical/trace/trace_plan_distributed.go  | 36 ++++++++++------------
 .../data/want/eq_endpoint_order_duration_asc.yml   | 11 +++++++
 .../want/eq_service_instance_order_time_asc.yml    | 20 ++++++++++++
 .../data/want/eq_service_order_timestamp_desc.yml  | 22 +++++++++++++
 test/cases/trace/data/want/eq_trace_id.yml         | 16 +++++++---
 test/cases/trace/data/want/having_query_tag.yml    |  5 ++-
 test/cases/trace/data/want/in_trace_ids.yml        | 15 +++++++++
 test/cases/trace/data/want/multi_group_new_tag.yml | 16 ++++++++++
 .../trace/data/want/multi_group_sort_duration.yml  |  9 ++++++
 .../cases/trace/data/want/multi_group_tag_type.yml | 16 ++++++++++
 .../trace/data/want/multi_group_unchanged.yml      | 16 ++++++++++
 test/cases/trace/data/want/order_duration_desc.yml | 33 ++++++++++++++++++++
 .../cases/trace/data/want/order_timestamp_desc.yml | 33 ++++++++++++++++++++
 .../trace/data/want/order_timestamp_desc_limit.yml |  8 ++++-
 19 files changed, 244 insertions(+), 36 deletions(-)

diff --git a/api/proto/banyandb/trace/v1/query.proto 
b/api/proto/banyandb/trace/v1/query.proto
index d365afd3..97ed0fe2 100644
--- a/api/proto/banyandb/trace/v1/query.proto
+++ b/api/proto/banyandb/trace/v1/query.proto
@@ -32,6 +32,8 @@ message Span {
   repeated model.v1.Tag tags = 1;
   // span is the raw span data.
   bytes span = 2;
+  // span_id is the unique identifier of the span.
+  string span_id = 3;
 }
 
 // InternalTrace is the trace that is used for internal use.
@@ -42,14 +44,14 @@ message InternalTrace {
   string trace_id = 2;
   // key is used for sorting.
   int64 key = 3;
-  // span_ids are the ids of the spans that belong to the trace.
-  repeated string span_ids = 4;
 }
 
 // Trace contains all spans that belong to a single trace ID.
 message Trace {
   // spans is the list of spans that belong to this trace.
   repeated Span spans = 1;
+  // trace_id is the unique identifier of the trace.
+  string trace_id = 2;
 }
 
 // QueryResponse is the response of a query.
diff --git a/banyand/dquery/trace.go b/banyand/dquery/trace.go
index 4c870724..a4a4dd60 100644
--- a/banyand/dquery/trace.go
+++ b/banyand/dquery/trace.go
@@ -174,7 +174,6 @@ func BuildTracesFromResult(resultIterator 
iter.Iterator[model.TraceResult], quer
                trace := &tracev1.InternalTrace{
                        TraceId: result.TID,
                        Spans:   make([]*tracev1.Span, 0),
-                       SpanIds: result.SpanIDs,
                }
                traces = append(traces, trace)
                for i, spanBytes := range result.Spans {
@@ -193,8 +192,9 @@ func BuildTracesFromResult(resultIterator 
iter.Iterator[model.TraceResult], quer
                                }
                        }
                        span := &tracev1.Span{
-                               Tags: traceTags,
-                               Span: spanBytes,
+                               Tags:   traceTags,
+                               Span:   spanBytes,
+                               SpanId: result.SpanIDs[i],
                        }
                        trace.Spans = append(trace.Spans, span)
                }
diff --git a/banyand/liaison/grpc/trace.go b/banyand/liaison/grpc/trace.go
index 02cfb401..56e0a48f 100644
--- a/banyand/liaison/grpc/trace.go
+++ b/banyand/liaison/grpc/trace.go
@@ -374,7 +374,8 @@ func (s *traceService) Query(ctx context.Context, req 
*tracev1.QueryRequest) (re
                traces := make([]*tracev1.Trace, 0, len(d.InternalTraces))
                for _, internalTrace := range d.InternalTraces {
                        trace := &tracev1.Trace{
-                               Spans: internalTrace.Spans,
+                               Spans:   internalTrace.Spans,
+                               TraceId: internalTrace.TraceId,
                        }
                        traces = append(traces, trace)
                }
diff --git a/banyand/query/processor.go b/banyand/query/processor.go
index f0415074..d4a9430e 100644
--- a/banyand/query/processor.go
+++ b/banyand/query/processor.go
@@ -589,15 +589,15 @@ func (p *traceQueryProcessor) 
processTraceResults(resultIterator iter.Iterator[m
                        TraceId: result.TID,
                        Key:     result.Key,
                        Spans:   make([]*tracev1.Span, 0, len(result.Spans)),
-                       SpanIds: result.SpanIDs,
                }
                // Convert each span in the trace result
                for i, spanBytes := range result.Spans {
                        traceTags := p.buildTraceTags(&result, queryCriteria, 
execPlan, i, traceIDInclusionMap, spanIDInclusionMap)
 
                        span := &tracev1.Span{
-                               Tags: traceTags,
-                               Span: spanBytes,
+                               Tags:   traceTags,
+                               Span:   spanBytes,
+                               SpanId: result.SpanIDs[i],
                        }
                        trace.Spans = append(trace.Spans, span)
                }
diff --git a/docs/api-reference.md b/docs/api-reference.md
index 1feb8f86..ab7fb8ba 100644
--- a/docs/api-reference.md
+++ b/docs/api-reference.md
@@ -1568,7 +1568,6 @@ InternalTrace is the trace that is used for internal use.
 | spans | [Span](#banyandb-trace-v1-Span) | repeated | spans are the spans 
that belong to this trace. |
 | trace_id | [string](#string) |  | trace_id is the unique identifier of the 
trace. |
 | key | [int64](#int64) |  | key is used for sorting. |
-| span_ids | [string](#string) | repeated | span_ids are the ids of the spans 
that belong to the trace. |
 
 
 
@@ -1625,6 +1624,7 @@ Span is a single operation within a trace.
 | ----- | ---- | ----- | ----------- |
 | tags | [banyandb.model.v1.Tag](#banyandb-model-v1-Tag) | repeated | tags are 
the indexed tags of the span. |
 | span | [bytes](#bytes) |  | span is the raw span data. |
+| span_id | [string](#string) |  | span_id is the unique identifier of the 
span. |
 
 
 
@@ -1640,6 +1640,7 @@ Trace contains all spans that belong to a single trace ID.
 | Field | Type | Label | Description |
 | ----- | ---- | ----- | ----------- |
 | spans | [Span](#banyandb-trace-v1-Span) | repeated | spans is the list of 
spans that belong to this trace. |
+| trace_id | [string](#string) |  | trace_id is the unique identifier of the 
trace. |
 
 
 
diff --git a/pkg/query/logical/trace/trace_plan_distributed.go 
b/pkg/query/logical/trace/trace_plan_distributed.go
index f21ba423..f9e8e960 100644
--- a/pkg/query/logical/trace/trace_plan_distributed.go
+++ b/pkg/query/logical/trace/trace_plan_distributed.go
@@ -20,7 +20,6 @@ package trace
 import (
        "context"
        "fmt"
-       "slices"
        "time"
 
        "go.uber.org/multierr"
@@ -182,10 +181,16 @@ func (p *distributedPlan) Execute(ctx context.Context) 
(iter.Iterator[model.Trac
                        seen[trace.TraceId] = trace
                        result = append(result, trace)
                } else {
-                       for _, spanID := range trace.SpanIds {
-                               if 
!slices.Contains(seen[trace.TraceId].SpanIds, spanID) {
-                                       seen[trace.TraceId].SpanIds = 
append(seen[trace.TraceId].SpanIds, spanID)
-                                       seen[trace.TraceId].Spans = 
append(seen[trace.TraceId].Spans, trace.Spans...)
+                       for _, span := range trace.Spans {
+                               spanExists := false
+                               for _, existingSpan := range 
seen[trace.TraceId].Spans {
+                                       if existingSpan.SpanId == span.SpanId {
+                                               spanExists = true
+                                               break
+                                       }
+                               }
+                               if !spanExists {
+                                       seen[trace.TraceId].Spans = 
append(seen[trace.TraceId].Spans, span)
                                }
                        }
                }
@@ -359,34 +364,27 @@ func (t *distributedTraceResultIterator) Next() 
(model.TraceResult, bool) {
        t.index++
 
        result := model.TraceResult{
-               TID: trace.TraceId,
+               TID:     trace.TraceId,
+               Spans:   make([][]byte, 0, len(trace.Spans)),
+               SpanIDs: make([]string, 0, len(trace.Spans)),
+               Tags:    make([]model.Tag, 0, len(trace.Spans)),
        }
-
-       // Extract tags and spans from all spans in this trace
-       var allSpans [][]byte
        tagMap := make(map[string][]*modelv1.TagValue)
 
        for _, span := range trace.Spans {
                // Add span data
-               allSpans = append(allSpans, span.Span)
-
+               result.Spans = append(result.Spans, span.Span)
                // Extract tags from this span and aggregate by name
                for _, tag := range span.Tags {
                        tagMap[tag.Key] = append(tagMap[tag.Key], tag.Value)
                }
+               result.SpanIDs = append(result.SpanIDs, span.SpanId)
        }
-
-       // Convert tagMap to []model.Tag
-       var allTags []model.Tag
        for tagName, values := range tagMap {
-               allTags = append(allTags, model.Tag{
+               result.Tags = append(result.Tags, model.Tag{
                        Name:   tagName,
                        Values: values,
                })
        }
-
-       result.Spans = allSpans
-       result.Tags = allTags
-
        return result, true
 }
diff --git a/test/cases/trace/data/want/eq_endpoint_order_duration_asc.yml 
b/test/cases/trace/data/want/eq_endpoint_order_duration_asc.yml
index 5688c750..b6e049c9 100644
--- a/test/cases/trace/data/want/eq_endpoint_order_duration_asc.yml
+++ b/test/cases/trace/data/want/eq_endpoint_order_duration_asc.yml
@@ -18,12 +18,23 @@
 traces:
   - spans:
     - span: trace_005_span_1
+      spanId: span_005_1
     - span: trace_005_span_2
+      spanId: span_005_2
     - span: trace_005_span_3
+      spanId: span_005_3
     - span: trace_005_span_4
+      spanId: span_005_4
+    traceId: trace_005
   - spans:
     - span: trace_001_span_1
+      spanId: span_001_1
     - span: trace_001_span_2
+      spanId: span_001_2
     - span: trace_001_span_3
+      spanId: span_001_3
     - span: trace_001_span_4
+      spanId: span_001_4
     - span: trace_001_span_5
+      spanId: span_001_5
+    traceId: trace_001
diff --git a/test/cases/trace/data/want/eq_service_instance_order_time_asc.yml 
b/test/cases/trace/data/want/eq_service_instance_order_time_asc.yml
index d40bbcda..bc4b55b7 100644
--- a/test/cases/trace/data/want/eq_service_instance_order_time_asc.yml
+++ b/test/cases/trace/data/want/eq_service_instance_order_time_asc.yml
@@ -18,21 +18,41 @@
 traces:
   - spans:
     - span: trace_001_span_1
+      spanId: span_001_1
     - span: trace_001_span_2
+      spanId: span_001_2
     - span: trace_001_span_3
+      spanId: span_001_3
     - span: trace_001_span_4
+      spanId: span_001_4
     - span: trace_001_span_5
+      spanId: span_001_5
+    traceId: trace_001
   - spans:
     - span: trace_002_span_1
+      spanId: span_002_1
     - span: trace_002_span_2
+      spanId: span_002_2
     - span: trace_002_span_3
+      spanId: span_002_3
     - span: trace_002_span_4
+      spanId: span_002_4
+    traceId: trace_002
   - spans:
     - span: trace_003_span_1
+      spanId: span_003_1
     - span: trace_003_span_2
+      spanId: span_003_2
     - span: trace_003_span_3
+      spanId: span_003_3
+    traceId: trace_003
   - spans:
     - span: trace_005_span_1
+      spanId: span_005_1
     - span: trace_005_span_2
+      spanId: span_005_2
     - span: trace_005_span_3
+      spanId: span_005_3
     - span: trace_005_span_4
+      spanId: span_005_4
+    traceId: trace_005
diff --git a/test/cases/trace/data/want/eq_service_order_timestamp_desc.yml 
b/test/cases/trace/data/want/eq_service_order_timestamp_desc.yml
index 79052713..94adecd5 100644
--- a/test/cases/trace/data/want/eq_service_order_timestamp_desc.yml
+++ b/test/cases/trace/data/want/eq_service_order_timestamp_desc.yml
@@ -18,23 +18,45 @@
 traces:
   - spans:
     - span: trace_005_span_1
+      spanId: span_005_1
     - span: trace_005_span_2
+      spanId: span_005_2
     - span: trace_005_span_3
+      spanId: span_005_3
     - span: trace_005_span_4
+      spanId: span_005_4
+    traceId: trace_005
   - spans:
     - span: trace_004_span_1
+      spanId: span_004_1
+    traceId: trace_004
   - spans:
     - span: trace_003_span_1
+      spanId: span_003_1
     - span: trace_003_span_2
+      spanId: span_003_2
     - span: trace_003_span_3
+      spanId: span_003_3
+    traceId: trace_003
   - spans:
     - span: trace_002_span_1
+      spanId: span_002_1
     - span: trace_002_span_2
+      spanId: span_002_2
     - span: trace_002_span_3
+      spanId: span_002_3
     - span: trace_002_span_4
+      spanId: span_002_4
+    traceId: trace_002
   - spans:
     - span: trace_001_span_1
+      spanId: span_001_1
     - span: trace_001_span_2
+      spanId: span_001_2
     - span: trace_001_span_3
+      spanId: span_001_3
     - span: trace_001_span_4
+      spanId: span_001_4
     - span: trace_001_span_5
+      spanId: span_001_5
+    traceId: trace_001
diff --git a/test/cases/trace/data/want/eq_trace_id.yml 
b/test/cases/trace/data/want/eq_trace_id.yml
index afcc47b8..094810fa 100644
--- a/test/cases/trace/data/want/eq_trace_id.yml
+++ b/test/cases/trace/data/want/eq_trace_id.yml
@@ -18,32 +18,38 @@
 traces:
   - spans:
     - span: trace_001_span_1
+      spanId: span_001_1
       tags:
       - key: trace_id
         value:
           str:
-            value: "trace_001"
+            value: trace_001
     - span: trace_001_span_2
+      spanId: span_001_2
       tags:
       - key: trace_id
         value:
           str:
-            value: "trace_001"
+            value: trace_001
     - span: trace_001_span_3
+      spanId: span_001_3
       tags:
       - key: trace_id
         value:
           str:
-            value: "trace_001"
+            value: trace_001
     - span: trace_001_span_4
+      spanId: span_001_4
       tags:
       - key: trace_id
         value:
           str:
-            value: "trace_001"
+            value: trace_001
     - span: trace_001_span_5
+      spanId: span_001_5
       tags:
       - key: trace_id
         value:
           str:
-            value: "trace_001"
+            value: trace_001
+    traceId: trace_001
diff --git a/test/cases/trace/data/want/having_query_tag.yml 
b/test/cases/trace/data/want/having_query_tag.yml
index d17547bd..a17e310a 100644
--- a/test/cases/trace/data/want/having_query_tag.yml
+++ b/test/cases/trace/data/want/having_query_tag.yml
@@ -18,6 +18,7 @@
 traces:
   - spans:
     - span: zipkin_trace_001_span_001
+      spanId: span_001
       tags:
       - key: operation_name
         value:
@@ -39,6 +40,7 @@ traces:
           str:
             value: span_001
     - span: zipkin_trace_001_span_002
+      spanId: span_002
       tags:
       - key: operation_name
         value:
@@ -57,4 +59,5 @@ traces:
       - key: span_id
         value:
           str:
-            value: span_002
\ No newline at end of file
+            value: span_002
+    traceId: zipkin_trace_001
\ No newline at end of file
diff --git a/test/cases/trace/data/want/in_trace_ids.yml 
b/test/cases/trace/data/want/in_trace_ids.yml
index a192e7a3..074d5d69 100644
--- a/test/cases/trace/data/want/in_trace_ids.yml
+++ b/test/cases/trace/data/want/in_trace_ids.yml
@@ -18,76 +18,91 @@
 traces:
   - spans:
     - span: trace_001_span_1
+      spanId: span_001_1
       tags:
       - key: trace_id
         value:
           str:
             value: trace_001
     - span: trace_001_span_2
+      spanId: span_001_2
       tags:
       - key: trace_id
         value:
           str:
             value: trace_001
     - span: trace_001_span_3
+      spanId: span_001_3
       tags:
       - key: trace_id
         value:
           str:
             value: trace_001
     - span: trace_001_span_4
+      spanId: span_001_4
       tags:
       - key: trace_id
         value:
           str:
             value: trace_001
     - span: trace_001_span_5
+      spanId: span_001_5
       tags:
       - key: trace_id
         value:
           str:
             value: trace_001
+    traceId: trace_001
   - spans:
     - span: trace_002_span_1
+      spanId: span_002_1
       tags:
       - key: trace_id
         value:
           str:
             value: trace_002
     - span: trace_002_span_2
+      spanId: span_002_2
       tags:
       - key: trace_id
         value:
           str:
             value: trace_002
     - span: trace_002_span_3
+      spanId: span_002_3
       tags:
       - key: trace_id
         value:
           str:
             value: trace_002
     - span: trace_002_span_4
+      spanId: span_002_4
       tags:
       - key: trace_id
         value:
           str:
             value: trace_002
+    traceId: trace_002
   - spans:
     - span: trace_003_span_1
+      spanId: span_003_1
       tags:
       - key: trace_id
         value:
           str:
             value: trace_003
     - span: trace_003_span_2
+      spanId: span_003_2
       tags:
       - key: trace_id
         value:
           str:
             value: trace_003
     - span: trace_003_span_3
+      spanId: span_003_3
       tags:
       - key: trace_id
         value:
           str:
             value: trace_003
+    traceId: trace_003
diff --git a/test/cases/trace/data/want/multi_group_new_tag.yml 
b/test/cases/trace/data/want/multi_group_new_tag.yml
index b9dfda6c..d0107db4 100644
--- a/test/cases/trace/data/want/multi_group_new_tag.yml
+++ b/test/cases/trace/data/want/multi_group_new_tag.yml
@@ -18,6 +18,7 @@
 traces:
   - spans:
     - span: trace_001_span_1
+      spanId: span_001_1
       tags:
       - key: service_id
         value:
@@ -31,6 +32,7 @@ traces:
           str:
             value: trace_001
     - span: trace_001_span_2
+      spanId: span_001_2
       tags:
       - key: service_id
         value:
@@ -44,6 +46,7 @@ traces:
           str:
             value: trace_001
     - span: trace_001_span_3
+      spanId: span_001_3
       tags:
       - key: service_id
         value:
@@ -57,6 +60,7 @@ traces:
           str:
             value: trace_001
     - span: trace_001_span_4
+      spanId: span_001_4
       tags:
       - key: service_id
         value:
@@ -70,6 +74,7 @@ traces:
           str:
             value: trace_001
     - span: trace_001_span_5
+      spanId: span_001_5
       tags:
       - key: service_id
         value:
@@ -82,8 +87,10 @@ traces:
         value:
           str:
             value: trace_001
+    traceId: trace_001
   - spans:
     - span: trace_002_span_1
+      spanId: span_002_1
       tags:
       - key: service_id
         value:
@@ -97,6 +104,7 @@ traces:
           str:
             value: trace_002
     - span: trace_002_span_2
+      spanId: span_002_2
       tags:
       - key: service_id
         value:
@@ -110,6 +118,7 @@ traces:
           str:
             value: trace_002
     - span: trace_002_span_3
+      spanId: span_002_3
       tags:
       - key: service_id
         value:
@@ -123,6 +132,7 @@ traces:
           str:
             value: trace_002
     - span: trace_002_span_4
+      spanId: span_002_4
       tags:
       - key: service_id
         value:
@@ -135,8 +145,10 @@ traces:
         value:
           str:
             value: trace_002
+    traceId: trace_002
   - spans:
     - span: trace_009_span_1
+      spanId: span_009_1
       tags:
       - key: service_id
         value:
@@ -150,6 +162,7 @@ traces:
           str:
             value: trace_009
     - span: trace_009_span_2
+      spanId: span_009_2
       tags:
       - key: service_id
         value:
@@ -162,8 +175,10 @@ traces:
         value:
           str:
             value: trace_009
+    traceId: trace_009
   - spans:
     - span: trace_010_span_1
+      spanId: span_010_1
       tags:
       - key: service_id
         value:
@@ -177,3 +192,4 @@ traces:
         value:
           str:
             value: trace_010
+    traceId: trace_010
diff --git a/test/cases/trace/data/want/multi_group_sort_duration.yml 
b/test/cases/trace/data/want/multi_group_sort_duration.yml
index 33687ebe..14050fa6 100644
--- a/test/cases/trace/data/want/multi_group_sort_duration.yml
+++ b/test/cases/trace/data/want/multi_group_sort_duration.yml
@@ -18,6 +18,7 @@
 traces:
   - spans:
     - span: trace_010_span_1
+      spanId: span_010_1
       tags:
       - key: duration
         value:
@@ -27,8 +28,10 @@ traces:
         value:
           str:
             value: trace_010
+    traceId: trace_010
   - spans:
     - span: trace_009_span_1
+      spanId: span_009_1
       tags:
       - key: duration
         value:
@@ -39,6 +42,7 @@ traces:
           str:
             value: trace_009
     - span: trace_009_span_2
+      spanId: span_009_2
       tags:
       - key: duration
         value:
@@ -48,8 +52,10 @@ traces:
         value:
           str:
             value: trace_009
+    traceId: trace_009
   - spans:
     - span: trace_003_span_1
+      spanId: span_003_1
       tags:
       - key: duration
         value:
@@ -60,6 +66,7 @@ traces:
           str:
             value: trace_003
     - span: trace_003_span_2
+      spanId: span_003_2
       tags:
       - key: duration
         value:
@@ -70,6 +77,7 @@ traces:
           str:
             value: trace_003
     - span: trace_003_span_3
+      spanId: span_003_3
       tags:
       - key: duration
         value:
@@ -79,3 +87,4 @@ traces:
         value:
           str:
             value: trace_003
+    traceId: trace_003
diff --git a/test/cases/trace/data/want/multi_group_tag_type.yml 
b/test/cases/trace/data/want/multi_group_tag_type.yml
index dc574547..9921b3d0 100644
--- a/test/cases/trace/data/want/multi_group_tag_type.yml
+++ b/test/cases/trace/data/want/multi_group_tag_type.yml
@@ -18,6 +18,7 @@
 traces:
   - spans:
     - span: trace_001_span_1
+      spanId: span_001_1
       tags:
       - key: service_id
         value:
@@ -32,6 +33,7 @@ traces:
           str:
             value: trace_001
     - span: trace_001_span_2
+      spanId: span_001_2
       tags:
       - key: service_id
         value:
@@ -46,6 +48,7 @@ traces:
           str:
             value: trace_001
     - span: trace_001_span_3
+      spanId: span_001_3
       tags:
       - key: service_id
         value:
@@ -60,6 +63,7 @@ traces:
           str:
             value: trace_001
     - span: trace_001_span_4
+      spanId: span_001_4
       tags:
       - key: service_id
         value:
@@ -74,6 +78,7 @@ traces:
           str:
             value: trace_001
     - span: trace_001_span_5
+      spanId: span_001_5
       tags:
       - key: service_id
         value:
@@ -87,8 +92,10 @@ traces:
         value:
           str:
             value: trace_001
+    traceId: trace_001
   - spans:
     - span: trace_002_span_1
+      spanId: span_002_1
       tags:
       - key: service_id
         value:
@@ -103,6 +110,7 @@ traces:
           str:
             value: trace_002
     - span: trace_002_span_2
+      spanId: span_002_2
       tags:
       - key: service_id
         value:
@@ -117,6 +125,7 @@ traces:
           str:
             value: trace_002
     - span: trace_002_span_3
+      spanId: span_002_3
       tags:
       - key: service_id
         value:
@@ -131,6 +140,7 @@ traces:
           str:
             value: trace_002
     - span: trace_002_span_4
+      spanId: span_002_4
       tags:
       - key: service_id
         value:
@@ -144,8 +154,10 @@ traces:
         value:
           str:
             value: trace_002
+    traceId: trace_002
   - spans:
     - span: trace_009_span_1
+      spanId: span_009_1
       tags:
       - key: service_id
         value:
@@ -160,6 +172,7 @@ traces:
           str:
             value: trace_009
     - span: trace_009_span_2
+      spanId: span_009_2
       tags:
       - key: service_id
         value:
@@ -173,8 +186,10 @@ traces:
         value:
           str:
             value: trace_009
+    traceId: trace_009
   - spans:
     - span: trace_010_span_1
+      spanId: span_010_1
       tags:
       - key: service_id
         value:
@@ -188,3 +203,4 @@ traces:
         value:
           str:
             value: trace_010
+    traceId: trace_010
diff --git a/test/cases/trace/data/want/multi_group_unchanged.yml 
b/test/cases/trace/data/want/multi_group_unchanged.yml
index 7e92d342..269eba54 100644
--- a/test/cases/trace/data/want/multi_group_unchanged.yml
+++ b/test/cases/trace/data/want/multi_group_unchanged.yml
@@ -18,6 +18,7 @@
 traces:
   - spans:
     - span: trace_001_span_1
+      spanId: span_001_1
       tags:
       - key: service_id
         value:
@@ -28,6 +29,7 @@ traces:
           str:
             value: trace_001
     - span: trace_001_span_2
+      spanId: span_001_2
       tags:
       - key: service_id
         value:
@@ -38,6 +40,7 @@ traces:
           str:
             value: trace_001
     - span: trace_001_span_3
+      spanId: span_001_3
       tags:
       - key: service_id
         value:
@@ -48,6 +51,7 @@ traces:
           str:
             value: trace_001
     - span: trace_001_span_4
+      spanId: span_001_4
       tags:
       - key: service_id
         value:
@@ -58,6 +62,7 @@ traces:
           str:
             value: trace_001
     - span: trace_001_span_5
+      spanId: span_001_5
       tags:
       - key: service_id
         value:
@@ -67,8 +72,10 @@ traces:
         value:
           str:
             value: trace_001
+    traceId: trace_001
   - spans:
     - span: trace_002_span_1
+      spanId: span_002_1
       tags:
       - key: service_id
         value:
@@ -79,6 +86,7 @@ traces:
           str:
             value: trace_002
     - span: trace_002_span_2
+      spanId: span_002_2
       tags:
       - key: service_id
         value:
@@ -89,6 +97,7 @@ traces:
           str:
             value: trace_002
     - span: trace_002_span_3
+      spanId: span_002_3
       tags:
       - key: service_id
         value:
@@ -99,6 +108,7 @@ traces:
           str:
             value: trace_002
     - span: trace_002_span_4
+      spanId: span_002_4
       tags:
       - key: service_id
         value:
@@ -108,8 +118,10 @@ traces:
         value:
           str:
             value: trace_002
+    traceId: trace_002
   - spans:
     - span: trace_009_span_1
+      spanId: span_009_1
       tags:
       - key: service_id
         value:
@@ -120,6 +132,7 @@ traces:
           str:
             value: trace_009
     - span: trace_009_span_2
+      spanId: span_009_2
       tags:
       - key: service_id
         value:
@@ -129,8 +142,10 @@ traces:
         value:
           str:
             value: trace_009
+    traceId: trace_009
   - spans:
     - span: trace_010_span_1
+      spanId: span_010_1
       tags:
       - key: service_id
         value:
@@ -140,3 +155,4 @@ traces:
         value:
           str:
             value: trace_010
+    traceId: trace_010
diff --git a/test/cases/trace/data/want/order_duration_desc.yml 
b/test/cases/trace/data/want/order_duration_desc.yml
index 3423b8a6..5ef7ab95 100644
--- a/test/cases/trace/data/want/order_duration_desc.yml
+++ b/test/cases/trace/data/want/order_duration_desc.yml
@@ -18,34 +18,67 @@
 traces:
   - spans:
     - span: trace_008_span_1
+      spanId: span_008_1
     - span: trace_008_span_2
+      spanId: span_008_2
     - span: trace_008_span_3
+      spanId: span_008_3
+    traceId: trace_008
   - spans:
     - span: trace_003_span_1
+      spanId: span_003_1
     - span: trace_003_span_2
+      spanId: span_003_2
     - span: trace_003_span_3
+      spanId: span_003_3
+    traceId: trace_003
   - spans:
     - span: trace_006_span_1
+      spanId: span_006_1
     - span: trace_006_span_2
+      spanId: span_006_2
     - span: trace_006_span_3
+      spanId: span_006_3
+    traceId: trace_006
   - spans:
     - span: trace_001_span_1
+      spanId: span_001_1
     - span: trace_001_span_2
+      spanId: span_001_2
     - span: trace_001_span_3
+      spanId: span_001_3
     - span: trace_001_span_4
+      spanId: span_001_4
     - span: trace_001_span_5
+      spanId: span_001_5
+    traceId: trace_001
   - spans:
     - span: trace_005_span_1
+      spanId: span_005_1
     - span: trace_005_span_2
+      spanId: span_005_2
     - span: trace_005_span_3
+      spanId: span_005_3
     - span: trace_005_span_4
+      spanId: span_005_4
+    traceId: trace_005
   - spans:
     - span: trace_002_span_1
+      spanId: span_002_1
     - span: trace_002_span_2
+      spanId: span_002_2
     - span: trace_002_span_3
+      spanId: span_002_3
     - span: trace_002_span_4
+      spanId: span_002_4
+    traceId: trace_002
   - spans:
     - span: trace_007_span_1
+      spanId: span_007_1
     - span: trace_007_span_2
+      spanId: span_007_2
+    traceId: trace_007
   - spans:
     - span: trace_004_span_1
+      spanId: span_004_1
+    traceId: trace_004
diff --git a/test/cases/trace/data/want/order_timestamp_desc.yml 
b/test/cases/trace/data/want/order_timestamp_desc.yml
index 276d23db..4d553b74 100644
--- a/test/cases/trace/data/want/order_timestamp_desc.yml
+++ b/test/cases/trace/data/want/order_timestamp_desc.yml
@@ -18,34 +18,67 @@
 traces:
   - spans:
     - span: trace_008_span_1
+      spanId: span_008_1
     - span: trace_008_span_2
+      spanId: span_008_2
     - span: trace_008_span_3
+      spanId: span_008_3
+    traceId: trace_008
   - spans:
     - span: trace_007_span_1
+      spanId: span_007_1
     - span: trace_007_span_2
+      spanId: span_007_2
+    traceId: trace_007
   - spans:
     - span: trace_006_span_1
+      spanId: span_006_1
     - span: trace_006_span_2
+      spanId: span_006_2
     - span: trace_006_span_3
+      spanId: span_006_3
+    traceId: trace_006
   - spans:
     - span: trace_002_span_1
+      spanId: span_002_1
     - span: trace_002_span_2
+      spanId: span_002_2
     - span: trace_002_span_3
+      spanId: span_002_3
     - span: trace_002_span_4
+      spanId: span_002_4
+    traceId: trace_002
   - spans:
     - span: trace_001_span_4
+      spanId: span_001_4
     - span: trace_001_span_5
+      spanId: span_001_5
     - span: trace_001_span_1
+      spanId: span_001_1
     - span: trace_001_span_2
+      spanId: span_001_2
     - span: trace_001_span_3
+      spanId: span_001_3
+    traceId: trace_001
   - spans:
     - span: trace_005_span_1
+      spanId: span_005_1
     - span: trace_005_span_2
+      spanId: span_005_2
     - span: trace_005_span_3
+      spanId: span_005_3
     - span: trace_005_span_4
+      spanId: span_005_4
+    traceId: trace_005
   - spans:
     - span: trace_004_span_1
+      spanId: span_004_1
+    traceId: trace_004
   - spans:
     - span: trace_003_span_1
+      spanId: span_003_1
     - span: trace_003_span_2
+      spanId: span_003_2
     - span: trace_003_span_3
+      spanId: span_003_3
+    traceId: trace_003
diff --git a/test/cases/trace/data/want/order_timestamp_desc_limit.yml 
b/test/cases/trace/data/want/order_timestamp_desc_limit.yml
index 24b567d7..d0fb9433 100644
--- a/test/cases/trace/data/want/order_timestamp_desc_limit.yml
+++ b/test/cases/trace/data/want/order_timestamp_desc_limit.yml
@@ -18,9 +18,15 @@
 traces:
   - spans:
     - span: trace_008_span_1
+      spanId: span_008_1
     - span: trace_008_span_2
+      spanId: span_008_2
     - span: trace_008_span_3
+      spanId: span_008_3
+    traceId: trace_008
   - spans:
     - span: trace_007_span_1
+      spanId: span_007_1
     - span: trace_007_span_2
-
+      spanId: span_007_2
+    traceId: trace_007

Reply via email to