diff --git a/src/views/dashboard/related/trace/components/D3Graph/Index.vue b/src/views/dashboard/related/trace/components/D3Graph/Index.vue index 110da6d2..a04e2280 100644 --- a/src/views/dashboard/related/trace/components/D3Graph/Index.vue +++ b/src/views/dashboard/related/trace/components/D3Graph/Index.vue @@ -16,10 +16,13 @@ limitations under the License. -->
-
Span Details
-
{{ - `Parent Span: ${span.endpointName} -> Start Time: ${visDate(span.startTime)}` - }}
+
Span details
+
+ {{ `Parent span: ${span.endpointName} -> Start time: ${visDate(span.startTime)}` }} +
+
+ {{ `Ref to span: ${span.endpointName} -> Start time: ${visDate(span.startTime)}` }} +
const tree = ref>(null); const traceGraph = ref>(null); const parentSpans = ref>([]); + const refParentSpans = ref>([]); const debounceFunc = debounce(draw, 500); const visDate = (date: number, pattern = "YYYY-MM-DD HH:mm:ss:SSS") => dayjs(date).format(pattern); @@ -110,13 +114,15 @@ limitations under the License. --> } function handleSelectSpan(i: Recordable) { const spans = []; + const refSpans = []; parentSpans.value = []; + refParentSpans.value = []; currentSpan.value = i.data; if (!currentSpan.value) { return; } for (const ref of currentSpan.value.refs || []) { - spans.push(ref); + refSpans.push(ref); } if (currentSpan.value.parentSpanId > -1) { spans.push({ @@ -125,6 +131,12 @@ limitations under the License. --> traceId: currentSpan.value.traceId, }); } + for (const span of refSpans) { + const item = props.data.find( + (d) => d.segmentId === span.parentSegmentId && d.spanId === span.parentSpanId && d.traceId === span.traceId, + ); + item && refParentSpans.value.push(item); + } for (const span of spans) { const item = props.data.find( (d) => d.segmentId === span.parentSegmentId && d.spanId === span.parentSpanId && d.traceId === span.traceId, diff --git a/src/views/dashboard/related/trace/utils/d3-trace-list.ts b/src/views/dashboard/related/trace/utils/d3-trace-list.ts index 977429c1..5b44857c 100644 --- a/src/views/dashboard/related/trace/utils/d3-trace-list.ts +++ b/src/views/dashboard/related/trace/utils/d3-trace-list.ts @@ -172,7 +172,7 @@ export default class ListGraph { d3.select("#trace-action-box") .style("display", "block") .style("left", `${offsetX + 30}px`) - .style("top", `${offsetY + 30}px`); + .style("top", `${offsetY + 40}px`); t.selectedNode = d3.select(this); if (t.handleSelectSpan) { t.handleSelectSpan(d);