From d7f4e69cd9bda0ed927400e9429b47aaf0544a19 Mon Sep 17 00:00:00 2001 From: Fine Date: Wed, 23 Nov 2022 12:02:59 +0800 Subject: [PATCH] add event details --- .../trace/components/D3Graph/SpanDetail.vue | 95 ++++++++++++------- 1 file changed, 63 insertions(+), 32 deletions(-) diff --git a/src/views/dashboard/related/trace/components/D3Graph/SpanDetail.vue b/src/views/dashboard/related/trace/components/D3Graph/SpanDetail.vue index a5ef54a5..5405096c 100644 --- a/src/views/dashboard/related/trace/components/D3Graph/SpanDetail.vue +++ b/src/views/dashboard/related/trace/components/D3Graph/SpanDetail.vue @@ -83,6 +83,44 @@ limitations under the License. --> {{ t("relatedTraceLogs") }} + +
+
Name: {{ currentEvent.event || "" }}
+
+ Start Time: + {{ + currentEvent.startTime && currentEvent.startTime.seconds + ? visDate(currentEvent.startTime.seconds) + : "" + }} +
+
+ End Time: + {{ + currentEvent.startTime && currentEvent.endTime.seconds + ? visDate(currentEvent.endTime.seconds) + : "" + }} +
+
+ Summary: + {{(currentEvent.summary || []) + .map((d: any) => d.key + "=" + d.value) + .join("; ")}} +
+
+ Tags: + {{(currentEvent.tags || []) + .map((d: any) => d.key + "=" + d.value) + .join("; ")}} +
+
+
>(null); const visGraph = ref>(null); const pageNum = ref(1); const showRelatedLogs = ref(false); +const showEventDetail = ref(false); +const currentEvent = ref>({}); const pageSize = 10; const total = computed(() => traceStore.traceList.length === pageSize @@ -187,45 +227,36 @@ function visTimeline() { summary: [{ key: "test", value: 123 }], }, ]; - const events = attachedEvents.map((d: SpanAttachedEvent, index: number) => { - return { - id: index + 1, - content: d.event, - start: new Date(Number(d.startTime.seconds)), - end: new Date(Number(d.endTime.seconds)), - data: d, - className: "Normal", - }; - }); + const events: any[] = attachedEvents.map( + (d: SpanAttachedEvent, index: number) => { + return { + id: index + 1, + content: d.event, + start: new Date(Number(d.startTime.seconds)), + end: new Date(Number(d.endTime.seconds)), + ...d, + className: "Normal", + }; + } + ); const items: any = new DataSet(events); const options: any = { height: h, width: "100%", locale: "en", - groupHeightMode: "fitItems", - autoResize: false, - tooltip: { - overflowMethod: "cap", - template(item: SpanAttachedEvent | any) { - const data = item.data || {}; - let tmp = `
Name: ${data.event || ""}
-
Start Time: ${ - data.startTime.seconds ? visDate(data.startTime.seconds) : "" - }
-
End Time: ${ - data.endTime.seconds ? visDate(data.endTime.seconds) : "" - }
-
Summary: ${data.summary - .map((d: any) => d.key + "=" + d.value) - .join("; ")}
-
Tags: ${data.tags - .map((d: any) => d.key + "=" + d.value) - .join("; ")}
`; - return tmp; - }, - }, + autoResize: true, }; visGraph.value = new Timeline(timeline.value, items, options); + visGraph.value.on("select", (data: { items: number[] }) => { + const index = items[0]; + currentEvent.value = events[index - 1 || 0] || {}; + console.log(currentEvent.value); + if (data.items.length) { + showEventDetail.value = true; + return; + } + showEventDetail.value = false; + }); } function turnPage(p: number) { pageNum.value = p;