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

wusheng pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/skywalking-booster-ui.git


The following commit(s) were added to refs/heads/main by this push:
     new 6c4991bc fix: view related trace (#285)
6c4991bc is described below

commit 6c4991bc5646c697262417e6eb8dff8742c1d94b
Author: Fine0830 <[email protected]>
AuthorDate: Fri Jun 16 11:13:36 2023 +0800

    fix: view related trace (#285)
---
 src/hooks/data.ts                       |  4 ++--
 src/views/dashboard/Widget.vue          |  6 +++++-
 src/views/dashboard/controls/Widget.vue |  5 ++++-
 src/views/dashboard/graphs/TopList.vue  | 19 ++++++++++++-------
 src/views/dashboard/panel/Tool.vue      |  5 +++--
 5 files changed, 26 insertions(+), 13 deletions(-)

diff --git a/src/hooks/data.ts b/src/hooks/data.ts
index f1667e0d..8d88e076 100644
--- a/src/hooks/data.ts
+++ b/src/hooks/data.ts
@@ -122,9 +122,9 @@ export const RespFields: Indexable = {
         }
       }
       values {
-        id
+        name: id
         value
-        traceID
+        refId: traceID
       }
     }
     error
diff --git a/src/views/dashboard/Widget.vue b/src/views/dashboard/Widget.vue
index ce3a337d..44ee041f 100644
--- a/src/views/dashboard/Widget.vue
+++ b/src/views/dashboard/Widget.vue
@@ -37,7 +37,7 @@ limitations under the License. -->
           metricConfig: config.metricConfig,
           metricMode: config.metricMode,
           expressions: config.expressions || [],
-          typesOfMQE: config.typesOfMQE || [],
+          typesOfMQE: typesOfMQE || [],
           subExpressions: config.subExpressions || [],
           subTypesOfMQE: config.subTypesOfMQE || [],
         }"
@@ -80,6 +80,7 @@ limitations under the License. -->
       const dashboardStore = useDashboardStore();
       const title = computed(() => (config.value.widget && 
config.value.widget.title) || "");
       const tips = computed(() => (config.value.widget && 
config.value.widget.tips) || "");
+      const typesOfMQE = ref<string[]>([]);
 
       init();
       async function init() {
@@ -137,8 +138,10 @@ limitations under the License. -->
             metricConfig: config.value.metricConfig || [],
             subExpressions: config.value.subExpressions || [],
           });
+
           loading.value = false;
           source.value = params.source || {};
+          typesOfMQE.value = params.typesOfMQE;
           return;
         }
         const params = await useQueryProcessor({ ...config.value });
@@ -173,6 +176,7 @@ limitations under the License. -->
         config,
         title,
         tips,
+        typesOfMQE,
       };
     },
   });
diff --git a/src/views/dashboard/controls/Widget.vue 
b/src/views/dashboard/controls/Widget.vue
index 4128287c..c13f90fa 100644
--- a/src/views/dashboard/controls/Widget.vue
+++ b/src/views/dashboard/controls/Widget.vue
@@ -61,7 +61,7 @@ limitations under the License. -->
           associate: data.associate || [],
           metricMode: data.metricMode,
           expressions: data.expressions || [],
-          typesOfMQE: data.typesOfMQE || [],
+          typesOfMQE: typesOfMQE || [],
           subExpressions: data.subExpressions || [],
           subTypesOfMQE: data.subTypesOfMQE || [],
         }"
@@ -114,6 +114,7 @@ limitations under the License. -->
       const graph = computed(() => props.data.graph || {});
       const widget = computed(() => props.data.widget || {});
       const isList = computed(() => ListChartTypes.includes((props.data.graph 
&& props.data.graph.type) || ""));
+      const typesOfMQE = ref<string[]>([]);
 
       if ((props.needQuery || !dashboardStore.currentDashboard.id) && 
!isList.value) {
         queryMetrics();
@@ -131,6 +132,7 @@ limitations under the License. -->
           const params = (await useExpressionsQueryProcessor(e)) || {};
           loading.value = false;
           state.source = params.source || {};
+          typesOfMQE.value = params.typesOfMQE;
           return;
         }
         const params = await useQueryProcessor({ ...props.data });
@@ -259,6 +261,7 @@ limitations under the License. -->
         t,
         graph,
         widget,
+        typesOfMQE,
         clickHandle,
       };
     },
diff --git a/src/views/dashboard/graphs/TopList.vue 
b/src/views/dashboard/graphs/TopList.vue
index ed4fbe9b..f8b05109 100644
--- a/src/views/dashboard/graphs/TopList.vue
+++ b/src/views/dashboard/graphs/TopList.vue
@@ -20,7 +20,7 @@ limitations under the License. -->
         <div class="desc">
           <span class="calls mr-10">{{ i.value }}</span>
           <span class="cp mr-20">
-            {{ i.name || i.id }}
+            {{ i.name }}
           </span>
         </div>
         <el-popover placement="bottom" trigger="click">
@@ -64,21 +64,23 @@ limitations under the License. -->
   import copy from "@/utils/copy";
   import { TextColors } from "@/views/dashboard/data";
   import Trace from "@/views/dashboard/related/trace/Index.vue";
-  import { QueryOrders, Status, RefIdTypes, ProtocolTypes } from "../data";
+  import { QueryOrders, Status, RefIdTypes, ProtocolTypes, 
ExpressionResultType } from "../data";
 
   /*global defineProps */
   const props = defineProps({
     data: {
       type: Object as PropType<{
-        [key: string]: { name: string; value: number; id: string }[];
+        [key: string]: { name: string; value: number; refId: string }[];
       }>,
       default: () => ({}),
     },
     config: {
       type: Object as PropType<{
+        metricMode: string;
         color: string;
         metrics: string[];
         metricTypes: string[];
+        typesOfMQE: string[];
         relatedTrace: any;
       }>,
       default: () => ({ color: "purple" }),
@@ -107,14 +109,17 @@ limitations under the License. -->
   function handleClick(i: string) {
     copy(i);
   }
-  function viewTrace(item: { name: string; id: string; value: unknown }) {
+  function viewTrace(item: { name: string; refId: string; value: unknown }) {
     const filters = {
       ...item,
       queryOrder: QueryOrders[1].value,
       status: Status[2].value,
-      id: item.id || item.name,
+      id: item.refId,
       metricValue: [{ label: props.config.metrics[0], data: item.value, value: 
item.name }],
-      isReadRecords: 
props.config.metricTypes.includes(ProtocolTypes.ReadRecords) || undefined,
+      isReadRecords:
+        props.config.typesOfMQE.includes(ExpressionResultType.RECORD_LIST) ||
+        props.config.metricTypes.includes(ProtocolTypes.ReadRecords) ||
+        undefined,
     };
     traceOptions.value = {
       ...traceOptions.value,
@@ -163,7 +168,7 @@ limitations under the License. -->
   }
 
   .chart-slow-link {
-    padding: 4px 10px 7px 10px;
+    padding: 4px 10px 7px;
     border-radius: 4px;
     border: 1px solid #ddd;
     color: #333;
diff --git a/src/views/dashboard/panel/Tool.vue 
b/src/views/dashboard/panel/Tool.vue
index e11efff0..c3f4dc1a 100644
--- a/src/views/dashboard/panel/Tool.vue
+++ b/src/views/dashboard/panel/Tool.vue
@@ -363,8 +363,6 @@ limitations under the License. -->
   async function changePods(pod: Option[]) {
     selectorStore.setCurrentPod(pod[0] || null);
     if ([EntityType[7].value, 
EntityType[8].value].includes(dashboardStore.entity)) {
-      selectorStore.setCurrentProcess(null);
-      states.currentProcess = "";
       fetchProcess(true);
     }
   }
@@ -594,6 +592,9 @@ limitations under the License. -->
       if (currentProcess) {
         selectorStore.setCurrentProcess(currentProcess);
         states.currentProcess = currentProcess.label;
+      } else {
+        selectorStore.setCurrentProcess(null);
+        states.currentProcess = "";
       }
     }
     return resp;

Reply via email to